Episode 4

信任层级体系

前面说过,DNS 是层级结构的。

前面说过,DNS 是层级结构的。

解析器想查 dnsimple.com 的 A 记录,得先问根服务器:.com 的服务器在哪儿?

* 这位是漫画《HowDNS.works》里的角色
前面说过,DNS 是层级结构的。

然后 .com 服务器会给解析器指路:dnsimple.com 的权威域名服务器在那边。

* 这位是《HowDNS.works》里的另一个角色
前面说过,DNS 是层级结构的。

最后,权威服务器把 dnsimple.com 的 A 记录对应的 IP 地址双手奉上。

* 还是《HowDNS.works》里的角色,懂的都懂。
前面说过,DNS 是层级结构的。

这一整套,都建立在一根信任链上。

这一整套,都建立在一根**信任链**上。

每跟一台服务器打交道,解析器都默认:自己正从可信的父区(爹),被引导到可信的子区(娃)那里。

每跟一台服务器打交道,解析器都默认:自己正从可信的父区(爹),被引导到可信的子区(娃)那里。

在 DNSSEC 的世界里,这份信任靠一种新记录类型来传递——委托签名者(delegation signer,DS)

在 DNSSEC 的世界里,这份信任靠一种新记录类型来传递——**委托签名者(delegation signer,DS)**。

DS 记录在子区生成,然后上交父区保管。

DS 记录在子区生成,然后上交父区保管。

DS 记录的内容是:你的 DNS 服务商把 DNSKEY 记录里那把密钥签名密钥的公钥,做了一次哈希。

DS 记录的内容是:你的 DNS 服务商把 DNSKEY 记录里那把密钥签名密钥的公钥,做了一次哈希。

这条 DS 记录,必须放在父区里。

这条 DS 记录,必须放在父区里。

解析器来查子区时,父区会把 DS 记录交给它。

解析器来查子区时,父区会把 DS 记录交给它。

这一手有两个妙处:

这一手有两个妙处:

其一,解析器由此得知:这家的子区开了 DNSSEC。

其一,解析器由此得知:这家的子区开了 DNSSEC。

其二,解析器可以拿父区里明文存放的 DS 记录,跟子区的 DNSKEY 对一对暗号。

其二,解析器可以拿父区里明文存放的 DS 记录,跟子区的 DNSKEY 对一对暗号。

解析器把子区的 DNSKEY 重新哈希一遍,再和 DS 记录比对。

解析器把子区的 DNSKEY 重新哈希一遍,再和 DS 记录比对。

对不上?解析器立刻明白:这个区被人动过手脚了。

对不上?解析器立刻明白:这个区被人动过手脚了。

对上了?解析器从此就信任 dnsimple.com 了。

对上了?解析器从此就信任 dnsimple.com 了。

好,DNSimple 可信了。可 .com 和根服务器呢?它们又找谁背书?

好,DNSimple 可信了。可 .com 和根服务器呢?它们又找谁背书?
继续阅读 →