
Ferramenta para buscar/atualizar as âncoras de confiança da Zona Raiz do DNS
Esta ferramenta obtém o trust anchor raiz DNSSEC atual do IANA, valida-o criptograficamente e escreve a KSK (Key Signing Key) raiz como registros DNSKEY e DS.
Requer Python 3.10+ e a ferramenta de linha de comando OpenSSL. Não há outras dependências.
A validação da assinatura usa um certificado CA incorporado na própria ferramenta, pelo que os trust anchors são verificados criptograficamente independentemente de a verificação do certificado HTTPS ser bem-sucedida.
Instale a partir do repositório:
pip install .
Isto disponibiliza o comando get-trust-anchor.
Execute o comando instalado:
get-trust-anchor
Ou invoque como módulo Python:
python -m get_trust_anchor
| Opção | Descrição |
|---|---|
--local FILE | Usar um ficheiro XML de trust anchor local em vez de obter do IANA |
--local-sig FILE | Usar um ficheiro de assinatura local em vez de obter do IANA |
--root-ca FILE | Usar um certificado root CA personalizado em vez do incorporado |
--no-validation | Ignorar a validação da assinatura |
--ksks-from-trust-anchor | Extrair as KSKs diretamente do XML do trust anchor em vez de obter via DNS |
--keep | Manter os ficheiros temporários (XML e assinatura) após a execução |
--print-dnskey | Imprimir os registros DNSKEY para stdout em vez de escrever ficheiros |
--print-ds | Imprimir os registros DS para stdout em vez de escrever ficheiros |
--version | Imprimir a versão da ferramenta e sair |
Por predefinição, a ferramenta escreve dois ficheiros no diretório atual:
ksk-as-dnskey.txt -- KSKs raiz como registros DNSKEYksk-as-ds.txt -- KSKs raiz como registros DSUse --print-dnskey ou --print-ds para imprimir os registros para stdout
em vez disso, adequado para piping:
get-trust-anchor --print-ds | grep "^. IN DS"
Instale com as dependências de desenvolvimento:
pip install -e ".[dev]"
Execute os testes:
pytest
Verifique formatação, lint e tipos:
ruff format --check .
ruff check .
ty check
Para publicar uma nova versão no GitHub, incremente version em
pyproject.toml, faça commit e depois envie uma tag correspondente:
git tag v1.0.0
git push origin v1.0.0
O envio de uma tag v* aciona o workflow de lançamento,
que compila o sdist/wheel e publica um GitHub Release com eles anexados.
BSD 2-Clause. Consulte LICENSE para detalhes.