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>
$ dig dnsviz.net RRSIG +noall +ans
; <<>> DiG 9.11.0rc1 <<>> dnsviz.net RRSIG +noall +ans
;; global options: +cmd
dnsviz.net. 60 IN RRSIG SOA 8 2 3600 20190127104922 20181228104922 19785 dnsviz.net. RYYJcYUbp+aBdQLSJrzzVbb6Gqq3eH7r2iUA8N9nl4tLW4LW/wuQ7qYb 9gImg4vxVgarOlkPRONtmql+R3KO7mx8mZP9pf2vnnqSYO0inej3f6Yp 8atF4Is2FvgdFD5Ll8LqMIP9IluteggTBhNbJ/NzSsQcx4WmbG3KI+Rg P3cbDObuQ5LU2jHC/r3H85SLmzqNzW4ZWa5sJ14ex5J2XNirJibgSxyb 1x3/uNUvttjG4ZZXAxrvd7SJ3XKaDgCbGyfdbZ/O188+2/MY3/JpoMud Hvwq5Ch1ys0F6x+lPJ4HkrUm985nXf+GVZX7v6vQroGtNBJHLH/8LRd2 aFKf7g==
dnsviz.net. 60 IN RRSIG NSEC3PARAM 8 2 0 20190127104922 20181228104922 19785 dnsviz.net. Jj9iL94uPkqn1wRm9y+ncQNvJTUqiUzoFu3EB6l3x95VjmHGeW4yRkaU e+V3kvkU88+Tzx0vIeuyDP/TsmjD/Ea6Em12NGjZw1cCxIJ6hf21WDBT R9nPkZkokRfBdsaelTAYp2ISjWgE8QW8tBHtYo71taZ2WwpHjLuoYcDS rYI0mCoqnQnCFbgAIElU21odL1fo8hILaEUzL+Mg0uF+fGX8UZlbSmgv BmFHOJTG8iU+MSuRMZRuPfoSklvUjrts9X7sQIxL0zfZkuvuIzZjoQQt VUjgN6x6n49laimHu5jY7DSuYRBFgsxD6gm7bbypTUFlglcnxrlY7p3D cWGVng==
dnsviz.net. 60 IN RRSIG DNSKEY 8 2 86400 20190127104922 20181228104922 28345 dnsviz.net. e14J2YBn3LLShWuL+oo1skXhoYFUFgUF/qcr37bMjmMDfhH/PcwRCHOM t9+ZcMEqBvqvTtZ3qeI66+bHJ0S/WV/ykQp5yICN82+ltsUYZyjELgNS JXqtT7gf+/vhPv85+ypei+IikewLO4eR4zhk/G3GhRBY4N7tYRE3jS5X BhJua+UUJwrBrk+GT+D/vzLMc93tTodgfMLmDJBTrzldRTVaC6o9BoA/ 8j1sCWquubn1cBc3QvhWbSDaP00I8Sy7eSkA1XGgVU2HbbN9Qml9aFLt I+x8b5qfHa4Yn3ZQTuC2TG8YV79lRsl8GyTzcT02FUpDi64LdMLDYP46 kb6/Cg==
dnsviz.net. 60 IN RRSIG AAAA 8 2 1800 20190127104922 20181228104922 19785 dnsviz.net. jB1JBiB4POcbTOafeeiMxbX3MQxmuUIvqbKP16YBLruLY6UepwofR6RL 5FsadXPpfLxETPdPXXOTkqvYWfy9pXakd8Dx3YDxsW05c7REA69+9GT5 8YU9WknbE7NQ0HXeQwsvVhTALv+jFpJmzJvLsrvJ4qGpZrboiCPPbnRa 3Vqw1m76SQRDJDsYnpP9L+C5D9fS5qzHZTl+v5PNXOIu3DHSkEt/7caW Ypb1usXaN49qA7qLcTeGwazaeC+DJH4HZRkHxmqVE2X8e8s3Qyd11ogM 5t8swNZnarGSW6G0woHaRkQCT64KATmJWvB1va2vFdbbUepdY51gScC4 93oSOw==
dnsviz.net. 60 IN RRSIG A 8 2 1800 20190127104922 20181228104922 19785 dnsviz.net. Dh5Hy7rcxchXFTfC3/VibGjqQ7cYXporrAKhfL+DJv9K7PK9wSFKPjzq vAuN96FIYSxTB+np8EDArzdNp/QNnCx0QmT0R2s0OJtIELHATf/yTXKY e9Ajmz6Hd621fALlAXHkBpzM3c+GRgSVXGhvqlv2HnQoKcm6lWebYCr9 /L+RVWdO0MVh9dQfX7vvPUySneATZXk9l6KfZ0jpWRjoa5w3+x8fJMZe 24gtyhprqlFtz2EqOvnsQkILJM+FmQov5x5Jt//i4qHK4EugwfuGwqhb Y5Ww+TfMxN7kMsch1stjU9xh8Djl//X99eyirSYuHwh8lVDzY0FZqxP8 e4RuCw==
dnsviz.net. 60 IN RRSIG NS 8 2 3600 20190127104922 20181228104922 19785 dnsviz.net. kmfZoabCj7cPaYYZw9KcVsUWxQw1vAXlLvRFiIWBBp2xX8aNBNIfsvgf Db0/dNQ9qFbK6EWE2QElIWZKM4SAk8YUnWU5zVjCd00seqGBSpmsESaa ggxRbQo6Ef9f5a1Oag7PIucZ8EuK6wP9srEPHDuVJnP6skU168JOtPrn S+zKDyDCiTgtAIJHugwscPNciRq5fR7/nfW+JpC+zFtLdfpfumEe3ivx agWf1c1P6hvyh1tpObjz0h6QDwjgue7L7V8deRt7egLGcs29Dws3i8V1 6PGqjcX1Avs0qoWLrJLdqoiGAqzlwcSsjHKXYpwX0Svva1LFY1a/T1i8 uLgDNA==
各フィールドについて
<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>
$ dig dnsviz.net +dnssec +norec @a.gtld-servers.net
; <<>> DiG 9.11.0rc1 <<>> dnsviz.net +dnssec +norec @a.gtld-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60544
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 7, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;dnsviz.net. IN A
;; AUTHORITY SECTION:
dnsviz.net. 172800 IN NS ns1.ca.sandia.gov.
dnsviz.net. 172800 IN NS ns2.ca.sandia.gov.
dnsviz.net. 172800 IN NS ns8.sandia.gov.
dnsviz.net. 172800 IN NS ns9.sandia.gov.
dnsviz.net. 86400 IN DS 28345 8 1 4B3183AACE2720D15ED524A261FC1FB869AE05C6
dnsviz.net. 86400 IN DS 28345 8 2 56F22414DACD160FB04D87A1E2A0E1E7EDE5E3399E5C1D40F8035111 FB426C73
dnsviz.net. 86400 IN RRSIG DS 8 2 86400 20190116062334 20190109051334 6140 net. Vwdn3edCNb/mdglHEUAUqYXOteN52GbirvsZt9srYUJF8UM2gMkTBGPE e++JbGisyGuMCx5XcHg3zc9oXhq8MblMitXkogqLjZ3J1UaAPBq6hyvU emNTkHsuIPizOygCmYQCrsgCPKLJ82lqH/+4ylJnKBWEqT03PodVXxdi WnE=
各フィールドについて
<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>
