NSEC and NSEC3
NSEC
DNSSEC では、存在しないことについての証明が必要になってくる。 そこで、例えば b.example.com という名前を引いて、それが存在しないときに「a.example.com と c.example.com はあるよ」ということを返すことで、 b.example.com が無いことを示す。
例
$ dig yokohei.game. +dnssec +noall +auth
; <<>> DiG 9.10.6 <<>> yokohei.game. +dnssec +noall +auth
;; global options: +cmd
game. 585 IN SOA ns.uniregistry.net. regops.uniregistry.link. 1561491050 1800 900 604800 86400
game. 86385 IN NSEC 0.game. NS SOA RRSIG NSEC DNSKEY
yodobashicamera.game. 86385 IN NSEC youer.game. NS RRSIG NSEC
game. 885 IN RRSIG SOA 5 1 900 20190725183051 20190625183051 40692 game. nq4f31Cp0Jpi97LvIt9sJ4qdCYbj09+A6D9c6xupxYxgoMma0tDQuEMw G5qSTLbV4f651wRYVMEpUv6h81NQfZZpamZFJ0cqaIQsH1JRV2FZV2te fLCBZSunQfFZXGC5bzN5MyCSh79ze6JWdgso6mCidP8GufkUUF5DRM53 dMo=
game. 86385 IN RRSIG NSEC 5 1 86400 20190725183051 20190625183051 40692 game. XTny1abC8efSCYfmwBQBbJf85/A2hz81D/bF0V2VtRWKVq2b5r53m8LS 3toDXKj1pyJ91nH45WUZB7VKbrd6LaI72tLe6Q/RqzDUSlxPqD0dQ1C8 Pq16213tmRsDonO3VcD+WoQfEJXopMI4xlKwbzilpBBSEO312ggsycLM tIo=
yodobashicamera.game. 86385 IN RRSIG NSEC 5 2 86400 20190725183051 20190625183051 40692 game. IGvq6zKvdwGct25dHqCkKY5soc7XTWjjpUN3AunoAaabbcZ+vs+vkbdB hNZbdsSzpzWug6juC2aDVANt44gxEV4ieU201KrnJICq2EHv0sWgLOXn rGWznLnd1GWDNOB50XX75qW+STBRnue39/E2dQBs99O+a2AYMwWHYIcI RqE=以下のレコードを見てほしい。
yodobashicamera.game. 86385 IN NSEC youer.game. NS RRSIG NSEC
これを見ると、 yodobashicamera.game. と youer.game. はあるけど、その間の yokohei.com. は無いよ、ということが示されている。
NSEC3
NSEC では、存在しているレコードを返してくれるので、そのゾーンのレコードをすべて取得するようなことが可能となってしまう。 (zone walking または zone enumeration などと呼ばれる)
それを防ぐのが NSEC3 である。 NSEC3 では、レコードをハッシュ化しているので、アルファベット順とはならず、前後のレコードを返されても他のレコードを推測しにくい。
例
以下の 2 つが、 yokohei.moe. の前後のものである。
dvmdqul6t4qg4473u7ilrbeons63aecc.moe. 60 IN NSEC3 1 1 1 D88B3648 E6DNK36T65VHAOJS0TC4MDIBPBD47AOG NS DS RRSIG jhplrbl5mkeocd7l9ejegep01vencu77.moe. 60 IN NSEC3 1 1 1 D88B3648 JMO47AU58CJR0QBE5AMNPGFRPGIG843P NS DS RRSIG
以下については、 NS や SOA があるので moe. のハッシュ値だろう。
h1rg4ums55mmnu7ps81gf0btnhlgm41s.moe. 60 IN NSEC3 1 1 1 D88B3648 H3JAGD025MSC6JE0DVU5412QRMVCACJV NS SOA RRSIG DNSKEY NSEC3PARAM TYPE65534