DNSSEC RRs

DNSSEC のためにいくつかリソースレコードが追加された。 それぞれのリソースレコードの役割を理解することで DNSSEC の理解を深めることができる(はず)。

DNSKEY

鍵を公開するためのレコード。 ZSK と KSK を公開するので 2 つになる。

フォーマット

<flag> <protocol> <alg> <public key>

サンプル (どのドメイン名を例に使ったら良いのかわからないが…)

$ dig dnsviz.net DNSKEY +noall +ans

; <<>> DiG 9.11.0rc1 <<>> dnsviz.net DNSKEY +noall +ans
;; global options: +cmd
dnsviz.net.  60 IN DNSKEY 256 3 8 AwEAAbdrKKUHCt+CCOJ3n1P1Ry2Aiw7NvWKZzD4enhZtKOBBLj+5dMuC orlclLICNXzrSRxa1z4URoNCFaj4JkNN2mb6BopJd+PdmmPdeTaAdRZS +iVIc2/D+Da/7qtzbxtxn0oi0z06HEqHtmv19HoDknBvh5G72GW0NOcL gbDd7gDg9Hxr0IdEXdAbHpQkb/MdN6iGs0PbpxjW22vuEvvNg/kh25S+ MNzQ71YWaKf1fZDae9F12EZErNCzfDfuNC4K6A1AWtk/cKRAHU10eOdo zs4TekyzwW35i/Vep7w6D7pfV2V+W3X/xRX8V12iRxxodoochHDDs07j wahRKXmFctU=
dnsviz.net.  60 IN DNSKEY 257 3 8 AwEAAdlHDyfbmz04mAe5p9SXamkiWQPc9o7hvsmWq2nTppsHx48eVtez Mfq1EkPMfzFX1yKhahWPTbko7QtbSvqMz/+PM+vD41FbkN+wc2SONCFY BpJcaeP4iYT7kfJ/uH9BrkFs7ieIz32bLlNiEU0r1+WFRW0+njoNaF7F jKoNUFOI5S4WIg+lk2gHviSFGm0qp6+QrHWjFfPKzTqPe1QvM7efAjMI l3Tbi2BMUQ1En8FFODoa1Pbgxa0BoXpBWKbiuVzfO9lTRcCA/gs2KbUl 7MU9TZMVC5/Qq2ycaEv9cBNHDJrsJCjXk+qwVLsVXn8gS5ToP3QnbvLW q+cevLZZMj8=

各フィールドについて

RRSIG

フォーマット

<type> <alg> <labels> <TTL> <expiration> <inception> <keytag> <signer’s name> <signature>

各フィールドについて

  • <type> レコードタイプ A とか AAAA とか NS とか。

  • <alg> 暗号化アルゴリズム番号 https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtmlarrow-up-right ---- 8 RSA/SHA-256 RSASHA256 Y * [RFC5702][proposed standard] ----

  • <labels> ドメイン名のラベル数 dnssec.yokohei.com なら 3 になる。

  • <TTL> 署名対象の RR の TTL の値。

  • <expiration> 署名の有効期間終了時刻

  • <inception> 署名の有効期間開始時刻

  • <keytag>

  • <signer’s name> 署名対象の RRset のゾーン名

  • <signature> Base64 符号化された署名

DS

委任関係を表すためのもの。 信頼の連鎖を見ればわかるが、これは下位ゾーンのものを上位ゾーンに置いてもらうもの。 何を置くか、というと DNSKEY (KSK;flag257) のハッシュ値。

フォーマット

<key tag> <key alg> <digest type> <hash>

各フィールドについて

NSEC/NSEC3/NSEC3PARAM

不存在証明のためのレコード。 DNSSEC では、そのレコードが存在しないことについても証明しないといけない。 ただ、署名を付加できるのは存在するレコードのみ。 そこで考えられたのがこれらのレコード。

以下のページが割と分かりやすい。

https://jprs.jp/dnssec/faq.html#Q15

フォーマット

  • NSEC <next domain name> <type>

  • NSEC3 <hash alg> <flags> <iterations> <salt length> <salt> <hash length> <next hash name> <type>

  • NSEC3PARAM <hash alg> <flags> <iterations> <salt length> <salt>

Last updated