
DNS 루트 존 신뢰 앵커를 가져오고 갱신하는 도구
이 도구는 IANA에서 현재 DNSSEC 루트 신뢰 앵커를 가져와 암호학적으로 검증하고, 루트 KSK(Key Signing Key)를 DNSKEY 및 DS 레코드로 출력합니다.
Python 3.10+ 및 OpenSSL 명령줄 도구가 필요합니다. 그 외 다른 의존성은 없습니다.
서명 검증은 도구 자체에 내장된 CA 인증서를 사용하므로, HTTPS 인증서 검사 성공 여부와 관계없이 신뢰 앵커가 암호학적으로 검증됩니다.
저장소에서 설치합니다:
pip install .
이렇게 하면 get-trust-anchor 명령이 제공됩니다.
설치된 명령을 실행합니다:
get-trust-anchor
또는 Python 모듈로 호출합니다:
python -m get_trust_anchor
| 옵션 | 설명 |
|---|---|
--local FILE | IANA에서 가져오는 대신 로컬 신뢰 앵커 XML 파일을 사용합니다 |
--local-sig FILE | IANA에서 가져오는 대신 로컬 서명 파일을 사용합니다 |
--root-ca FILE | 내장된 것 대신 사용자 지정 루트 CA 인증서를 사용합니다 |
--no-validation | 서명 검증을 건너뜁니다 |
--ksks-from-trust-anchor | DNS에서 가져오는 대신 신뢰 앵커 XML에서 직접 KSK를 추출합니다 |
--keep | 실행 후 임시 파일(XML 및 서명)을 유지합니다 |
--print-dnskey | 파일을 쓰는 대신 DNSKEY 레코드를 stdout에 출력합니다 |
--print-ds | 파일을 쓰는 대신 DS 레코드를 stdout에 출력합니다 |
--version | 도구의 버전을 출력하고 종료합니다 |
기본적으로 도구는 현재 디렉터리에 두 개의 파일을 씁니다:
ksk-as-dnskey.txt -- DNSKEY 레코드로 표현된 루트 KSKksk-as-ds.txt -- DS 레코드로 표현된 루트 KSK--print-dnskey 또는 --print-ds를 사용하면 대신 레코드를 stdout에 출력하며, 파이프에 적합합니다:
get-trust-anchor --print-ds | grep "^. IN DS"
개발 의존성과 함께 설치합니다:
pip install -e ".[dev]"
테스트를 실행합니다:
pytest
포맷, 린트, 타입을 확인합니다:
ruff format --check .
ruff check .
ty check
GitHub에 새 버전을 게시하려면 pyproject.toml의 version을 올리고 커밋한 다음, 일치하는 태그를 푸시합니다:
git tag v1.0.0
git push origin v1.0.0
v* 태그를 푸시하면 릴리스 워크플로가 트리거되어 sdist/wheel을 빌드하고 이를 첨부한 GitHub Release를 게시합니다.
BSD 2-Clause. 자세한 내용은 LICENSE를 참조하세요.