如果评选一个差评服务器榜单,除去育碧高居榜首外,一定也少不了 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)会做出更快的反应。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qAK3Q0sJ-1618970980894)(https://upload-images.jianshu.io/upload_images/80097-3b1f1c34c208a8e2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

目前,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劫持,一文读懂DoH相关推荐

  1. 网络编程懒人入门(十一):一文读懂什么是IPv6

    本文同时发布于"即时通讯技术圈"公众号,链接是:https://mp.weixin.qq.com/s/cS5xB2DrjF52rmz6EGVJ6A. 本文参考了公众号鲜枣课堂的&q ...

  2. 区块链产业生态、存在问题及政策建议|一文读懂新趋势

    区块链产业生态.存在问题及政策建议|一文读懂新趋势 2017-03-03 09:47:50  来源: 腾讯研究院抢沙发 摘要:从技术上来讲,区块链是一种分布式的记账方法.说到记账,我们经历了从实物记账 ...

  3. 腾讯资深架构师干货总结:一文读懂大型分布式系统设计的方方面面

    1.引言 我们常常会听说,某个互联网应用的服务器端系统多么牛逼,比如QQ.微信.淘宝.那么,一个大型互联网应用的服务器端系统,到底牛逼在什么地方?为什么海量的用户访问,会让一个服务器端系统变得更复杂? ...

  4. 一文读懂物联网 MQTT 协议之实战篇

    一.前言 上一篇我们介绍了 MQTT 协议格式以及相关的特性:一文读懂物联网 MQTT 协议之基础特性篇,这一篇我们就来实战一番,理论得与实践结合,方能吃透 MQTT. 我的那个读者还提到了讲一下 M ...

  5. 一文读懂阿里云网络 2020 云栖大会新品发布

    凌云时刻 · 极鲜速递 导读:阿里云网络新品来袭! 来源 | 洛神云网络技术 前言 企业上云,网络先行.在 2020 云栖大会上,阿里云基础产品事业部网络产品团队负责人祝顺民宣布了云网络一系列新品发布 ...

  6. 一文读懂CDN加速原理

    一文读懂CDN加速原理 什么是 CDN 工作原理 传统访问过程 CDN 访问过程 组成要素 智能调度 DNS 缓存功能服务 负载均衡设备 内容 Cache 服务器 共享存储 名词解释 CNAME记录( ...

  7. DDD - 一文读懂DDD领域驱动设计

    一文读懂DDD领域驱动设计 1. 领域驱动设计简介 1.1 什么是领域驱动设计 1.2 为什么要用领域驱动设计 优点 缺点 2.3 领域驱动设计过程 2. 对于DDD,我们需要学习什么? 2.1 DD ...

  8. 从实验室走向大众,一文读懂Nanopore测序技术的发展及应用

    关键词/Nanopore测序技术    文/基因慧 随着基因测序技术不断突破,二代测序的发展也将基因检测成本大幅降低.理想的测序方法,是对原始DNA模板进行直接.准确的测序,消除PCR扩增带来的偏差, ...

  9. 一文读懂Faster RCNN

    来源:信息网络工程研究中心本文约7500字,建议阅读10+分钟 本文从四个切入点为你介绍Faster R-CNN网络. 经过R-CNN和Fast RCNN的积淀,Ross B. Girshick在20 ...

最新文章

  1. Graphite在centeros 6下安装
  2. Java - Get a list of all Classes loaded in the JVM[转]
  3. Styled Label
  4. QT的QMapIterator类的使用
  5. 《你的灯亮着吗?》个人总结
  6. php返回200,关于API 使用 HTTP 状态码还是全部返回 200
  7. python如何互换_python中怎么交换列的顺序
  8. JAVA利用google的zxing解析二维码QRCODE
  9. 一文带你领略JS中原型链的精妙设计
  10. 编译安装Nginx-1.0.1
  11. Linux CentOS安装JDK
  12. 添加鼠标悬浮在控件上的提示信息 很齐全各种方法 MFC ToolTipCtl
  13. 简单的ideatomcat热加载
  14. 推荐系统的常用算法原理和实现
  15. HashMap为什么线程不安全?
  16. Pytho学习(3)——注释
  17. 在网上开店有哪些好处?最多可以开几个?
  18. 【NOIP2015提高组Day1】斗地主
  19. 关于简历,网申,笔试,面试过程的分享
  20. 招投标系统源码 java招投标系统 招投标系统简介 招投标系统功能设计

热门文章

  1. 特定SQL的查询优化
  2. php arcode svg,在react中使用svg的各种方法总结(附代码)
  3. java gridlayout 设置列宽_java 利用GridBagLayout布局时,如何设置单列列宽?
  4. 微型计算机组装实验报告虚拟,微型计算机组装与维护实训(附光盘)
  5. 为什么人们默认 x86 代表 32 位处理器
  6. 《Spark大数据分析:核心概念、技术及实践》一3.5 API
  7. 学习angularjs的内置API函数
  8. HTML+CSS的学习
  9. 文本右上角右下角添加文本
  10. 独立思考者模型:寻找潜藏在表象背后的真相 探寻真相的方法