DNSSEC 検証
レジストラで有効化
お名前ドットコムのオプションで有効化してみる。
yokohei.xyz. に対して実施。
$ dig yokohei.xyz. +dnssec
; <<>> DiG 9.10.6 <<>> yokohei.xyz. +dnssec
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23351
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;yokohei.xyz. IN A
;; AUTHORITY SECTION:
yokohei.xyz. 600 IN SOA 01.dnsv.jp. hostmaster.dnsv.jp. 1561490335 3600 900 604800 3600
hi3pnqj4bg5v2mro79cv426vhrt87dhe.yokohei.xyz. 3600 IN NSEC3 1 0 5 A371C058619BC8EE NLCBL0BF1C0NUMQFIJN9ISKUJ6KT72R9 NS SOA RRSIG DNSKEY NSEC3PARAM
yokohei.xyz. 3600 IN RRSIG SOA 8 2 3600 20190710014216 20190625181853 15819 yokohei.xyz. b6PUTCUs+wn9mspX3mo4TCafZbT1cInMAGj9k8io6MY4yoXg+5zeSD/M HCP4wXoXsjDdcZX/dqnZ23HjAUySPpp+h0hEIqVOiU/Lt5u74r+EY6xX KGtSYe37fENh1tzOA1RUJ1WenzOp0ONV891UWcFqgnbck+5a31LdI1Ve E/0=
hi3pnqj4bg5v2mro79cv426vhrt87dhe.yokohei.xyz. 3600 IN RRSIG NSEC3 8 3 3600 20190710031228 20190625181853 15819 yokohei.xyz. PcrYJqoFwASOXARJ8VmuHrw9q9gNzLFmjXSOQLCIgoEq6tCt+vRzWE3+ 2qEzxetmKo06IqQrjt+D3Muw7ZwU/yemO2f0cj/msIlDfKLIaPgxFqyT CAwgtIJSVHugCrDsWgNM5Wc9xNvarYKdXyf+uiRmYUeC9A9vTz9MztwZ ZNA=
;; Query time: 292 msec
;; SERVER: 2001:730:3ec2::11#53(2001:730:3ec2::11)
;; WHEN: Wed Jun 26 19:32:54 IST 2019
;; MSG SIZE rcvd: 527
有効化されている。
DS の確認
xyz. ゾーンにある、 yokohei.xyz. の DS レコードを確認。
$ dig yokohei.xyz. ds +norec @x.nic.xyz.
; <<>> DiG 9.10.6 <<>> yokohei.xyz. ds +norec @x.nic.xyz.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23759
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;yokohei.xyz. IN DS
;; ANSWER SECTION:
yokohei.xyz. 3600 IN DS 21734 8 2 7621D80F52C02C4F4ED6E652039F8826010B877699EDDA78DDBDC501 B3642037
;; Query time: 34 msec
;; SERVER: 2001:67c:13cc::1:42#53(2001:67c:13cc::1:42)
;; WHEN: Wed Jun 26 19:35:46 IST 2019
;; MSG SIZE rcvd: 88
digest type が 2 なので、 sha256 が使われている。
これが、 yokohei.xyz. ゾーンの KSK の公開鍵のハッシュ値になる。
KSK 公開鍵
yokohei.xyz. ゾーンの KSK 公開鍵を取得する。
$ dig yokohei.xyz. dnskey +dnssec @01.dnsv.jp.
; <<>> DiG 9.10.6 <<>> yokohei.xyz. dnskey +dnssec @01.dnsv.jp.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10021
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;yokohei.xyz. IN DNSKEY
;; ANSWER SECTION:
yokohei.xyz. 3600 IN DNSKEY 257 3 8 AwEAAcEK41yAftc5XnxG6+eQ+OrFyQAfPyoveIK6I4rXCKAIgkRpEO4A 7Mw3N0MTSSr6lXlCf/t3Tq2nsfZUOVKyKSRVwcbYM09JibT5ISKvvmc0 nubySxD5FMyQlHP1GFMXFo0IfidBvGilup41UBIYeYbFwOKZjudsI4Nj YnVGaClPimz8vU7EMcqnBH6+IQyaQ1Mw3u4aVpCqFWTRTi7vR+i7R9aM QZ63yok6n2kx5GmckFC/NhAXn7fQ0GYstFnNhxCssUp1NexN61J5WvVe T3swXB6u3WOtWqpoJjrHPHXNswcMaOQis/gP3Y1n5ppogaYgXykl7mBt tKSTjhFLsXc=
yokohei.xyz. 3600 IN DNSKEY 256 3 8 AwEAAbHGol+OMFO/Ay3Ghy23XGC/QBcC8msEpryZiOd8MqGHe6bUQqEa r7e6ADBBKJai68efFNNzPJtXXFzjYSYlZXoJgNwvVt4LG8C+Nqq73MyM 1IsQ800l65eTlfPA4/XOyS+IM/MdILVE3qQmhpbQAG2h2kjtGkVjyZhd XBwTJgzd
yokohei.xyz. 3600 IN RRSIG DNSKEY 8 2 3600 20190709200853 20190625181853 21734 yokohei.xyz. N/f96oCXk52MZQxzmWlwxtLQtbJTAAwOwYc5b7F6Q57g4Ba5ByYLgbRX JyZbLyszxWv7Gtkp6RO/sLhvBLDOR3nTCtJpTSKQJjjuS/kXWmwcrfKz 35m1OagC7OGLgEzDbFpwJGbUW2xtGyt34/SvsRuqfFw7Au2h9qScLD3m xkAo+COfnJaPyx7lypalJ1p/OPWyMZlZJunbUoXByUpwm2qdv97RpIDv eulU2dJ4rgiNjSNjdlluMogNFanYi4o3Tp2DkseDDRA9xZlwNpo5ndto hykNS/mjclJWNZSWAwPapdu47gNynMQLvwXd3MYbPE0w8zJY0VlxOqb2 w3yxcw==
;; Query time: 326 msec
;; SERVER: 157.7.32.53#53(157.7.32.53)
;; WHEN: Wed Jun 26 19:37:07 IST 2019
;; MSG SIZE rcvd: 763
flag 257 が KSK なので、以下のものが公開鍵。
AwEAAcEK41yAftc5XnxG6+eQ+OrFyQAfPyoveIK6I4rXCKAIgkRpEO4A 7Mw3N0MTSSr6lXlCf/t3Tq2nsfZUOVKyKSRVwcbYM09JibT5ISKvvmc0 nubySxD5FMyQlHP1GFMXFo0IfidBvGilup41UBIYeYbFwOKZjudsI4Nj YnVGaClPimz8vU7EMcqnBH6+IQyaQ1Mw3u4aVpCqFWTRTi7vR+i7R9aM QZ63yok6n2kx5GmckFC/NhAXn7fQ0GYstFnNhxCssUp1NexN61J5WvVe T3swXB6u3WOtWqpoJjrHPHXNswcMaOQis/gP3Y1n5ppogaYgXykl7mBt tKSTjhFLsXc=
アルゴリズムは 8 なので RSASHA256 が使われている。
スペースを除いたものが、実際の公開鍵。
KSK 公開鍵のハッシュ値の取得
手計算…と思ったら超便利なツールがあった。
openfactory-ch/dnssec-key2ds | github
https://github.com/openfactory-ch/dnssec-key2ds
php の内容
<?php
require('dnssec_key2ds.php');
$result = dnssec_key2ds(
'yokohei.xyz.',
257,
3,
8,
'AwEAAcEK41yAftc5XnxG6+eQ+OrFyQAfPyoveIK6I4rXCKAIgkRpEO4A7Mw3N0MTSSr6lXlCf/t3Tq2nsfZUOVKyKSRVwcbYM09JibT5ISKvvmc0nubySxD5FMyQlHP1GFMXFo0IfidBvGilup41UBIYeYbFwOKZjudsI4NjYnVGaClPimz8vU7EMcqnBH6+IQyaQ1Mw3u4aVpCqFWTRTi7vR+i7R9aMQZ63yok6n2kx5GmckFC/NhAXn7fQ0GYstFnNhxCssUp1NexN61J5WvVeT3swXB6u3WOtWqpoJjrHPHXNswcMaOQis/gP3Y1n5ppogaYgXykl7mBttKSTjhFLsXc='
);
print_r($result);
実行結果
$ php test.php
Array
(
[owner] => yokohei.xyz.
[keytag] => 21734
[algorithm] => 8
[digest] => Array
(
[0] => Array
(
[type] => 1
[hash] => 32F4CE1C251AA1F89D9C6361929342A159A933ED
)
[1] => Array
(
[type] => 2
[hash] => 7621D80F52C02C4F4ED6E652039F8826010B877699EDDA78DDBDC501B3642037
)
)
)
sha256 ハッシュ値が正しく一致していることを確認。
