如果评选一个差评服务器榜单,除去育碧高居榜首外,一定也少不了 Nintendo Switch 让人头秃的联网服务。尽管任天堂已经架设了香港 CDN 服务器用于加速,但是更新安装的速度也没有什么大幅改变。一般这种时候大家都会选择更改 DNS 来提高 NS 下载速度。

DNS(域名系统)是工作生活中很常见的名词,用户只需要在浏览器中输入一个可识别的网址,系统便会在很短的时间内找到相应的 IP 地址。在解析过程中,DNS 会访问各种名称服务器,从这些名称服务器中获取存储着的与 URL 对应的数字地址。截止到现在,DNS 已经发展了几十年,虽然使用广泛,却很少引起人们对其安全性的关注。

从安全角度来看,请求传输时通常不进行任何加密,任何人都可以读取的 DNS 其实是不安全的。这意味着网络罪犯可以很容易地使用自己的服务器拦截受害者的 DNS,将用户的请求跳转到钓鱼网站上,这些网站发布恶意软件,或在正常网站上投放大量广告吸引用户,这种行为我们称之为 DNS 劫持。为了减少这类情况的发生,业界专家目前在挣扎讨论基于 HTTPS 的 DNS(DoH)的可行性选择。那么什么是通过 HTTPS 的 DNS,它可以使 Internet 更安全吗?我们一起来看看吧。

为什么需要通过 HTTPS 的 DNS?

在日常上网中,如果用户输入无法解析的网址(例如,由于输入错误),则某些 Internet 提供商(ISP)会故意使用 DNS 劫持技术来提供错误消息。一旦 ISP 拦截了此内容,就会将用户定向到自己的网站,在该网站宣传自己或第三方的产品。虽然这并不违法,也不会直接损害用户,但是该类重定向仍会让用户反感。因此,单独使用 DNS 协议并不是非常可靠的。

而 DoH (DNS over HTTPS)即使用安全的 HTTPS 协议运行 DNS ,主要目的是增强用户的安全性和隐私性。通过使用加密的 HTTPS 连接,第三方将不再影响或监视解析过程。因此,欺诈者将无法查看请求的 URL 并对其进行更改。如果使用了基于 HTTPS 的 DNS ,数据在传输过程中发生丢失时,DoH 中的传输控制协议(TCP)会做出更快的反应。

目前,DoH 尚未成为 Internet 上的全球标准,大多数连接仍依赖基本的 DNS。到目前为止,仅 Google 和 Mozilla 两家公司涉足了这一领域。Google 现正在与部分用户一起测试该功能。此外,还有用于移动设备的应用程序,这些应用程序也可以通过 DoH 进行网上冲浪。Android Pie 也提供了通过网络设置启用基于 HTTPS 的 DNS 选项。

通过 HTTPS 的 DNS 如何工作?

通常一些域名解析会直接从用户的客户端进行,相应的域名信息被保存在浏览器或路由器的缓存中。而期间传输的所有内容都需要通过 UDP 连接,因为这样可以更快速地交换信息。但是我们都知道,UDP 既不安全也不可靠。使用该协议时,数据包可能会随时丢失,因为没有任何机制可以保证传输的可靠性。

而 DoH 依赖于 HTTPS,因此也依赖于 TCP,一种在 Internet 上使用频率更高的协议。这样既可以对连接进行加密, TCP 协议也可以确保完整的数据传输。另外,使用了基于 HTTPS 的 DNS,通信始终通过 443 端口进行,并在 443 端口传输实际的网络流量(例如,访问网站)。因此,外人无法区分 DNS 请求和其他通信,这也保障了更高级别的用户隐私。

DoH 的优点和缺点

DoH 的优点是显而易见的,该技术提高了安全性并保护了用户隐私。与传统的 DNS 相比,DoH 提供了加密措施。它利用 HTTPS 这种行业通用的安全协议,将 DNS 请求发往 DNS 服务器,这样运营商或第三方在整个传输过程中,只能知道发起者和目的地,除此以外别的什么都知道,甚至都不知道我们发起了 DNS 请求。

DoH 的加密措施可防止窃听或拦截 DNS 查询,但这也会带来了一些潜在的风险。多年以来实施的一些互联网安全措施都要求 DNS 请求过程可见。例如,家长控制需要依靠运营商为一些用户阻止访问某些域名。执法部门可能希望通过 DNS 数据来跟踪罪犯,并且许多组织都会使用安全系统来保护其网络,这些安全系统也会使用 DNS 信息来阻止已知的恶意站点。引入 DoH 可能会严重影响上述这些情况。因此,目前 DoH 还处于自主配置的时期。用户需要清楚谁可以看到数据,谁可以访问数据以及在什么情况下可以访问。

DoH 与 DoT

除了基于 HTTPS 的 DNS 外,目前还有另一种用于保护域名系统的技术:基于 TLS 的 DNS(DoT)。这两个协议看起来很相似,它们也都承诺了更高的用户安全性和隐私性。但是这两项标准都是单独开发的,并且各有各的 RFC 文档。DoT 使用了安全协议 TLS,在用于 DNS 查询的用户数据报协议(UDP)的基础上添加了 TLS 加密。DoT 使用 853 端口,DoH 则使用 HTTPS 的 443 端口。

由于 DoT 具有专用端口,因此即使请求和响应本身都已加密,但具有网络可见性的任何人都可以发现来回的 DoT 流量。DoH 则相反,DNS 查询和响应在某种程度上伪装在其他 HTTPS 流量中,因为它们都是从同一端口进出的。

关于 DoT 和 DoH 究竟哪个更好?这个还有待商榷。不过从网络安全的角度来看,DoT 可以说是更好的。它使网络管理员能够监视和阻止 DNS 查询,这对于识别和阻止恶意流量非常重要。另一方面,DoH 查询隐藏在常规 HTTPS 流量中。这意味着,若不阻止所有其他的 HTTPS 流量,就很难阻止它们。

推荐阅读

最容易被盗的密码,你中了么?

聊聊 DNS 的那些小知识

告别DNS劫持,一文读懂DoH的更多相关文章

  1. 一文读懂HTTP/2及HTTP/3特性

    摘要: 学习 HTTP/2 与 HTTP/3. 前言 HTTP/2 相比于 HTTP/1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何 ...

  2. 一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现

    一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现 导读:近日,马云.马化腾.李彦宏等互联网大佬纷纷亮相2018世界人工智能大会,并登台演讲.关于人工智能的现状与未来,他们提出了各自的观点,也引 ...

  3. 一文读懂高性能网络编程中的I/O模型

    1.前言 随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力.本文(和下篇<高性能网络编程(六):一文读懂高性能网络编程中的线程模型>)旨在为大家提供有用的 ...

  4. 从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路

    本文原作者阮一峰,作者博客:ruanyifeng.com. 1.引言 HTTP 协议是最重要的互联网基础协议之一,它从最初的仅为浏览网页的目的进化到现在,已经是短连接通信的事实工业标准,最新版本 HT ...

  5. 一文读懂 深度强化学习算法 A3C (Actor-Critic Algorithm)

    一文读懂 深度强化学习算法 A3C (Actor-Critic Algorithm) 2017-12-25  16:29:19   对于 A3C 算法感觉自己总是一知半解,现将其梳理一下,记录在此,也 ...

  6. [转帖]MerkleDAG全面解析 一文读懂什么是默克尔有向无环图

    MerkleDAG全面解析 一文读懂什么是默克尔有向无环图 2018-08-16 15:58区块链/技术 MerkleDAG作为IPFS的核心数据结构,它融合了Merkle Tree和DAG的优点,今 ...

  7. [转帖]一文读懂 HTTP/2

    一文读懂 HTTP/2 http://support.upyun.com/hc/kb/article/1048799/ 又小拍 • 发表于:2017年05月18日 15:34:45 • 更新于:201 ...

  8. [转帖]从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路

    从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路   http://www.52im.net/thread-1709-1-2.html     本文原作者阮一峰,作者博客:r ...

  9. 一文读懂HDMI和VGA接口针脚定义

    一文读懂HDMI和VGA接口针脚定义 摘自:http://www.elecfans.com/yuanqijian/jiekou/20180423666604.html   HDMI概述 HDMI是高清 ...

随机推荐

  1. Java内存模型(JMM)是什么?JMM 通过控制主内存与每个线程的本地内存之间的交互,来提供内存可见性保证

    Java内存模型就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范. Java内存模型是根据英文Java Memo ...

  2. 华硕主板开机无法进入BIOS

    先说下本人情况,自己组装的台式机,华硕TUF B550M-Plus (wifi)的主板,CPU是锐龙 4650G(带核显),其他配件不涉及问题就不提了. 原来用独显的时候,没啥问题,开机有品牌logo ...

  3. 【Arduino学习笔记01】关于Arduino引脚的一些笔记

    参考链接:https://www.yiboard.com/thread-831-1-1.html Arduino Uno R3 - 引脚图 Arduino Uno R3 - 详细参数 Arduino ...

  4. cve-2019-2725 反序列化远程代码执行

    描述:部分版本WebLogic中默认包含的wls9_async_response包,为WebLogic Server提供异步通讯服务.由于该WAR包在反序列化处理输入信息时存在缺陷,攻击者可以发送精心 ...

  5. python 操作符** (两个乘号就是乘方)

    一个乘号*,如果操作数是两个数字,就是这两个数字相乘,如2*4,结果为8**两个乘号就是乘方.比如3**4,结果就是3的4次方,结果是81 *如果是字符串.列表.元组与一个整数N相乘,返回一个其所有元 ...

  6. 60秒定位问题,十倍程序员的Debug日常

    作者:陶建辉 这是我在 2020 年 5 月写的一篇内部博客,当时是希望研发和技术支持同学能够帮助用户快速定位 Bug,解决问题.2020 年 12 月我又迭代了一版,并还针对此进行了内部的培训.这段 ...

  7. [NOIP 2020] 微信步数

    一.题目 点此看题 二.题目 首先感谢一下这位大佬的博客,虽然我看不懂您的讲解,但是还是读得懂代码的 思路是 \(\tt jys\) 给我讲明白的,首先我们可以感觉到快速计算它肯定和矩形有关系,也就是 ...

  8. Java中的名称命名规范:

    Java中的名称命名规范:(不遵守,也不会出现编译的错误) 包名:多单词组成时所有字母都小写:xxxyyyzzz 类名.接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz 变量名.方法名: ...

  9. C#无边框窗体拖动代码

    1.重写 protected override void WndProc(ref Message m) { if (m.Msg == 163 && this.ClientRectang ...

  10. 【LeetCode】2020-03 每日一题

    121. 买卖股票的最佳时机(简单) [分类]:模拟.思维 [题解]:可以用O(n)的复杂度完成,只需要在遍历的时候记录到当前位置为止买入股票的最小价格minn,再维护一个当前卖出股票价(a-minn ...