目录

  • 前言
  • 一、概述
    • 1、背景
    • 2、四种提升DNS安全性的协议
      • (1)DNSSEC
      • (2)DNSCrypt
      • (3)DNS over TLS (DoT)
      • (4)DNS over HTTPS (DoH)
  • 二、DoT
    • 1、介绍
    • 2、搭建
    • 3、应用
      • (1)厂家
  • 三、DoH
    • 1、介绍
    • 2、搭建
    • 3、应用
      • (1)厂家
      • (2)浏览器
  • 结语

前言

DNS是将域名和IP映射的地址簿,详细原理可参见一文搞明白DNS与域名解析

DNS的重要性也让其成了黑客主要攻击对象,常见的DNS攻击包括:DNS劫持、缓存投毒、DNS欺骗等等,目的就是通过各种攻击手段将正常访问合法网站的用户,引到黑客控制的假冒服务器上,进行钓鱼欺诈、窃取用户凭证或敏感数据等非法行为

为了防止针对DNS系统的攻击,强化域名系统的安全性,互联网诞生了4种提升DNS安全性的协议,分别是DNSSEC,DNSCrypt,DNS over TLS(DoT),DNS over HTTPS(DoH)

其中DNSSEC和DNSCrypt较早出现,DoT和DoH很新,本文试图学习了解此二种DNS安全协议

一、概述

1、背景

默认情况下,DNS 查询和响应以明文形式(通过 UDP)发送,这意味着它们可以被网络、ISP 或任何能够监视传输的人读取。即使网站使用 HTTPS,也会显示导航到该网站所需的 DNS 查询。

这种隐私上的欠缺对安全有着巨大影响,在某些情况下也会影响人权;如果 DNS 查询不是私密的,则政府可以更轻松地审查互联网,而不良行为者也可以跟踪用户的网上行为

未经加密的普通 DNS 查询可以比作通过邮件发送的明信片:处理邮件的任何人都可能瞥见背面写的文字,因此邮寄包含敏感或私密信息的明信片不是明智的做法。

基于 TLS 的 DNS 和基于 HTTPS 的 DNS 是为加密明文 DNS 流量而开发的两个标准,可以防止恶意方、广告商、ISP 和其他人解读其数据。继续上面的比喻,这些标准的目的是将邮寄的明信片放在信封内,以便任何人都可以寄送明信片,而不必担心有人窥探到明信片的内容

2、四种提升DNS安全性的协议

(1)DNSSEC

DNSSEC是“Domain Name System Security Extensions”的缩写,即域名系统安全扩展,允许域名所有者对DNS记录进行数字签名,签名DNS记录的私有签名密钥通常仅由合法域名所有者持有,因此可防止未经授权的第三方修改DNS条目。

DNSSEC诞生于1997年,已经列入互联网标准化文档(参考RFC 4033、RFC 4034、RFC 4035),是最早大规模部署的DNS安全协议,所有的根域名服务器都已经部署了DNSSEC。

虽然DNSSEC已经诞生20年,但APNIC统计其采用率几乎不到10%,ICANN敦促业界普及使用DNSSEC协议。不过,DNSSEC协议仅提供真实性和完整性的校验,无法确保DNS流量通信的机密性。

(2)DNSCrypt

DNSCrypt是OpenDNS发布的加密DNS工具。与SSL将HTTP流量转换为HTTPS加密流量的原理相同,DNSCrypt也是将常规DNS流量转换为加密DNS流量,这样可以防止窃听和中间人攻击。它不需要对域名或它们的工作方式进行任何更改,只是提供了一种方法,安全加密客户端与DNS服务器之间的通信。在一定程度上,DNSCrypt比DNSSEC的保密性更强,因为DNSSEC只做数字签名的校验,而DNSCrypt既能加密DNS流量也能确保完整性。

不过,DNSCrypt客户端必须明确信任所选提供者的公钥,想使用哪个DNSCrypt服务器,就需要预先安装该服务器的公钥,而不是通过常规浏览器中受信任证书颁发机构列表获取信任;此外,DNSCrypt未申请列入标准化文档,在大规模的应用场景中存在一定的局限性。

(3)DNS over TLS (DoT)

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的支持。

(4)DNS over HTTPS (DoH)

很多人将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标准化文档[RFC 8484],且受主流浏览器青睐

二、DoT

1、介绍

DNS over TLS(缩写:DoT)是通过传输层安全协议(TLS)来加密并打包域名系统(DNS)的安全协议,工作在853端口,由RFC 7858及RFC 8310定义,旨在防止中间人攻击与控制DNS数据以保护用户隐私

截至2018年,Cloudflare、Quad9与CleanBrowsing均向大众提供支持DNS over TLS的公共DNS解析服务

2018年4月,Google宣布Android P将包含对DNS over TLS的支持。PowerDNS的DNSDist也宣布在其最新的1.3.0版本中添加了对DNS over TLS的支持。

BIND用户也可以通过stunnel代理提供DNS over TLS服务

2020年6月,苹果在WWDC大会宣布 iOS 14 与 macOS 11 新增对加密DNS的支持,包括 DNS over HTTPS(DoH)与 DNS over TLS(DoT)

2、搭建

参见:

  • Unbound + Dnsdist + DOH C/S 搭建DNS Over TLS 以及 DNS Over HTTPS服务器
  • 使用Unbound + DOH Server 搭建DNS-OVER-HTTPS && DNS-OVER-TLS && DNSCrypt服务器

3、应用

(1)厂家

三、DoH

1、介绍

DNS over HTTPS(缩写:DoH)是一个进行安全化的域名解析方案,使用HTTPS协议和HTTP/2协议进行DNS解析请求,工作在443端口,由RFC 8484定义,旨在避免原始DNS协议中用户的DNS解析请求被窃听或者修改

DoH用于DNS解析器的递归DNS解析,解析器(DoH客户端)必须能够访问托管查询端点的DoH服务器。

基于HTTPS的DNS缺乏操作系统的本机支持, 因此,希望使用它的用户必须安装附加软件。 以下几种使用场景很常见:

  • 在应用程序中使用DoH实现:某些浏览器具有内置的DoH实现,因此可以绕过操作系统的DNS功能来执行查询。 缺点是应用程序可能无法通过错误配置或缺乏对DoH的支持来通知用户是否跳过DoH查询。

  • 在本地网络中的名称服务器上安装DoH代理:在此方案中,客户端系统继续使用传统(端口53或853)DNS来查询本地网络中的名称服务器,然后通过到达来通过DoH收集必要的回复 互联网中的DoH服务器。 此方法对最终用户是透明的。

  • 在本地系统上安装DoH代理:在此方案中,操作系统配置为查询本地运行的DoH代理。 与前面提到的方法相反,需要在希望使用DoH的每个系统上安装代理,这可能需要在更大的环境中付出很多努力。

  • 为操作系统安装DoH解析插件

在所有这些方案中,DoH客户端不直接查询任何权威名称服务器。 相反,客户端依赖于使用传统(端口53或853)查询的DoH服务器来最终到达权威服务器。 因此,DoH不具备端到端加密协议的资格,只有逐跳加密且仅在始终使用DNS over TLS时才有资格

2、搭建

参见

  • DOH(DNS-over-HTTPs)服务器搭建
  • Unbound + Dnsdist + DOH C/S 搭建DNS Over TLS 以及 DNS Over HTTPS服务器
  • 使用Unbound + DOH Server 搭建DNS-OVER-HTTPS && DNS-OVER-TLS && DNSCrypt服务器

3、应用

(1)厂家

(2)浏览器

1、在 Firefox 62 及以上版本中开启 DNS over HTTPS

  • 在浏览器地址栏输入 about:config 然后打开,并同意警告信息。
  • 搜索 network.trr
  • 设置 network.trr.mode 值为2
  • 在 network.trr.uri 中填入上表中任一服务器,例如:https://1.1.1.1/dns-query
  • 设置好后,在地址栏输入 about:networking 可以看到具体通信情况

2、在 Chrome 中开启 DNS over HTTPS

  • 在浏览器地址栏输入 chrome://flags 然后打开
  • 搜索 DNS
  • 设置 Secure DNS lookups 值为 Enabled

3、在Chromium版Edge 中开启 DNS over HTTPS

  • 在浏览器地址栏输入 edge://settings/privacy 然后打开
  • 查找“安全性”一栏
  • 打开“使用安全的 DNS 指定如何查找网站的网络地址”

结语

对DoT和DoH都做了一定的了解

参考:

  • DNS安全,DNS over HTTPS or DNS over TLS
  • 基于 HTTPS 的 DNS 和基于 TLS 的 DNS | 安全 DNS
  • DOH简介
  • DOH(DNS-over-HTTPs)服务器搭建

一文了解 DoH(DNS-over-HTTPS)和DoT(DNS-over-TLS)相关推荐

  1. 如何为Win10开启DoH(DNS over HTTPS)

    Win11 Win11已原生支持DoH,参考这篇:启用Win11原生支持的DoH(DNS over HTTPS) 本文Win10的使用cloudflared实现,其他的工具比如smartdns也可以, ...

  2. 启用Win11原生支持的DoH(DNS over HTTPS)和配置自定义的DoH服务

    更新 22.1.23:发现有的dns配置没有首选的dns加密,好像是用无线的时候就会没有,不影响,看情况2就行 为了方便,直接给出一些模板(国内可用的) netsh dns add encryptio ...

  3. 如何快速的自建 DoH ( DNS over HTTPS) 服务

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 1. 前言 DoH(DNS over HTTPS),顾名思义,使用HTTPS协议执行DNS查询,除了最常用的UDP ...

  4. 微软不再为 DNS over HTTPS (DoH) 提供 Google PublicDNS 和 Cloudflare DNS 服务提供商

    如果你尝试在 Microsoft Edge 浏览器设置中自行选择 DNS 服务提供商,那么现在微软不再为 DNS over HTTPS (DoH) 提供 Google PublicDNS 和 Clou ...

  5. DNS over HTTPs分析和威胁检测

    DNS over HTTPs分析和威胁检测 DNS over HTTPs分析和威胁检测 概述 特性 应用实现 公共DNS支持 利用DNS over HTTPS的恶意软件及活动 检测方法 情报收集和提取 ...

  6. 4种DNS安全协议对比:DNSSEC,DNSCrypt,DNS over TLS,DNS over HTTPS

    DNS域名系统(Domain Name System的缩写),是一个将域名和IP地址相互映射的分布式数据库,能够使人通过便于记忆的域名地址访问互联网,而无需记住长串毫无关联性的IP地址.DNS可以理解 ...

  7. dns type65 https rr

    dns type65 https rr 前言 尝试 复现 前言 同事发来了一段流量,之前接触的dns流量都为A记录 :NS记录: MX记录 :CNAME记录 :TXT记录 :TTL值 :PTR值,但是 ...

  8. 应用层(DNS/HTTP/HTTPS)攻击与防御原理

    网络层攻击:TCP.UDP类攻击 网络层攻击可参考:网络层(TCP/UDP)攻击与防御原理 DNS类报文攻击防御 简要笔记: 针对DNS Anti-ddos ,针对缓存服务器 虚假源 (1)源认证 发 ...

  9. 使用又拍云加速后的HTTPS访问和DNS设置

    使用又拍云加速后的HTTPS访问和DNS设置 aside: true 分类

最新文章

  1. u2net encode
  2. 1.10 编程基础之简单排序 03 成绩排序 3分 python
  3. C++ 学习笔记---善良的算法讲解
  4. 终于可以自定义喇叭声音:你的特斯拉可以“放屁”吓唬人了
  5. Spark面试术语总结
  6. matplotlib 设置中文字体
  7. 操作系统概念之OSAL
  8. Python绘制漫天的雪花,漫步天涯
  9. 诛仙2怎样修改服务器时间,《诛仙2》3月2日服务器数据互通公告
  10. 【Python+Appium】开展自动化测试(八)swipe()滑动页面
  11. 编译原理 | 由正规文法构造状态转换图
  12. Win10 安装虚拟机ROS
  13. 2017年寒假集训分组测试赛2 Ranklist
  14. SecureCRT登录会话密码解密
  15. 【已解决】MATLAB未定义函数或变量 ‘wavread‘,以及audioread,audiowrite,wavwrite
  16. JSAAS开源社区版
  17. acwing基础课——堆
  18. 交换机不配access口能通吗_交换机的Access端口和Trunk端口
  19. Xendesktop配置高可用DDC
  20. 【含答案】心田花开:小学一年级语文上册期中试卷

热门文章

  1. 【C/C++】超大遥感影像读取和存储 GDAL
  2. HANA XS 匿名访问
  3. 手把手教你如何用Python从PDF文件中导出数据(附链接)
  4. iis ftp服务器修改端口号,iis ftp服务器指定端口
  5. 《时空测量原理》韩春好著
  6. 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡
  7. 解决 Unrecognized field code , not marked as ignorable 问题
  8. Ant Design中Form组件重置验证条件resetFields()方法
  9. Python 蓝桥杯试题 基础练习 特殊回文数
  10. MySQL-5.7.18绿色版安装和配置