关于2017年KSK轮转

10/10/2017

最近信息更新:9月28日 ICANN推迟了原本10月11日的签名操作,具体操作时间未通知!

在介绍DNS KSK密钥轮转之前先简单的介绍一下DNS和DNSSEC。首先DNS也就是我们所说的域名系统,主要的工作职责就是将我们访问的域名转化为机器能够识别的ip地址,比如你去访问www.google.com,系统后台发送DNS查询到服务器获得对应的ip地址,机器然后通过这个ip地址访问系统。当然中间的查询并不是一次完成的,还涉及了递归查询,递归服务器(比如8.8.8.8),权威服务器(存储解析域名及IP数据的服务器)等,此处就不多解释了。

域名查询流程

DNS本身从协议上是不安全的,比如使用udp协议,而且很容易遭受到攻击(缓存中毒,域名劫持),DNSSEC的出现从一定程度上可以缓解这些攻击的发生,通过引入多层认证的方式,防止中间过程中的解析错误发生。当然引入DNSSEC是有代价的,原本看似简单的DNS查询立刻变得复杂和繁琐如下面的图示所示:

DNSSEC解析流程

我们可以通过dig命令来获得整个dnssec的验证流程,或者使用dnslookup.org的trace功能来获得整个的验证过程。通过查询我们可以看到当前阶段根中存在两个DNSKEY, key tag分别是19036和20326这两个tag就是我们即将讨论的两个主角,分别指的是KSK-2010和KSK-2017。其中DS记录是KSK的HASH值,而DNSKEY则指的是KSK的公钥值。


.    0     IN    DS     19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
.    0     IN    DS     20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D

在验证过程中,比如我们查询icann.org.的A记录时候,如果加入dnssec验证的话,则同时获得icann.org.的A记录和对应的A记录的签名RRSIG记录,RRSIG是通过ZSK(区域签名秘钥)来签署的,如下面所示当前的签名ZSK ID为6747.


icann.org.    600     IN    A     192.0.43.7
icann.org.    600     IN    RRSIG     A 7 2 600 20171029123648 20171008092107 6747 icann.org. 
fF6FqjpoxZIwh3H3ZNYLkp4PWXzposoqyqwMRN6RsKyf6ocovQNWi867cfu/PWjKyUjtANlEN
rFgE59Zc0fVWY5XTH43ROaSEaEwGxZMeQqkuDuv4x7RkgVE7yN/qgOdf7aEPU1Q5OKR52aKJX
TeA3k3ZdjWRwPNSVGXel65V0x5f5Q=

icann.org中还存在KSK密钥签名密钥,用来签名ZSK,至于为什么会有两个签名密钥,是因为我们会大量的签署 区数据内容(变更数据,增加数据都需要签名),大量的明文和密文会增加推导出私钥的可能性,因此现在的ZSK就需要经常调整,但是由于为了获得上层的认可我们需要将密钥签名提交到上级,如果每次修改ZSK都要提交一次则太过于频繁,也太麻烦,所以KSK的存在就是用来解决这个问题,这样我们可以使用KSK来签名少量数据(ZSK),而这个KSK就可以用的时间更久一些。

KSK需要提交到上级作为区数据内容,由上级进行签名,为了简短提交到上级的一般是一个hash过的内容比如使用SHA1算法计算后的DS记录。这样逐层将需要认证的DS提交到上一级,直到根区。

整个的验证过程是逐层完成的,对于根来说它的KSK公钥是没有任何上级来验证的方式,只能通过递归服务器内置的信任锚配置来完成校验,如果信任锚不能验证个这个记录也就没有办法完成校验,整个的校验过程失败。

KSK-2010是第一个加入的KSK,之前未使用过DNSSEC,也就是说这一次的替换时根加入SEC验证以来第一次进行轮转,所以大家都比较谨慎,ICANN推迟的主要原因也是在于采集的数据证明有部分递归服务器无法自动完成更新信任锚,虽然数量不多,但是背后到底有多少会受到影响,暂时无法估计。

尽管RFC5011(Automated Updates of DNSSEC Trust Anchors protocol )已经定义了自动更新信任锚的协议,BIND也支持自动更新,但是外面的世界比较复杂,各种解析软件,各种网络环境都会导致更新的不确定性。另外自动更新的信任锚也不是直接生效的,如果自动添加后1个月内没有异议才会真正的生效,7月11日加入的KSK-2017到8月11日才会启用受信任。当前阶段是受信任但是未签署任何内容。

对于Bind用户可以参考ISC的官方文档进行相关的操作,链接如下:https://www.isc.org/blogs/2017-root-key-rollover-what-does-it-mean-for-bind-users/


DNS 页面已被访问190次

发表评论