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=各フィールドについて
<flag>256: ZSK 257: KSK<protocol>https://www.iana.org/assignments/dns-key-rr/dns-key-rr.xhtml ---- 3 DNSSEC [RFC4034][RFC2535] ----<alg>公開鍵の暗号化アルゴリズム https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml ---- 8 RSA/SHA-256 RSASHA256 Y * [RFC5702][proposed standard] ----
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.xhtml ---- 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>
各フィールドについて
<key alg>DS が参照する DNSKEY の、暗号化アルゴリズム https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml ---- 8 RSA/SHA-256 RSASHA256 Y * [RFC5702][proposed standard] ----<digest type>https://www.iana.org/assignments/ds-rr-types/ds-rr-types.xhtml ---- 1 SHA-1 MANDATORY [RFC3658] 2 SHA-256 MANDATORY [RFC4509] ----
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