设为首页收藏本站

ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 3565|回复: 0

转:如何验证DNS服务器是否支持DNSSEC?RRSIG DS记录加密字符串信息检测

[复制链接]
 成长值: 351

签到天数: 4742 天

[LV.Master]伴坛终老

发表于 2016/5/21 23:39 | 显示全部楼层 |阅读模式 |Google Chrome 50.0.2661.102|Windows 10
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
众所周知,DNSSEC对于DNS劫持虽然有极强的防御性,但由于被劫持的数据都会在验证失败后被丢弃,因而并不能让我们在DNS劫持的情况下获得正确的解析结果。(请先参考:什么是DNSSEC?DNSSEC的概念及作用)

所以,我们需要DNS安全传输的前提是加固客户端到DNS服务器之间的网络连接的安全性。

也就是说,DNSSEC除了客户端支持之外,更重要的是DNS服务器本身必须有部署DNSSEC的支持。

否则:

客户端没有配置dnssec-check-unsigned而DNS服务器支持DNSSEC,此时DNSSEC默认信赖所有没签名的数据,等于没有提供任何防护;

客户端配置启用了dnssec-check-unsigned而DNS服务器不支持DNSSEC,dnsmasq因为不能获取任何DNSSEC签名信息导致不信任全部解析结果,进而使得整个DNS解析服务完全无法工作。
那么...

如何判定一台DNS服务器是否支持DNSSEC呢?

很简单,还是用dig命令。dig命令参考手册

方法A:检查一个有DNSSEC签名的域名的RRSIG(Resource Record Signature)

为了让结果看得更清楚,我们找一个配置了DNSSEC签名的域名(paypal.com),一个支持DNSSEC的DNS服务器(4.2.2.4),和一个不支持DNSSEC的DNS服务器(114.114.114.114)。

使用支持DNSSEC的4.2.2.4查询结果如下:(也可是试试+trace来查询)
root@OpenWrt:~# dig paypal.com +dnssec @4.2.2.4

; <<>> DiG 9.9.4 <<>> paypal.com +dnssec @4.2.2.4
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48979
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;paypal.com.                    IN      A

;; ANSWER SECTION:
paypal.com.             293     IN      A       66.211.169.3
paypal.com.             293     IN      A       66.211.169.66
paypal.com.             293     IN      RRSIG   A 5 2 300 20140728175119 20140628172604 11811 paypal.com. ka3J7csLBUiZIrh7YTKJ7eUBzpACe7jmr6M2wURsNCQ/dFjB9Jl018OZ 6i3BzzSYqSS2jw9TmVZMKxRLH3cmt5jc1BNI6Q9uB46DLpJJoAmXQ1rQ ss37Mb4BlK8dD4rxLJmEJh19+Kg8xXxE8iGYwLM7tkyayIjVdxbt80TE vgg=

;; Query time: 224 msec
;; SERVER: 4.2.2.4#53(4.2.2.4)
;; WHEN: Tue Jul 15 21:49:25 CST 2014
;; MSG SIZE  rcvd: 241


使用不支持DNSSEC的114.114.114.114查询结果如下:
root@OpenWrt:~# dig paypal.com +dnssec @114.114.114.114

; <<>> DiG 9.9.4 <<>> paypal.com +dnssec @114.114.114.114
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12717
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;paypal.com.                    IN      A

;; ANSWER SECTION:
paypal.com.             300     IN      A       66.211.169.3
paypal.com.             300     IN      A       66.211.169.66

;; Query time: 577 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Tue Jul 15 21:49:57 CST 2014
;; MSG SIZE  rcvd: 60


我们可以看到,支持DNSSEC的服务器多返回了一串非常长的RRSIG(Resource Record Signature),这就是DNSSEC中非常重要的数据签名。

而不支持DNSSEC的服务器就完全没有返回这些信息了,由此我们可以很容易区分一台DNS服务器是否支持DNSSEC。

不过,目前配置了DNSSEC签名的域名非常少,据我所知一般有些国外政府域名有,当然paypal也有,而国内几乎没有(国内的支付宝并没有)。

如果一个域名本身就没有配置DNSSEC签名,那么无论你是通过什么样的DNS服务器查询dnssec数据,结果都是一样的。

那如果我们不知道哪些域名配置了DNSSEC签名,难道就无法验证DNS服务器是否支持DNSSEC了?

当然不是!我们有...

方法B:自残测试法!

由于当我们启用了Dnsmasq的dnssec–check–unsigned选项,Dnsmasq就会检查DNS返回的数据是否经过签名。(注意,这个签名是DNS服务器本身对发出的数据包的签名,用于证明这个数据包确实发送自我这个服务器且没有被修改,和域名本身是否有DNSSEC签名毫无关系。)

如果DNS服务器返回的数据包没有经过DNS服务器签名,那么Dnsmasq就会丢弃这个解析结果,因为启用这个选项后它只接受签名过的数据。

所以,做法就是:

把Dnsmasq的DNS设置为你要测试的那个DNS服务器(注意!只写这一个DNS,别的都不写);

启用Dnsmasq的dnssec-check-unsigned选项;

域名解析验证。
如果你还可以解析域,说明这个DNS支持DNSSEC;如果你发现什么域名都解析不了了,那么就是因为这个DNS服务器不支持DNSSEC,导致Dnsmasq不信任返回的所有数据了。

国内目前支持DNSSEC的服务器,有百度DNS,SecureDNS和PandaDNS等。而国外的公共DNS,我们熟知的那些除了OpenDNS有它自己的一套DNScrypt加密体系而没有采用DNSSEC其他倒基本都是支持的。

我测试过支持DNSSEC的国内外公共DNS如下:
百度DNS:180.76.76.76

中科大的LUGDNS:202.38.93.153(教育网) | 202.141.176.93(中国移动) | 202.141.162.123(中国电信)

Secure国家DNS:1.2.4.8 | 210.2.4.8

360dns派:101.226.4.6

PandaDNS:182.254.158.191 | 120.27.30.176

Google Public DNS: 8.8.8.8 | 8.8.4.4

Norton DNS: 199.85.126.20 | 199.85.127.20

Comodo DNS: 8.26.56.26 | 8.20.247.20

DNS Advantage: 156.154.70.1 | 156.154.71.1

NTT DNS: 129.250.35.250 | 129.250.35.251

Verizon DNS: 4.2.2.1 | 4.2.2.2 | 4.2.2.3 | 4.2.2.4 | 4.2.2.5 | 4.2.2.6

cf DNS:1.1.1.1 | 1.0.0.1


转:https://www.lifetyper.com/2014/07/list-of-dnssec-compatible-dns-server-and-method-for-verify.html

欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 新浪微博账号登陆用百度帐号登录

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2024/12/28 20:49 , Processed in 0.134736 second(s), 24 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

快速回复 返回顶部 返回列表