DNSSEC 根签名仪式

dnssec logo

DNS 根区域包含有关如何查询顶级域(TLD)名称服务器(.com、.edu 和.org 等)的信息。它使互联网用户能够访问所有顶级域,甚至像 .software 和 .bank 这样的全新域名,使其成为全球互联网不可或缺的组成部分。

DNSSEC 如何工作一文中,我们解释了 DNSSEC 中的信任如何从父区域的 DS 资源记录衍生出来。然而,DNS 根区没有父区,所以我们如何能信任其信息的完整性和真实性呢?

official ceremony photo

图片来源:IANA

这就是根签名仪式的目的。这是一个严格的程序,旨在为未来几个月内的 DNS 根区域公共密钥信息进行签名。这个过程中使用的私有签名密钥实际上是受 DNSSEC 保护的整个互联网的密钥。为访问这个密钥而举行一个公开、经过审计、受到严格控制的仪式,这是 DNSSEC 作为一个全球标准取得成功的必要条件。

Ólafur Guðmundsson 是 Cloudflare 的工程经理,也是 ICANN 的加密官,他参加了今年八月的仪式。以下是他对根签名仪式的回忆。

dnssec logo

根签名密钥在哪里?

有两个不同的地理位置用于保护根密钥签名密钥:加利福尼亚州的埃尔塞贡多和弗吉尼亚州的库尔佩伯。两者都是安全的设施,它们包含密钥的冗余副本。仪式在埃尔塞贡多和库尔佩珀两地交替进行。

仪式参与者

  • 仪式管理员
  • 一个内部证人
  • 凭据保险箱控制员
  • 硬件保险箱控制员
  • 1 号加密官
  • 2 号加密官
  • 3 号加密官
这些参与者中的每一个都只能完成仪式的某些部分。假设这些人的不诚实率为5%(这是规范中的正式规定),他们的角色划分方式能确保一组同谋者破坏根签名密钥的几率小于 1:1000000。
diagram who holds the key
其中前四个人是 ICANN 的工作人员,而三名加密官是来自互联网社区的可信志愿者。Verisign 也扮演着重要的角色,因为他们是根区域维护者,负责生成仪式中用于签名的根区签名密钥。此外,整个程序由两家与 Verisign 或 ICANN 都没有关系的四大审计公司进行审计。

仪式准备工作

世界上只有 14 名可用的加密官(每个地方有7名),他们中至少有 3 人必须参加仪式。因此,第一步是对加密官进行调查,以找到一个为期两天的窗口,其中 4-5 人可以参加。我们通常会努力寻找一个最少三个人以上可参加的时间段,因为紧急情况或旅行问题可能会导致仪式取消。
上一次仪式于 8 月 13 日在埃尔塞贡多设施举行。为了进入该设施,我必须出示政府颁发的身份证,并出示我包里的东西。完成后,我得到了一张贴在我衬衫上的身份条。然后,我等 ICANN 的一名工作人员送我进去。为了通过这扇门,他必须刷一张门禁卡,并将手放在一个扫描仪上。
第一站是一个会议室,那里正在供应午餐。我们在那里一起等待其他参加仪式的人到来。作为加密官,大部分的闲聊都是围绕着试图偷取根签名密钥而进行的。我们想,只需要半个小时左右的时间就可以在墙上炸出一个洞,然后带着保险盒走出去;然而,这可能会触发震动传感器,然后我们会知道密钥已经泄露。
所有人到齐后,我们被分批护送到仪式室,因为入口处的房间只能容纳 8 人左右。在这个房间里,被允许进入主密钥仪式室之前我们要签署一份日志。要进入入口室,ICANN 工作人员需要使用一张智能卡;要进入主室,则需要对该工作人员进行视网膜扫描。

一个人走进一个内有两个保险箱的房间......

仪式室的一侧有一个笼子,里面有两个保险箱。这些保险箱储存了仪式中使用的所有敏感材料。只有在仪式管理员和一名内部证人在场的情况下才能进入笼子。进入笼子需要仪式管理员和内部证人进行第二次视网膜扫描,并使用两者的访问卡。
diagram a guy walks into a room with two safes
然而,仪式管理员或内部证人都不能实际打开保险箱。这里需要保险箱控制员。

凭据保险箱

凭据保险箱控制员打开第一个保险箱,其中有几个保险盒,每个都需要两把钥匙。仪式管理员拥有其中的一把钥匙,而每个加密官都有一把不同盒子的钥匙。仪式管理员和加密官一起(并在内部证人和证书安全控制人在场的情况下)打开三个保险盒。
diagram the credentials safe
每个保险盒内都有一张操作卡和一张硬件安全模块(HSM)的安全权限卡,我们将在下一节讨论后者。解锁 HSM 需要三张操作卡,这就是为什么必须有三名加密官参加仪式。安全权限卡只有在我们需要转移根签名密钥时才会用到,所以我们通常把这些卡留在保险盒里。
两张卡都存放在塑料盒里,并用防篡改袋包裹着(仪式的大部分过程都是为了防止不正当行为)。这些卡片不使用时就放在保险盒里,这意味着最后一次有人接触它们是在上一次根签名仪式上。防篡改袋有助于确保它们在这期间没有被改变。
塑料盒也非常重要,因为有人发现可以通过用针捅破防篡改袋来操纵卡片,在检查袋子时不一定能注意到。这是一个很好的例子,说明围绕仪式的安全程序是如何不断发展的。
防篡改袋

硬件保险箱

然后,硬件保险箱控制员进入保险箱室,打开第二个保险箱,里面有一个防篡改的硬件安全模块(HSM)。HSM 是一种专门为处理敏感加密材料而设计的物理计算设备。你可以把它看作是一个用于根签名密钥的数字保险箱。只有使用我们从凭据保险箱中收集的三张操作卡才能进入。
diagram the hardware safe
没有外部接口就无法操作 HSM,所以该硬件保险箱还包含一台特殊的笔记本电脑,可以向 HSM 发送命令。这台笔记本电脑没有电池、硬盘,甚至没有时钟备用电池,因此一旦拔掉电源,就无法存储状态。其目的是为了消除在仪式结束后根签名密钥离开 HSM 的任何可能性。
我们现在有了进行根签名仪式的硬件。注意到所有 7 位参与者都必须在场,才能实际接触到仪式的材料。同样,这个想法是通过将对 HSM 的访问与对激活 HSM 的操作卡的访问分开,以便最大限度地减少恶意合谋者的风险。
从这个保险箱中还取出了一个包含先前每次仪式日志文件的 USB 驱动器和一张用于启动笔记本电脑的 DVD(都装在各自的防篡改袋中)。

设备摆设

我们现在准备进行实际的根签名仪式。所有设备都摆放在一张桌子上,在全部参与人员及用于审计这个过程的摄像机视线范围内。
三名加密官一个接一个地被叫到桌子前,要求他们交出从保险盒中取出的 HSM 操作卡。在这样做之前,他们确认防篡改袋的状况与他们在上一次仪式结束时将其放入保险盒时的状况相同。一旦他们交出卡片,只有仪式管理员才可以接触该卡片。
diagram equipment setup
仪式管理员从 DVD 启动笔记本电脑,并初始化记录仪式日志的 USB。请记住,笔记本电脑没有时钟电池备份,这意味着需要根据仪式室的专用挂钟手动设置时间。这是自五年前第一次仪式以来使用的同一个时钟,它与世界其他地方完全隔绝。挂钟的时间稍有偏差,但这没有问题,因为它只用于记录目的。
根签名仪式
仪式桌,设备摆设前
接下来,仪式管理员需要通过将从加密官那里收集的三张操作员卡放入机器来激活 HSM。然后,HSM 通过以太网电缆与笔记本电脑相连。仪式管理员现在可以访问根签名密钥。

为 DNS 根密钥签名

有两个不同的地理位置用于保护根密钥签名密钥:加利福尼亚州的埃尔塞贡多和弗吉尼亚州的库尔佩伯。两者都是安全的设施,它们包含密钥的冗余副本。仪式在埃尔塞贡多和库尔佩珀两地交替进行。
diagram signing the root dns keys
笔记本电脑/HSM 系统是气密的,这意味着它与任何潜在不安全的计算机网络(如互联网)物理隔离。将信息从外部世界移入笔记本电脑/HSM 的唯一方法是通过 USB 驱动器。相应地,密钥签名请求通过 USB 驱动器加载到笔记本电脑中。为了确保签名的是正确的密钥,会计算出密钥签名请求的 PGP 哈希值,Verisign 会验证它是否与他们提供的密钥相同。
最后,仪式管理员可以用私钥签名密钥对 KSR 进行签名。他在命令提示符上输入 "Y",仪式的戏剧性部分就完成了。其结果是一个数字签名的集合,在 DNSSEC 中被称为 RRSIG 记录,我们稍后将探讨这个问题。
请注意,KSR 实际上包含了一组区域签名密钥,每 15-16 天轮换一次。组中的密钥足够维持到三个月后的下一次根签名仪式。

公共记录

每一个微小的细节都被审计员记录和录像 ,使整个仪式成为公开记录。如果整个受 DNSSEC 保护的互联网要相信根名称服务器的签名,这一点至关重要。
这段视频在仪式期间进行了直播,我们能够跟踪有多少人在实时观看仪式。这次我们的观众人数破了记录,可能是由于比以前的仪式宣传得更好。我们甚至能够让一个参与者通过聊天室转述观众的问题。我们对这些接触都感到非常高兴。
日志
仪式结束时,日志被打印出来,并分发给房间里任何想要的人。Verisign 获得一份存放在 USB 驱动器上的签名密钥集副本,他们将在今年第四季度在根区使用这些签名的 DNSKEY RRsets。所有材料都被放回防篡改袋中,并放入各自的保险箱中。

让我们看看那些已签名的密钥!

有两个不同的地理位置用于保护根密钥签名密钥:加利福尼亚州的埃尔塞贡多和弗吉尼亚州的库尔佩伯。两者都是安全的设施,它们包含密钥的冗余副本。仪式在埃尔塞贡多和库尔佩珀两地交替进行。
dig .dnskey +dnssec
这要求从根 DNS 名称服务器获得 dnskey 记录。响应中值得注意的部分应该看起来像以下:
. 20868 IN DNSKEY 257 3 8 AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0= . 20868 IN DNSKEY 256 3 8 AwEAAa67bQck1JjopOOFc+iMISFcp/osWrEst2wbKbuQSUWu77QC9UHL ipiHgWN7JlqVAEjKITZz49hhkLmOpmLK55pTq+RD2kwoyNWk9cvpc+tS nIxT7i93O+3oVeLYjMWrkDAz7K45rObbHDuSBwYZKrcSIUCZnCpNMUtn PFl/04cb . 20868 IN RRSIG DNSKEY 8 0 172800 20150913235959 20150830000000 19036 . QKU/YSUHNXa0coshORV2r8o0PWZ43dn/u1ml4DglqLXTi2WJh+OyMFgi w4Xc7cF4T8Eab5TLbwqDHOrE87fmvcdSgQQOVwYN6jwStHAliuEICs6X rd+sqanyyMpaynLI630k5PuuQVOWxHn/Hyn4yFN5MJoQG9Pz+gn8FjCB oNGs0vu1TQm2m6DSGfjRTd7tRIchXAbOUvEVVnDWaTNPX3c35xqoHlUZ Ta00N9FvKqEwZDjdR1e0BCaDLL/Pk+CRygzOyfSKiuULzKEecsp3jPYY nXfKZmTuMuaQNRmcyJD+WSFwi5XyRgqrnxWUYmFcum4zw1NXdyp0mlGO slQ6NQ==
第一条记录是 HSM 中私钥签名密钥的对应公钥,第二条是 Verisign 提供的区域签名密钥,第三条 RRSIG 记录是我们在根签名仪式上创建的内容。如果没有最后一项,全世界的 DNSSEC 系统将无法运作。

摘要

根签名仪式将根 DNS 名称服务器变成一个信任锚。信任不是从某个父区域衍生,而是假定的。整个仪式旨在加强这种信任。这是保障互联网安全的一个非常人性化的方面:您之所以可以信任 DNS 根服务器,是因为您可以信任为它签名的人。而且,您之所以可以信任签名的人,是因为他们在这样做时遵循严格的协议。这就是根签名仪式的意义所在。

设置 Cloudflare 很容易



在不到 5 分钟内建立域名。保留您的托管服务提供商。 不需要更改代码。


深受数百万互联网资产的信赖

Logo doordash trusted by gray
Logo garmin trusted by gray
Logo 23andme trusted by gray
Logo lending tree trusted by gray
NCR logo
Thomson Reuters logo
Logo zendesk trusted by gray