保护网站访问安全--阿里云DNS正式支持DNSSEC( 二 )


RRSET介绍
-即相同owner,type,class的若干RR的集合 。如图所示:当有一个域名(.)下有3个A记录,那么这3个A记录都将绑定到单个 A RRset 中 。

保护网站访问安全--阿里云DNS正式支持DNSSEC

文章插图
图2. RRset介绍
知道了rrset之后,接下来我们来看下签名的工作原理 。
保护网站访问安全--阿里云DNS正式支持DNSSEC

文章插图
ZSK(ZoneKey)介绍
ZSK私钥签名RRset生成RRSIG,公钥以 RRset的形式发布
仅权威服务器RRset签名生成RRSIG
RRSIG的TTL和RRSET的TTL相同
DNS解析时,查询RRset时,会同时获取RRSIG,以及,利用ZSK的公钥验证签名
如果权威DNS是可信的,那么验证过程到这里就可以结束了 。可是如果ZSK是伪造的,那该如何处理呢?这就需要有一种方法来对ZSK进行验证
保护网站访问安全--阿里云DNS正式支持DNSSEC

文章插图
图3. A记录签名流程
保护网站访问安全--阿里云DNS正式支持DNSSEC

文章插图
图4. A记录签名的验签流程
KSK(KeyKey)介绍
KSK用于验证私钥签名 RRset(包含ZSK和KSK的公钥)生成 RRSIG本zone的信任可以建立,但KSK自己签名验证自己,不可信,所以需要建立信任链打通本zone和父zone之间的信任
保护网站访问安全--阿里云DNS正式支持DNSSEC

文章插图
图5. 的签名流程
DS( )介绍
子zone KSK公钥的哈希,提交到父zone上,子zone提交DS记录后,则意味着子zone的已经准备就绪递归DNS在迭代查询过程中,权威DNS在返回NS记录的同时会返回DS记录递归查到KSK公钥后进行哈希,和父zone里的DS记录进行比较,如果能匹配成功,则证明KSK没有被篡改
保护网站访问安全--阿里云DNS正式支持DNSSEC

文章插图
图6. DS记录的工作原理
解决众多技术难题,只为保护你的域名安全
目前是一个更加安全可靠的DNS解决方案,可以保证用户的解析不被劫持和投毒所影响,使得解析更准确 。
这种安全可靠的背后,又有哪些技术挑战需要去克服呢?
(1) 计算量 & 存储量
的拥有两种签名模式:a.在线签名; b.离线签名
在线签名,可以实时的返回最新的签名结果,不需要将签名结果存储在权威DNS上,节省了存储空间,可因为其需要进行实时计算,对CPU的性能带来了很大的考验 。
离线签名,可以返回稳定的签名结果,签名结果存储在权威DNS上,节约了计算消耗的时间以及CPU的使用,但对磁盘空间有不小的负担 。
云解析DNS在技术上,利用本身的高容量,高性能的优势,解决了功能所带来的计算和存储的压力,保证了用户域名的解析稳定
(2) 签名算法的选择
的签名有多种算法可以选择:
密钥类型编码 密钥类型
1 RSA/MD5
2 -
3 DSA/SHA-1
4Curve
5 RSA/SHA-1
6 DSA-NSEC3-SHA1
7 -NSEC3-SHA1
8 RSA/SHA-256
10 RSA/SHA-512
13 ECDSA Curve P-256 with SHA-256
14 ECDSA Curve P-384 with SHA-384
252
253DNS
254OID
ECDSA与类似的RSA签名相比,生成ECDSA签名的计算成本要低10倍,对于云解析DNS现在每天有海量的DNS解析请求,我们解决了高性能的签名计算难题,使得在技术上拥有了可行性 。
使用ECDSA实现128位签名需要一个256位密钥,而类似的RSA密钥则需要3072位 。
综合多种因素,云解析DNS采用的是算法 13: ECDSA Curve P-256 with SHA-256,这种算法签名得到的结果安全性高,并且字符长度适中,在兼顾了安全性的同时,也降低了传输时数据的大小 。
(3) 密钥安全性的保障