DNS域名系统(Domain Name System的缩写),是一个将域名和IP地址相互映射的分布式数据库,能够使人通过便于记忆的域名地址访问互联网(比如:沃通官网www.wosign.com),而无需记住长串毫无关联性的IP地址(比如:123.196.2.455)。DNS可以理解为“互联网的地址簿”,是互联网的一项基础服务。
DNS的重要性也让其成了黑客主要攻击对象,常见的DNS攻击包括:DNS劫持、缓存投毒、DNS欺骗等等,目的就是通过各种攻击手段将正常访问合法网站的用户,引到黑客控制的假冒服务器上,进行钓鱼欺诈、窃取用户凭证或敏感数据等非法行为。
为了防止针对DNS系统的攻击,强化域名系统的安全性,互联网诞生了4种提升DNS安全性的协议,分别是DNSSEC,DNSCrypt,DNS over TLS,DNS over HTTPS。
什么是DNSSEC
DNSSEC是“Domain Name System Security Extensions”的缩写,代表域名系统安全扩展,允许域名所有者对DNS记录进行数字签名,签名DNS记录的私有签名密钥通常仅由合法域名所有者持有,因此可防止未经授权的第三方修改DNS条目。
DNSSEC诞生于1997年,已经列入互联网标准化文档(参考RFC 4033、RFC 4034、RFC 4035),是最早大规模部署的DNS安全协议,所有的根域名服务器都已经部署了DNSSEC。
虽然DNSSEC已经诞生20年,但APNIC统计其采用率几乎不到19.3%,ICANN敦促业界普及使用DNSSEC协议。不过,DNSSEC协议仅提供真实性和完整性的校验,无法确保DNS流量通信的机密性。
什么是DNSCrypt
DNSCrypt是OpenDNS发布的加密DNS工具。与SSL将HTTP流量转换为HTTPS加密流量的原理相同,DNSCrypt也是将常规DNS流量转换为加密DNS流量,这样可以防止窃听和中间人攻击。它不需要对域名或它们的工作方式进行任何更改,只是提供了一种方法,安全加密客户端与DNS服务器之间的通信。在一定程度上,DNSCrypt比DNSSEC的保密性更强,因为DNSSEC只做数字签名的校验,而DNSCrypt既能加密DNS流量也能确保完整性。
不过,DNSCrypt客户端必须明确信任所选提供者的公钥,想使用哪个DNSCrypt服务器,就需要预先安装该服务器的公钥,而不是通过常规浏览器中受信任证书颁发机构列表获取信任;此外,DNSCrypt未申请列入标准化文档,在大规模的应用场景中存在一定的局限性。
什么是DNS over TLS
DNS over TLS(简称DoT)是一项安全协议,它可以强制所有和DNS服务器相关的链接都使用TLS,已列入标准文档(参见 RFC 7858 和 RFC 8310)。
DNS over TLS 就是基于 TLS 隧道之上的域名协议,由于 TLS 本身已经实现了保密性与完整性,因此 DoT 自然也就具有这两项特性。DoT通过TLS协议及SSL/TLS证书(如:沃通SSL证书)实现安全加密和身份验证,实现保密性和完整性。
与前述两项协议相比,DNS over TLS更具优势:和DNSSEC相比,DNS over TLS具备了保密性;与 DNSCrypt相比,DNS over TLS已经形成标准化文档。不过,目前支持DNS over TLS 的客户端还不够多,主流浏览器还没有计划增加对DNS over TLS的支持。
什么是DNS over HTTPS
很多人将DNS over HTTPS 和DNS over TLS混为一谈,事实上二者是两种不同的协议,DNS over TLS使用TCP作为基本的连接协议,而DNS over HTTPS使用HTTPS和HTTP/2进行连接;DNS over TLS有自己的端口853,DNS over HTTPS则使用HTTPS标准端口443。
不过,两种协议都是通过TLS加密和SSL/TLS证书(如:沃通SSL证书)来实现保密性与完整性。目前,DNS over HTTPS已经形成相应的草案,但还没有形成RFC标准化文档正式发布,但已经受到主流浏览器的青睐,Mozilla 已经决定在Firefox Nightly中测试DNS-over-HTTPS协议。
Web服务器使用HTTPS加密已经得到广泛的普及和认同,而加密DNS服务器流量其实也是同等重要的。但实现DNS流量加密仍然需要DNS服务器、客户端浏览器等生态环境的支持。在DNS加密生态尚未完整建立的初期,沃通CA推荐网站服务器部署超安EV SSL证书,在浏览器上直观显示绿色地址栏及单位名称,网站显示名称具有唯一性,让假冒服务器难以复制仿冒,有效降低用户被假冒网站钓鱼欺诈的风险。此外,也建议域名所有者敦促服务商尽快支持DNS加密,建立安全可信的DNS域名系统使用环境。