RSS订阅 | 匿名投稿
您的位置:网站首页 > 服务支持 > 正文

浅析加密DNS

作者:habao 来源: 日期:2018-5-24 2:08:43 人气: 标签:服务器不支持tls

  【云管家】小鸟云管家是小鸟云计算推出的一款基于Windows平台的服务器站点管理软件。一键创建网站、FTP、数据库,帮您快速创建属于自己的Web站点。针对服务器定制的系统扫描功能,智能清理服务器运行过程中产生的垃圾并优化系统运行速度。综合全面的站点检测及修复能力,帮您扫除站点搭建的各种问题。方便好用的系统定时任务,帮你自动备份站点配置或者数据,防止数据意外丢失。

  本文章简单介绍一下两种加密DNS协议:DNS over HTTPS 和 DNS over TLS。这两种协议主要为了解决DNS带来的隐私和中间人问题。

  DNS设计之初并没有考虑安全问题,所以大部分DNS查询使用UDP传输,当然也可以用TCP。这两种方式既没有加密也没有签名。这就意味着中间人可以到用户访问的域名,导致隐私泄露。另外因为没有签名验证,中间人也可以DNS返回的IP地址,导致用户访问钓鱼网站。后来有了DNSSEC,引入了签名机制,了从权威DNS服务器,到DNS递归服务器,再到客户端都没有被。但是这依然没有解决隐私问题。

  其实隐私问题之所以没被重视,主要有几点:第一,中间人肯定能知道你要访问的服务器IP地址,多数情况下知道IP就知道是什么网站了。第二,有一些上层协议也会泄露域名,HTTP就不说了,TLS协议也有Server Name Indication(SNI),会域名。(注:IETF TLS工作组目前正在探讨草案《SNI Encryption in TLS Through Tunneling》,计划加密SNI)。第三,一些上层协议,如TLS,能够识别DNS是否被,这使得签名DNS本身显得不那么重要。

  但即使有上述三点,加密DNS数据也有显而易见的好处。第一,减小面。第二,用户请求DNS之后,未必就非得访问它呀,比如本文下述的子域名爆破,我们只对DNS数据本身感兴趣,而不访问其域名,这样加密DNS就有了实际意义。

  所以本文就要探讨一下DNS over TLS和DNS over HTTPS。这两个协议目前仅限于用户客户端和DNS递归服务器间的通信。截至2018年4月,递归服务器和权威服务器之间的通信不在这两个协议的适用范围内。也许以后递归服务器和权威服务器也会纳入DNS over TLS协议里,不过目前我没听说有人实现它。

  DNS over TLS的标准文档是RFC7858。文档很短,也比较易懂。客户端先和递归服务器进行TLS握手,使用的TCP端口号是853。握手之后,把DNS数据包作为TLS的payload发给DNS递归服务器即可。请求和回答的报文与普通的DNS over TCP的报文格式一样。

  我用C#写了一个非常简易的子域名爆破工具,为了演示DNS over HTTPS。(仅为技术讨论使用,请勿用于违法用途!)使用的是JSON格式的DNS over HTTPS,可以从UI上选服务器。纯字典搜索,字典是从dnsrecon项目复制过来的。

  这个工具我只测试了Framework 4.6.1。特别是Windows 10以前的操作系统可能连不上。我记得老版Windows不支持IP地址作为证书的Subject Alt Name,所以证书校验可能会失败。

  本文来源于ipfs

读完这篇文章后,您心情如何?
0
0
0
0
0
0
0
0
本文网址:
下一篇:没有资料