Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
get-trust-anchor — Tool for fetching/refreshing DNS Root Zone trust anchors | Kitploit
Tools/GitHubGitHub/iana-org/get-trust-anchor
Defensive ToolsConfiguration AuditingNetwork SecurityCryptographyUtilities & FrameworksDNS Analysis
GitHubiana-org/get-trust-anchor

get-trust-anchor

Tool for fetching/refreshing DNS Root Zone trust anchors

View Repository
11351241 month agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

DNSSEC Trust Anchor Tool

This tool fetches the current DNSSEC root trust anchor from IANA, cryptographically validates it, and writes out the root KSK (Key Signing Key) as DNSKEY and DS records.

It requires Python 3.10+ and the OpenSSL command line tool. There are no other dependencies.

How it works

  1. Fetches the trust anchor XML from IANA over HTTPS
  2. Fetches the corresponding S/MIME signature from IANA
  3. Validates the signature using a built-in ICANN Root CA certificate
  4. Extracts the trust anchor key digests from the XML
  5. Checks the validity period for each digest
  6. Fetches the current root KSK via Google Public DNS over HTTPS (falling back to the root zone file)
  7. Matches the KSKs against the trust anchors and writes them out

The signature validation uses a CA certificate embedded in the tool itself, so the trust anchors are cryptographically verified regardless of whether HTTPS certificate checking succeeds.

Installation

Install from the repository:

pip install .

This provides a get-trust-anchor command.

Usage

Run the installed command:

get-trust-anchor

Or invoke as a Python module:

python -m get_trust_anchor

Options

OptionDescription
--local FILEUse a local trust anchor XML file instead of fetching from IANA
--local-sig FILEUse a local signature file instead of fetching from IANA
--root-ca FILEUse a custom root CA certificate instead of the built-in one
--no-validationSkip signature validation
--ksks-from-trust-anchorExtract KSKs directly from the trust anchor XML instead of fetching from DNS
--keepKeep temporary files (XML and signature) after running
--print-dnskeyPrint DNSKEY records to stdout instead of writing files
--print-dsPrint DS records to stdout instead of writing files
--versionPrint the tool's version and exit

Output

By default, the tool writes two files to the current directory:

  • ksk-as-dnskey.txt -- root KSKs as DNSKEY records
  • ksk-as-ds.txt -- root KSKs as DS records

Use --print-dnskey or --print-ds to print records to stdout instead, suitable for piping:

get-trust-anchor --print-ds | grep "^. IN DS"

Development

Install with development dependencies:

pip install -e ".[dev]"

Run the tests:

pytest

Check formatting, lint, and types:

ruff format --check .
ruff check .
ty check

Releasing

To publish a new version on GitHub, bump version in pyproject.toml, commit it, then push a matching tag:

git tag v1.0.0
git push origin v1.0.0

Pushing a v* tag triggers the release workflow, which builds the sdist/wheel and publishes a GitHub Release with them attached.

License

BSD 2-Clause. See LICENSE for details.

Download Tool