勉強日記

チラ裏

DNSがよくわかる教科書 ch13 DNSSECの仕組み

www.sbcr.jp


電子署名の仕組みとDNSSECへの適用

電子署名の仕組み

  • 下記をデータ利用者が行えるように、データ作成者が付加する情報
    • データの出自の認証
    • 完全性の検証

電子署名のDNSSECへの適用

  • DNSにおいて...
    • データ作成者: ゾーン管理書
    • 署名対象: ゾーンデータのリソースレコードセット
  • 署名済のゾーンデータと、署名検証鍵を権威サーバーで公開する
    • DNSKEYリソースレコード: 署名検証鍵
    • RRSIGリソースレコード: 電子署名
dig jprs.jp. IN DNSKEY
dig jprs.jp. IN RRSIG
; <<>> DiG 9.11.3-1ubuntu1.9-Ubuntu <<>> jprs.jp. IN DNSKEY
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49778
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1452
;; QUESTION SECTION:
;jprs.jp.           IN  DNSKEY

;; ANSWER SECTION:
jprs.jp.        525 IN  DNSKEY  256 3 8 AwEAAbqJTLf0DTwRTzXExy+DifhwVhtFWYEDorFPIcEE9J8CBierd4cv R5kT2qSHru3MViqZTz/40ApLwQArzKtOm4z1KsWLQsNFO63fJw1pOXS6 DtUTEaex2wH2IXeH9fZwVWQpgfbuzqBuGlefRSLEFU9D0+o+QgP5RQ38 /scK69PR
jprs.jp.        525 IN  DNSKEY  257 3 8 AwEAAbEW7c61WQ+ZWrUivmXoOTqqN4i7yB1MhCtaG2YCTm5UdlBaOHtc JFNaubPYntvmz5Nd9S7NE05r2dUtA/pDR7GD35gku2y6tDas78VXivIG 6Mgj+M5G0J5xFl074PULJj1v4Omxrv7kojcsgrwjdZR46q7iVNPvCmeB lWO7FIAx2J+hGLk38XgCCKFzYtcYOgDxWexL3KvE1MMWz2D2Hs3GRWd0 fYdVv3iaoKyS2wtAtnt+zc/qKmB7hZ645O7JIRRCEhZrzLoOIQUaD+0o RdmCNtecRWcRB7pYYxF9kaRKknWX2dO78ndRUaGos725rOkISqtEP0O6 Cu96/ecggkU=
jprs.jp.        525 IN  DNSKEY  257 3 8 AwEAAc1yS/obQs9Geh5qahR3k28PrqwCve3Z/osxEb5OXdzFgfqGpRYz rjqXMJdInPdBq3WeklIvOOajW+IS2zzqcwqAa7S7mEtH7ptUz24JQaAu ECZl1IkuIoiqmMAbhOPs7QC62llCGq1W3ElbfWioXUaWormXjWNDHNFk BEgFOj2SYdhvKPVJK85I275Rh1Q18Xyn7EjPtpfiHKNUrWC8rK4ccN4c kpP6zn/dxurN38l4s0dXqG3iUolvzAIFt6rIRdC/o2YHnstBXMgVzNr9 lMG1ZH4J1AV5RA/ri68sHFi7jgDa3E4hGkTvoKQquq8KLjsg/cYUVrMT BUMHeU6BEsM=

;; Query time: 6 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Sat Apr 11 21:50:10 JST 2020
;; MSG SIZE  rcvd: 743
;; Truncated, retrying in TCP mode.

; <<>> DiG 9.11.3-1ubuntu1.9-Ubuntu <<>> jprs.jp. IN RRSIG
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64993
;; flags: qr rd ra; QUERY: 1, ANSWER: 10, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1452
;; QUESTION SECTION:
;jprs.jp.           IN  RRSIG

;; ANSWER SECTION:
jprs.jp.        86400   IN  RRSIG   SPF 8 2 86400 20200505023003 20200405023003 64098 jprs.jp. biEpGhW0Y7HPmvo14YSTr+ChH90wFLRtH7weeEXOwsIdmzlKropOo54W l2O+or1m2gphluvwlKa8ITdpaWaksT/KgIUuxodUs3FZ2d8oxkN+X8gY 8w1WsW9hOOk0l2ZgHLNlQnGzUahJzcz3Dro1WhPkHIXVrDFGfBA8pJLm iSU=
jprs.jp.        0   IN  RRSIG   NSEC3PARAM 8 2 0 20200505023003 20200405023003 64098 jprs.jp. PHAJskOj00j6sfiXhtJ2ae+aVfqYyu1PA+7q0xxIXQG5dgkfSBZWK3aq 2cOD6+A2TzpEbGns4Aoe2rko58OHtyei/4nZv+W1ZCONVtINpytX+1GD uJ50+KPVebCsKq9fwE/rh1zcW8eZMKahHznwCqUIEpEH7+HejQXbfS4W YgU=
jprs.jp.        86400   IN  RRSIG   DNSKEY 8 2 86400 20200505023003 20200405023003 32452 jprs.jp. wZB3t7+E4JYVCzjXJpHV0t8PNXbXKU3TpU1Cdm+zsFWJsPeQwr2rRU7k a7dPf9a+pSq9+1EKZvfntpCN0DkGYJXLDSnzLiVDepJqm2FUEJks+bvk SOnVTib97lCjLJnxd6FE187767ehK5AO8sj6gnfy5R18cs4on4QOVPkG 1GwHQOw3GaIekOzXlxcWot59s1iU8g893YrjSQUJZYzfyYFgcA1wBnED 8iSGVVgQnsAfxHSTWO+skcZ1LPYiQFkNcHqFkIXrama+UJuJZqz/Iiw3 TShgKwjY48UiETCMp5r0r2+oiDkytSSyU9hnAOku+EQ/DQSYka/h8Fhz 8z4IhQ==
jprs.jp.        86400   IN  RRSIG   DNSKEY 8 2 86400 20200505023003 20200405023003 43519 jprs.jp. lP1MRMSmrZFavC4qjYZhNf9RSH9Qxd5knLfvyZus2Zf5xIdJit/V2bIn IxM3PYy+6Nf71/n9fdfWj9KP3Bm5PXNMVDH9SupA7OVW4Hf3WqqT9Qah rFgpanzv471wc1w3vpOTxh9Iu+HeZCzAAhPZNpq98UPXgW70PvClvThQ T9I2C+cWt1nHRhgkectIjpsIHPdycmP5bP4pX3eqOvnUWBlUrIkENJRG t265I1A+v5gnNc2nKF++s8FfwbBDQq7Li4t+26BQiKk77RBgMJASMQOl +6Bzm35f5SPQLxEK4vhYC6AprSg/Qjw676buLLo5LejKjN6B1Fv1F3+K hcFX2g==
jprs.jp.        300 IN  RRSIG   AAAA 8 2 300 20200505023003 20200405023003 64098 jprs.jp. IHC6CHZ2ea6z+GfGnaff+j4MCRJwtiqUdJYfmN5wy1ocv0xqrT2wrmEZ F8emw1k0tAnJCsP53RuZE+DZ61QsTvxwAr3qR0Orx4D3W15S2pRusEP8 jc6NYV1BwniWyJzseUcUp6ZoiY/WrGUHzu3zhEUDD7Nj19fEpV/qy8If T8w=
jprs.jp.        86400   IN  RRSIG   TXT 8 2 86400 20200505023003 20200405023003 64098 jprs.jp. RL1PSEhPyjnrAwZRSovzXq+XCTdc8TnbIeDtDz0fcQdLx1yKny6Jr8iQ hoRO9YlbHiHrz68pGF2wMfPLtHYulSr7u64CMhk3NhsAVqAnDt3DF+hN BbeSSi2SdDQr7vK6fuko2tpG/xHz/dX3pLiE6cFaVgfhPLjygS/lwx61 ZgI=
jprs.jp.        300 IN  RRSIG   MX 8 2 300 20200505023003 20200405023003 64098 jprs.jp. kmaTDOwlWA4D40r8DAe++bRBVR8747hByQK7pQoXrPgQePvMHyhWmVCV uJzjXHmiGwmQrW2RJvEln284h6T1zJ5idMfna1FDo9OYk3UI5xizpXIi ZVeqiQIvYFHzGgAbDxeJbKZH2GlWjUEQmgZv7R8gMN6wZ+NllbbWnerA xMo=
jprs.jp.        300 IN  RRSIG   A 8 2 300 20200505023003 20200405023003 64098 jprs.jp. GzEL+dpit479MUaQt0+moDPhOwaEWRftKVzTIOoWg/Jhj/3WbO19IpBk SQBNidtr5zbmpftyRa9DIcE7dxpbwzih/P43OtnheVaNrMeGAEjqcsNz vqTQ4YWzrhCHKUceTti0B1r7otZyuqL/FselITUtVFhzrreMFVIDmcR+ e2Y=
jprs.jp.        86400   IN  RRSIG   NS 8 2 86400 20200505023003 20200405023003 64098 jprs.jp. YGrlXUSZI7kzB/OHWJdTBJD6qYYzgajhS7RgfvUuq1ll0ven0ousagj1 T5VyCKMp/7Tb4MnvtPhdcHNR5iuHhvomFIdXByqd3TfJHM/KmaVCifHQ C6rFTVBfnXhOAuyLxogyCOvSqPXy6W6VzFxukmlXBxSrIn7WJ9IHiHjW feY=
jprs.jp.        86400   IN  RRSIG   SOA 8 2 86400 20200505023003 20200405023003 64098 jprs.jp. QgMrNMRwVVxMKqX5U2FM1UvXl/YMLHPTGeQu6OMx3qo3pUAGswMWy4XR k3w1nJMlGWAoahQRIuZ/L8SYYGXtPJmCOeEKJfuCPISSpKltFlSnxwJZ cVEmEkRlFszoip26gqL6+S5XS+eC4U2MXFfywQAItmVOT7RHj/WCnP7I PXs=

;; Query time: 34 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Sat Apr 11 21:50:15 JST 2020
;; MSG SIZE  rcvd: 1962
  • EDNSのバッファサイズ1452を超えているためTCPにフォールバックしている
;; Truncated, retrying in TCP mode.

...

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1452
  • 【補】1452??
    • おそらく、インターネットにおいて一般的なMTU値1500から、IPv6のヘッダサイズ40、UDPのヘッダサイズ8を引いた値でしょう

署名の検証

  • 誰が検証者(validator)になるか
  • 実運用ではフルリゾルバーが検証者になることが多い

信頼の連鎖

  • データの信頼性は、署名検証鍵でデータの署名を検証して担保する
  • 署名検証鍵の信頼性はどうやって担保するの?
  • DNSSECでは、親ゾーンに担保してもらう
  • DSリソースレコード
    • 子の署名鍵のハッシュ値
    • 親の鍵で署名される(RRSIG)
    • 親の署名の信頼性は、さらなる親に担保してもらう
dig a.dns.jp. A +short
203.119.1.1
dig @203.119.1.1 +multi +dnssec +norec jprs.jp. NS
; <<>> DiG 9.11.3-1ubuntu1.9-Ubuntu <<>> @203.119.1.1 +multi +dnssec +norec jprs.jp. NS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7644
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 9

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
; COOKIE: 728ec1b2b21b9ec2588ad3ad5e91c2c1bb430b6f230bbb07 (good)
;; QUESTION SECTION:
;jprs.jp.       IN NS

;; AUTHORITY SECTION:
jprs.jp.        86400 IN NS ns4.jprs.jp.
jprs.jp.        86400 IN NS ns3.jprs.jp.
jprs.jp.        86400 IN NS ns2.jprs.jp.
jprs.jp.        86400 IN NS ns1.jprs.jp.
jprs.jp.        7200 IN DS 43519 8 2 (
                F1253DCC0CEE00CFB6518894AD23F135E1801D67D67D
                9CCDA81AADA9954109DC )
jprs.jp.        7200 IN RRSIG DS 8 2 7200 (
                20200504174502 20200404174502 26115 jp.
                WzHwmO60n2gF8bhV0zQadbYLNPs5GljIRtO3wFN4eDYc
                lH+gYD8lYk9lWtgyq09AZJ0m//zxlkOMmBlQBLVNHQ9d
                VjP1gL7Y7THD44IDcQcG0hLoAJEBNufjyM7QcIjSgmHg
                ib2oefDxzoVDNSNZLhPdV0JHccEBK2zCn2WPDH0= )

;; ADDITIONAL SECTION:
ns1.jprs.jp.        86400 IN A 202.11.16.49
ns2.jprs.jp.        86400 IN A 202.11.16.59
ns3.jprs.jp.        86400 IN A 203.105.65.178
ns4.jprs.jp.        86400 IN A 203.105.65.181
ns1.jprs.jp.        86400 IN AAAA 2001:df0:8::a153
ns2.jprs.jp.        86400 IN AAAA 2001:df0:8::a253
ns3.jprs.jp.        86400 IN AAAA 2001:218:3001::a153
ns4.jprs.jp.        86400 IN AAAA 2001:218:3001::a253

;; Query time: 4 msec
;; SERVER: 203.119.1.1#53(203.119.1.1)
;; WHEN: Sat Apr 11 22:14:42 JST 2020
;; MSG SIZE  rcvd: 522
  • jp.権威サーバーにjprs.jp.の権威情報を問い合わせた
  • jprs.jp.ゾーンの権威情報(NS、グルーA/AAAA)に添えて、DSリソースレコードが付加される
jprs.jp.     7200 IN DS 43519 8 2 (
                F1253DCC0CEE00CFB6518894AD23F135E1801D67D67D
                9CCDA81AADA9954109DC )
jprs.jp.        7200 IN RRSIG DS 8 2 7200 (
                20200504174502 20200404174502 26115 jp.
                WzHwmO60n2gF8bhV0zQadbYLNPs5GljIRtO3wFN4eDYc
                lH+gYD8lYk9lWtgyq09AZJ0m//zxlkOMmBlQBLVNHQ9d
                VjP1gL7Y7THD44IDcQcG0hLoAJEBNufjyM7QcIjSgmHg
                ib2oefDxzoVDNSNZLhPdV0JHccEBK2zCn2WPDH0= )
  • algorithm 8
    • RSASHA256
  • digest type 2
    • SHA-256
  • DSリソースレコードは委任元が権威を持つ
    • cf. 委任情報は委任先が権威を持つ
  • 信頼の起点(trust anchor)
    • ルートゾーンには信頼性を担保してくれる親ゾーンがない
    • ルートゾーンの署名検証鍵またはそのハッシュ値を、DNSSEC検証を行うフルリゾルバーにインストールしておく

Column: ルートゾーンKSKロールオーバー

  • DNSSEC検証を行うフルリゾルバーには、トラストアンカーとして、ルートゾーンの鍵署名鍵(KSK: Key Signing Key)を設定する
  • ルートゾーンのKSKは5年程度で更新することになっている
  • フルリゾルバーはこれに追従しなければならない

DNSSECで使われる2種類の鍵 (KSKとZSK)

  • ゾーンごとに2種類の鍵を使う
    • 鍵署名鍵(KSK: Key Signing Key)
      • 信頼の連鎖用
      • DNSKEY RRsetをこれで署名する
      • 高強度、高コスト、署名サイズも大きい
    • ゾーン署名鍵(ZSK: Zone Signing Key)
      • 自分のゾーンデータの署名用
      • DNSKEY以外のRRset (Aとか)をこれで署名する
      • 提供度、低コスト、署名サイズも小さい
jprs.jp.     7200 IN DS 43519 8 2 (
                F1253DCC0CEE00CFB6518894AD23F135E1801D67D67D
                9CCDA81AADA9954109DC )

KSKとZSKを使った署名・検証の流れ -- 例: jprs.jp.

親ゾーン(jp.)のDS RRsetを取得、子ゾーン(jprs.jp.)のKSK,ZSKのハッシュ値を得る

# @203.119.1.1はjp.の権威サーバー
dig @203.119.1.1 +multi +dnssec +norec jprs.jp. DS +short
; <<>> DiG 9.11.3-1ubuntu1.9-Ubuntu <<>> @203.119.1.1 +multi +dnssec +norec jprs.jp. DS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15021
;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
; COOKIE: 687b99f8dd57ffd5e88330485e91d395489b8fc9a32ac77f (good)
;; QUESTION SECTION:
;jprs.jp.       IN DS

;; ANSWER SECTION:
jprs.jp.        7200 IN DS 43519 8 2 (
                F1253DCC0CEE00CFB6518894AD23F135E1801D67D67D
                9CCDA81AADA9954109DC )
jprs.jp.        7200 IN RRSIG DS 8 2 7200 (
                20200504174502 20200404174502 26115 jp.
                WzHwmO60n2gF8bhV0zQadbYLNPs5GljIRtO3wFN4eDYc
                lH+gYD8lYk9lWtgyq09AZJ0m//zxlkOMmBlQBLVNHQ9d
                VjP1gL7Y7THD44IDcQcG0hLoAJEBNufjyM7QcIjSgmHg
                ib2oefDxzoVDNSNZLhPdV0JHccEBK2zCn2WPDH0= )

;; Query time: 4 msec
;; SERVER: 203.119.1.1#53(203.119.1.1)
;; WHEN: Sat Apr 11 23:26:30 JST 2020
;; MSG SIZE  rcvd: 274
  • これがDSレコード
jprs.jp.     7200 IN DS 43519 8 2 (
                F1253DCC0CEE00CFB6518894AD23F135E1801D67D67D
                9CCDA81AADA9954109DC )
  • これはDSレコードの署名
    • 署名検証鍵の信頼性はルートゾーンが保証する
    • ここでは割愛
jprs.jp.     7200 IN RRSIG DS 8 2 7200 (
                20200504174502 20200404174502 26115 jp.
                WzHwmO60n2gF8bhV0zQadbYLNPs5GljIRtO3wFN4eDYc
                lH+gYD8lYk9lWtgyq09AZJ0m//zxlkOMmBlQBLVNHQ9d
                VjP1gL7Y7THD44IDcQcG0hLoAJEBNufjyM7QcIjSgmHg
                ib2oefDxzoVDNSNZLhPdV0JHccEBK2zCn2WPDH0= )

子ゾーン(jprs.jp.)のKSK,ZSKを得る

# @202.11.16.49 は jprs.jp.の権威サーバー
dig @202.11.16.49 +multi +dnssec +norec jprs.jp. DNSKEY
; <<>> DiG 9.11.3-1ubuntu1.9-Ubuntu <<>> @202.11.16.49 +multi +dnssec +norec jprs.jp. DNSKEY
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56505
;; flags: qr aa; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;jprs.jp.       IN DNSKEY

;; ANSWER SECTION:
jprs.jp.        86400 IN DNSKEY 256 3 8 (
                AwEAAbqJTLf0DTwRTzXExy+DifhwVhtFWYEDorFPIcEE
                9J8CBierd4cvR5kT2qSHru3MViqZTz/40ApLwQArzKtO
                m4z1KsWLQsNFO63fJw1pOXS6DtUTEaex2wH2IXeH9fZw
                VWQpgfbuzqBuGlefRSLEFU9D0+o+QgP5RQ38/scK69PR
                ) ; ZSK; alg = RSASHA256 ; key id = 64098
jprs.jp.        86400 IN DNSKEY 257 3 8 (
                AwEAAc1yS/obQs9Geh5qahR3k28PrqwCve3Z/osxEb5O
                XdzFgfqGpRYzrjqXMJdInPdBq3WeklIvOOajW+IS2zzq
                cwqAa7S7mEtH7ptUz24JQaAuECZl1IkuIoiqmMAbhOPs
                7QC62llCGq1W3ElbfWioXUaWormXjWNDHNFkBEgFOj2S
                YdhvKPVJK85I275Rh1Q18Xyn7EjPtpfiHKNUrWC8rK4c
                cN4ckpP6zn/dxurN38l4s0dXqG3iUolvzAIFt6rIRdC/
                o2YHnstBXMgVzNr9lMG1ZH4J1AV5RA/ri68sHFi7jgDa
                3E4hGkTvoKQquq8KLjsg/cYUVrMTBUMHeU6BEsM=
                ) ; KSK; alg = RSASHA256 ; key id = 32452
jprs.jp.        86400 IN DNSKEY 257 3 8 (
                AwEAAbEW7c61WQ+ZWrUivmXoOTqqN4i7yB1MhCtaG2YC
                Tm5UdlBaOHtcJFNaubPYntvmz5Nd9S7NE05r2dUtA/pD
                R7GD35gku2y6tDas78VXivIG6Mgj+M5G0J5xFl074PUL
                Jj1v4Omxrv7kojcsgrwjdZR46q7iVNPvCmeBlWO7FIAx
                2J+hGLk38XgCCKFzYtcYOgDxWexL3KvE1MMWz2D2Hs3G
                RWd0fYdVv3iaoKyS2wtAtnt+zc/qKmB7hZ645O7JIRRC
                EhZrzLoOIQUaD+0oRdmCNtecRWcRB7pYYxF9kaRKknWX
                2dO78ndRUaGos725rOkISqtEP0O6Cu96/ecggkU=
                ) ; KSK; alg = RSASHA256 ; key id = 43519
jprs.jp.        86400 IN RRSIG DNSKEY 8 2 86400 (
                20200505023003 20200405023003 32452 jprs.jp.
                wZB3t7+E4JYVCzjXJpHV0t8PNXbXKU3TpU1Cdm+zsFWJ
                sPeQwr2rRU7ka7dPf9a+pSq9+1EKZvfntpCN0DkGYJXL
                DSnzLiVDepJqm2FUEJks+bvkSOnVTib97lCjLJnxd6FE
                187767ehK5AO8sj6gnfy5R18cs4on4QOVPkG1GwHQOw3
                GaIekOzXlxcWot59s1iU8g893YrjSQUJZYzfyYFgcA1w
                BnED8iSGVVgQnsAfxHSTWO+skcZ1LPYiQFkNcHqFkIXr
                ama+UJuJZqz/Iiw3TShgKwjY48UiETCMp5r0r2+oiDky
                tSSyU9hnAOku+EQ/DQSYka/h8Fhz8z4IhQ== )
jprs.jp.        86400 IN RRSIG DNSKEY 8 2 86400 (
                20200505023003 20200405023003 43519 jprs.jp.
                lP1MRMSmrZFavC4qjYZhNf9RSH9Qxd5knLfvyZus2Zf5
                xIdJit/V2bInIxM3PYy+6Nf71/n9fdfWj9KP3Bm5PXNM
                VDH9SupA7OVW4Hf3WqqT9QahrFgpanzv471wc1w3vpOT
                xh9Iu+HeZCzAAhPZNpq98UPXgW70PvClvThQT9I2C+cW
                t1nHRhgkectIjpsIHPdycmP5bP4pX3eqOvnUWBlUrIkE
                NJRGt265I1A+v5gnNc2nKF++s8FfwbBDQq7Li4t+26BQ
                iKk77RBgMJASMQOl+6Bzm35f5SPQLxEK4vhYC6AprSg/
                Qjw676buLLo5LejKjN6B1Fv1F3+KhcFX2g== )

;; Query time: 5 msec
;; SERVER: 202.11.16.49#53(202.11.16.49)
;; WHEN: Sat Apr 11 23:27:49 JST 2020
;; MSG SIZE  rcvd: 1326

KSKのハッシュ値と親のDSレコードとを照合する

KSKでZSKを検証する

ZSKで所望のリソースレコード(MX,A/AAAA,DSなど)を検証する

DNSSECの不在証明に使われるリソースレコード

  • 電子署名は、存在するデータに付加して、データの出自の認証・完全性の検証を可能にする
  • そのままでは「データが存在しないこと」を検証できない
  • NSECリソースレコード
    • データが存在しないことを検証するために、「この名前の範囲にはこのレコードタイプがある」という情報を返すようにする
    • 【補】HTTPのOPTIONSに似ている
dig @202.11.16.49 +dnssec +norec jprs.jp. nsec
; <<>> DiG 9.11.3-1ubuntu1.9-Ubuntu <<>> @202.11.16.49 +dnssec +norec jprs.jp. nsec
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42821
;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;jprs.jp.           IN  NSEC

;; AUTHORITY SECTION:
jprs.jp.        86400   IN  SOA ns1.jprs.co.jp. postmaster.jprs.co.jp. 1586057403 3600 900 1814400 86400
jprs.jp.        86400   IN  RRSIG   SOA 8 2 86400 20200505023003 20200405023003 64098 jprs.jp. QgMrNMRwVVxMKqX5U2FM1UvXl/YMLHPTGeQu6OMx3qo3pUAGswMWy4XR k3w1nJMlGWAoahQRIuZ/L8SYYGXtPJmCOeEKJfuCPISSpKltFlSnxwJZ cVEmEkRlFszoip26gqL6+S5XS+eC4U2MXFfywQAItmVOT7RHj/WCnP7I PXs=
7PU0EU55PQV1FBAG04R7636U5KQPPMD8.jprs.jp. 86400 IN NSEC3 1 0 5 45D5B58B 842SSMIE036ORET7132VEPF0B6IIDA4F  A NS SOA MX TXT AAAA RRSIG DNSKEY NSEC3PARAM SPF
7PU0EU55PQV1FBAG04R7636U5KQPPMD8.jprs.jp. 86400 IN RRSIG NSEC3 8 3 86400 20200505023003 20200405023003 64098 jprs.jp. t9PklK0mAuIsEw3Pp/uKf1HZEJBxBUcscwh82d/pCfEhgFjFIJzSpvg4 wXE85gehq+pKB69ECZwh183Xo7nUXzyTaASNGcVTIw+9gmz/bw/H1eAq Vss4Xy6klOx01mEisrmIYdozjyeJdn7tM41GPHWfbFq796GZU12X5cQI 8dE=

;; Query time: 5 msec
;; SERVER: 202.11.16.49#53(202.11.16.49)
;; WHEN: Sat Apr 11 23:59:12 JST 2020
;; MSG SIZE  rcvd: 519
  • これ
7PU0EU55PQV1FBAG04R7636U5KQPPMD8.jprs.jp. 86400  IN NSEC3 1 0 5 45D5B58B 842SSMIE036ORET7132VEPF0B6IIDA4F  A NS SOA MX TXT AAAA RRSIG DNSKEY NSEC3PARAM SPF
  • 対応するレコードタイプ
    • A
    • NS
    • SOA
    • MX
    • TXT
    • AAAA
    • RRSIG
    • DNSKEY
    • NSEC3PARAM
    • SPF
  • 「次のドメイン名のハッシュ値842SSMIE036ORET7132VEPF0B6IIDA4Fである」
  • NSEC3
    • ドメイン名が平文だと全レコードを辿れてしまう(ゾーン列挙)
    • ホスト名にはredis.example.jpといったミドルウェア名を付けがちなので、攻撃リスクになりうるので、不用意に晒したくない