HTTPDNS

 

1.传统dns解析存在的问题

  1. 域名劫持:传统DNS解析过程中,域名解析请求经过多个中间节点,如本地DNS服务器、ISP的DNS服务器等。恶意攻击者可以篡改这些中间节点的解析结果,将特定域名解析到错误的IP地址或恶意网站,导致用户被重定向到攻击者控制的站点。

  2. 延迟和性能:传统DNS解析通常涉及多个层级的域名服务器,每个层级都需要进行查询和响应,可能会导致一定的解析延迟。此外,由于传统DNS使用UDP协议,存在丢包和重传的风险,进一步影响解析性能。

  3. 缓存一致性:传统DNS使用本地DNS缓存来存储解析结果,以提高解析效率。然而,缓存一致性可能成为一个问题,因为DNS解析结果可能会在不同的时间间隔内进行更新。这可能导致某些用户仍然获取到过期的缓存结果,而无法及时获取到最新的IP地址。

  4. 单点故障:传统DNS采用分布式的域名服务器架构,但仍然存在单点故障的风险。如果某个域名服务器发生故障或遭受攻击,可能会导致整个解析系统的不可用性或性能下降。

  5. 安全性和隐私性:传统DNS通信是明文的,容易受到窃听和数据篡改的风险。此外,DNS解析过程中的域名查询信息也可能暴露用户的浏览行为和访问偏好,涉及隐私问题。

这些问题推动了一些新的解析方案的出现,如HTTPDNS、加密DNS(如DNS over HTTPS和DNS over TLS)等,以改善安全性、性能和隐私保护等方面的问题。这些新技术试图解决传统DNS解析中存在的一些弱点,并提供更可靠和安全的域名解析服务。

 

2.HTTPDNS

HTTPDNS是一种基于HTTP协议的域名解析服务,它与传统的基于DNS协议的域名解析方式有所不同。在HTTPDNS中,域名解析请求通过HTTP协议发送到HTTPDNS服务器,而不是传统的DNS服务器

也就是每家公司基于 HTTP 协议,自己实现自己的域名解析,自己做一个自己的地址簿,而不使用统一的地址簿。但是默认的域名解析都是走 DNS 的,因而使用 HTTPDNS 需要绕过默认的 DNS 路径,就不能使用默认的客户端。

使用 HTTPDNS 的,往往是手机应用,需要在手机端嵌入支持 HTTPDNS 的客户端 SDK

相比传统DNS解析,HTTPDNS具有以下优点:

  1. 高性能:由于HTTPDNS使用基于HTTP的通信方式,可以利用HTTP的并发性和缓存机制,提高解析效率和响应速度。

  2. 可靠性:HTTPDNS可以使用多个HTTPDNS服务器进行域名解析,从而减少单点故障的风险。

  3. 动态控制:HTTPDNS可以根据实时需求进行灵活的解析策略调整,如根据地理位置、网络状况等选择最佳的IP地址。

  4. 防域名劫持:HTTPDNS可以通过使用HTTPS加密通信,减少域名劫持的风险。

HTTPDNS服务通常由第三方提供商提供,如阿里云HTTPDNS、腾讯云HTTPDNS、DNSPod HTTPDNS等,少部分公司也会自己搭建自己的HTTPDNS服务。应用程序需要与相应的HTTPDNS提供商集成,并使用其提供的API进行域名解析请求和响应处理。

 

工作模式

在客户端的 SDK 里动态请求服务端,获取 HTTPDNS 服务器的 IP 列表,缓存到本地。随着不断地解析域名,SDK 也会在本地缓存 DNS 域名解析的结果。

当手机应用要访问一个地址的时候,首先看是否有本地的缓存,如果有就直接返回。这个缓存和本地 DNS 的缓存不一样的是,这个是手机应用自己做的,而非整个运营商统一做的。如何更新、何时更新,手机应用的客户端可以和服务器协调来做这件事情。

如果本地没有,就需要请求 HTTPDNS 的服务器,在本地 HTTPDNS 服务器的IP 列表中,选择一个发出 HTTP 的请求,会返回一个要访问的网站的 IP 列表。

 

例:

curl http://106.2.xxx.xxx/d?dn=c.m.163.com

返回

{"dns":[{"host":"c.m.163.com","ips":["223.252.199.12"],"ttl":300,"http2":0}],"client":{"ip":"106.2.81.50","line":269692944}}

 

 

3.加密DNS

加密DNS是一种通过加密通信方式来保护DNS解析过程中的隐私和安全性的技术。传统的DNS解析通信是明文的,容易受到窃听和篡改的风险,而加密DNS通过使用加密协议对DNS通信进行保护,提供更安全和私密的解析服务。

以下是几种常见的加密DNS技术:

  1. DNS over HTTPS (DoH):DNS over HTTPS是一种将DNS请求和响应通过HTTPS协议进行加密的技术。它使用TLS协议保护DNS通信,将DNS数据包封装在HTTPS请求和响应中,使得DNS解析过程无法被窃听和篡改。DoH使用标准的443端口,与常用的HTTPS流量混淆,提高了安全性和隐私性。

  2. DNS over TLS (DoT):DNS over TLS也是一种通过使用TLS协议保护DNS通信的技术,但与DoH不同的是,它使用专门的TLS端口(通常是853)进行通信。DoT通过对DNS数据包进行加密和身份验证,确保DNS解析过程的机密性和完整性。

  3. DNSCrypt:DNSCrypt是一种将DNS请求和响应通过加密通信的技术。它使用特定的加密协议对DNS数据进行加密,并使用公钥加密身份验证,以确保DNS通信的安全性和防止DNS劫持。DNSCrypt可以在客户端和服务器之间建立加密通道,保护DNS解析过程的隐私和安全。

这些加密DNS技术可以提供更安全的域名解析服务,保护用户的隐私和防止DNS劫持等攻击。它们需要客户端和服务器之间双方都支持相应的加密协议,并进行适当的配置和部署。越来越多的DNS服务提供商和操作系统开始支持这些加密DNS技术,以提供更安全和私密的DNS解析服务。

 

posted @ 2024-05-14 16:32  心恩惠动  阅读(6)  评论(0编辑  收藏  举报