DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

2023-05-16

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块链的分散式 PKI(DPKI)。

下面是文章的完整内容:

上个月,英国互联网服务提供商行业协会提名Mozilla获得今年互联网恶棍奖,因为Mozilla计划支持DNS-over-HTTPS,绕过英国过滤义务和家长控制规定,从而破坏英国的互联网规范。

在 Diode 公司,我们认为 Mozilla 的 DNS-over-HTTPS 是增强最终用户隐私保护的一个好举措。但它却不是保护开放互联网的最佳选择,因为 DNS-over-HTTPS 至少目前是由 CloudFlare 和 Google 控制的。而我们建议的是使用“DNS-on-Blockchain”,这是安全,隐私保护和分散式DNS的替代方案。

什么是 DNS?

DNS 是连接到Internet或专用网络计算机,服务或其他资源的分层和联合命名系统。根据 RFC 1035 定义,DNS的目标是提供一种命名资源的机制,使名称可以在不同的主机、网络、协议、互联网和管理组织中使用。它是一组将各种信息与域名(如IP地址)相关联的标准。

使用DNS服务器,我们不必记住连接到网站的IP地址。在浏览器中输入网站域名时,会自动向DNS服务器发送请求。DNS服务器查找域并返回IP地址,以便您的浏览器知道连接到哪里。

但这是问题所在。DNS数据包未加密,当您向DNS服务器发送请求时,不仅DNS服务器知道您的请求以及您要访问的网站,还有路由中的其他所有人。在咖啡店,这可能是同一商店中的其他人、店主、互联网服务提供商或任何间谍网络流量的黑客。这就是创建 DNS-over-HTTPS 的原因。

alt_text

什么是DNS-over-HTTPS?

DNS-over-HTTPS(简称DoH)是一种通过安全加密的HTTPS协议解析DNS请求的协议。该方法的目标是通过防止通过中间人操纵DNS数据来防止窃听并增加安全性来增加用户隐私。

使用DNS-over-HTTPS,当您在浏览器中输入网站的域名时,可​​以将加密的HTTPS请求发送到支持DoH的DNS服务器。HTTPS协议仅在处理DNS请求的DNS服务器上解密,并且回复再次发送回加密。你不必担心有人在监视你。但这并不十分完美,原因如下:

alt_text

DNS-over-HTTPS 的问题

与DNS当前的隐私状态一样糟糕,它是一个非常好的联邦系统。有数千个独立的DNS服务器一起支持互联网。另一方面,当您使用DNS-over-HTTPS时,您的数据会被发送到Google或Cloudflare。这是从联邦基础设施到集中式基础设施巨大退步。他们的DoH服务器仍然可以确切地知道您提出的DNS请求以及您要连接的位置。我们都知道与第三方共享过多数据是危险的,这些大公司可能会记录您的DNS查询历史记录,将其与您的其他个人数据相匹配或将查询历史记录出售给第三方。

本月早些时候,Cloudflare 的服务器因为更新程序而宕机,原因是新代码消耗了大量的CPU资源。由于许多网站都在使用 Cloudflare 的服务,这导致很多大的网站受此次宕机的影响。Cloudflare 最近发生的事件是单点故障(SPOF)的一个直观例子。如果 DoH 服务器是集中式的并且出了问题,将会导致您将无法正常上网。这显示了围绕少数运营商集中化的另一种风险。

最后,加密 DNS 流量确实解决了隐私问题,但它并不能确保我们收到的数据是正确的。PKI或公钥基础设施是一个集中的根安全基础设施,可以加密几乎所有当今的互联网流量。这也是是HTTPS背后的安全基础支持。如果攻击者设法窃取HTTPS服务器的证书,他可以冒充服务器,读取所有流量,甚至向客户端发送虚假的DNS请求结果。

区块链上的 DNS

DNS-over-HTTPS的核心问题是中央组织,并且缺少对我们收到的数据的验证。这个中央基础设施正成为安全的单点故障(SPOF),也是一些隐私的噩梦,一些大公司越来越多地了解我们。在 Diode,我们认为分散式区块链基础设施是DNS的完美平台。我们认为分散的PKI和分散的DNS是互联网的未来。当您上网时,您不必担心会有人监视您,并且可以确保您收到的数据有效且真实。

在分散式DNS中,诸如“gitee.com”之类的域的所有者将他/她的加密签名存储在公共区块链中。那么任何的 Web浏览器,手机 App 和物联网设备就可以检查相应的区块链条目并找到正确的签名。此方案允许域所有者自行管理其域,并且无需联系中央组织来获取证书。这是一种完全分布式的DNS请求服务,因为每个区块链服务器都可以提供DNS数据。

alt_text

这项新技术主要来源于区块链爱好者。比特币创建了分布式的账本,不受任何单个实体的控制,但随着参与者的增多而变得更强。以太坊带来了智能合约以及在区块链上存储任意结构化数据的能力。而 Namecoin 和 Ethereum Name System 是在把域名解析到 Blockchain 的首次尝试。在 Diode,我们正在进行下一步的研究工作,就是将 PKI 和 DNS 转移到区块链中,并且选择性地允许最小的设备(如微控制器)安全地连接到区块链。

在 Firefox 中启用DNS-over-HTTPS

在 DNS-on-Blockchain(DoB)可用之前,您至少应该先升级到 DoH 以保护您的隐私。如果您使用的是 Firefox,它已经内置了DNS-over-HTTPS(DoH) - 但默认情况下已禁用!您只需按照以下步骤操作打开即可:

步骤1:在Firefox菜单并选择“首选项”,或者您可以在搜索栏中键入 about:preferences。

步骤2:在“常规”部分,转到“网络设置”面板,然后单击“设置”按钮。

alt_text

步骤3:在弹出窗口中,向下滚动并选中“通过HTTPS启用DNS”。您可以设置其他DoH提供程序或使用Cloudflare(默认)。Mozilla制定了强有力的Trusted Recursive Resolver(TRR)政策,禁止DoH合作伙伴收集个人识别信息。

alt_text

至于 DNS on Blockchain 还得再等等 :)

 

转载于:https://my.oschina.net/javayou/blog/3096245

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN 的相关文章

  • 将自签名 https 证书添加到 teamcity 后,TeamCity 构建代理会断开连接

    我向 Teamcity BuildServer 添加了一个自签名证书以引入 https 支持 以便现在可以通过以下地址访问它 https ServerUrl 8443 有关如何进行的更多详细信息here http tomcat apache
  • git-svn 匿名结帐失败并显示 -s

    我正在尝试使用 git 克隆带有 std 布局的 svn 存储库 使用 s选项 存储库使用https匿名 存储库位于https secure simplistix com svn xlwt https secure simplistix c
  • Solidity v0.6.0。后备功能。需要它们做什么?

    阅读 Solidity v0 6 0 的文档后docs https docs soliditylang org en latest 060 breaking changes html semantic and syntactic chang
  • 为什么https只能用于登录?

    性能是唯一的问题吗 不能在整个用户会话期间使用 https 连接吗 显然重定向发生的情况较少 我发现这个相关问题http 与 https 性能对比 https stackoverflow com questions 149274 http
  • 具有 DNS 验证的证书陷入待验证状态

    我已将我的域转移到 Route53 并且我希望 Amazon Certificate Manager 为该域颁发证书 我按照控制台中的步骤颁发证书 确实出现了 在 Route53 中创建记录 按钮 我确实按它 它说 成功 我确实看到在 Ro
  • 对于“未找到项目”错误页面,最合适的 HTTP 状态代码是什么

    我很好奇 项目不存在 页面最合适的 HTTP 状态代码是什么 如果页面本身不存在 我显然会使用 404 但是 我的其中一个页面有一个userid参数 它是一个 编辑用户 页面 如果不存在具有给定用户 ID 的用户 我将显示一个错误页面 但我
  • 如何在 Android 中创建 https 连接?

    我在 Stackoverflow 中找到了很多帖子 但无法找到适用的解决方案 如何在 Android 中创建 https 连接 代码是 HttpParams httpParameters new BasicHttpParams ConnMa
  • 如何使用 C 客户端通过 ActiveMQ 启用 SSL

    我已经配置了 ActiveMQ http activemq apache org http activemq apache org 通过以下方式使用 ssl 上下文RedHat 的 SSL TLS 教程 https access redha
  • 每个域都有唯一的 IP 吗?

    我想知道每个域名地址是否都有唯一的IP地址 此外 这些IP位于哪里 这个重定向系统是如何工作的 当我们尝试通过写入域名来访问网站时 它有多少个重定向 谢谢 否 每个域没有自己的 IP 地址 多个域可以托管在同一台服务器上 并且位于同一 IP
  • 在 Corda 中,哪些数据会发送到非验证公证服务?

    这个问题经常出现在对话中 当 Corda 交易被发送到非验证公证服务进行最终确定时 公证服务可以看到并推断出关于世界的什么 在将交易发送给非验证公证人之前 会按如下方式进行过滤 stx buildFilteredTransaction Pr
  • 通过代理服务器访问HTTPS站点

    我正在添加代码以使用代理服务器访问互联网 从正常 HTTP 位置请求文件时 该代码可以正常工作 但在访问安全位置 HTTPS 时则不起作用 这是运行良好的代码 URL http UnSecureSite net file xml Dim w
  • 电子邮件安全:TLS 和 S/MIME

    我的理解是 TLS 是一种加密技术 允许两个 STMP 服务器安全地相互通信 如果使用 HTTPS 连接到 STMP 服务器 与使用 S MIME 相同吗 不会 TLS 会对通信通道进行加密 S MIME 对消息进行加密 也就是说 这就是
  • 如何在 Square MockWebServer 中使用 SSL?

    我尝试启用 SSLSquare 的 MockWebServer https github com square okhttp tree master mockwebserver在测试下模拟我的 Android 应用程序中的所有 Web 服务
  • 如何在 Windows 中拦截 DNS 查询

    我正在研究如何在 Windows 中拦截 DNS 查询 以一种不需要将 DLL 注入到每个进程中的方式 并且理想情况下能够根据发出查询的进程做出决策 因此简单的 DNS 代理服务器是不够的 从表面上看 DNS 查询所采用的路径如下所示 某些
  • 如何使用 JKS 证书进行 NODE https 客户端请求

    我想在 NodeJS 应用程序中使用来自 JKS 密钥库的证书 var fs require fs var https require https var options hostname XXX com port 4443 path en
  • 在 Hedera 区块链中创建智能合约时出现错误“Transaction Oversize”

    我的 bin 文件大小只有 18kb 我还得到了使用 IPFS 的解决方案 但不知道如何使用它 如果有任何使用 IPFS 的参考 请分享给我 错误 PrecheckStatusError 交易 电子邮件受保护 cdn cgi l email
  • 我无法使用 LWP::UserAgent 连接到任何 HTTPS 站点

    我正在尝试创建一个仅连接到网站的脚本 但是 由于某种原因 它不会连接到使用 HTTPS 的任何内容 我们在这里启用了代理 但是 我相信代理不是问题 因为如果我要连接到网络内部不通过代理建立隧道的 HTTPS 它仍然会失败 如果我要在任何不使
  • PHP客户端验证https证书

    我需要创建一个 php 来充当客户端并使用 https 下的一些 Web 服务 我的问题是我还想验证服务器证书 我需要知道我有正确的服务器并且中间没有人充当服务器 有人能帮助我吗 Thanks 如果您有curl 扩展 则可以将其配置为验证连
  • C# Dns.GetHostEntry() - 异常:没有这样的主机已知

    From 文档 https learn microsoft com en us dotnet api system net dns gethostentry view netframework 4 8 Dns GetHostEntry 将主
  • Java 无法从 AIX 解析 DNS 地址:UnknownHostException

    我遇到了这个奇怪的错误 在 AIX 上 如果我可以从命令行访问我的服务器 使用 ping telnet 但是如果我尝试使用 java 我会遇到 UnknownHostException 这是因为 Java 无法以某种方式 使用 DNS 但我

随机推荐

  • USB3.0扩展坞集线器Hub引起鼠标卡顿飘解决方法

    大部分USB3 0扩展坞集线器Hub会引起鼠标卡顿飘 xff0c 尤其是无线鼠标 蓝牙鼠标 xff0c 无线键盘也会出现输入迟缓的问题 mac 和 Windows都是这样 解决方法 xff1a 1 xff09 usb3 0集线器插入2 0接
  • 禁止鼠标唤醒睡眠的电脑,无线鼠标、蓝牙鼠标

    经常一不小心碰到鼠标就会唤醒睡眠的电脑 xff0c 有时咳嗽声大一点也能唤醒 解决方法 xff1a xff08 1 xff09 打开 设备管理器 在 此电脑 上右键 xff0c 属性 左侧找到设备管理器 或者 xff0c 在开始按钮上右键
  • C#与C++ dll 之间传递字符串string wchar_t* char* IntPtr

    1 由C 向C 43 43 dll 传入字符串时 xff0c 参数直接用string xff0c 设置编码格式 CharSet Unicode CharSet Ansi C 43 43 dll接收使用wchar t 或 char 2 由C
  • SwiftUI 导航 NavigationStack NavigationLink navigationDestination

    导航的显示区域使用NavigationStack 导航的新视图会显示在NavagationStack中 左右分栏导航使用NavigationSplitView 触发导航的按钮使用NavigationLink 示例1 显示颜色视图 struc
  • SwiftUI 数组初始化 append 不工作 无效 init中 State Array

    State的数组在初始化函数init是不能添加数据的 xff0c append在init中无效 xff0c 不能添加数据 实现方法如下 xff1a 采用视图控件的回调函数 appear if myArray count 61 61 0 my
  • SwiftUI List 中 多个 按钮 button 同时触发 buttonStyle

    在list中的一个单元格中设置多个按钮会出现同时触发的问题 xff0c 解决方法是增设按钮的类型属性 buttonStyle borderless 在List的单元格中 xff0c 按钮的下面 buttonStyle borderless
  • 隐私策略

    隐私权声明 软件注重对您的个人隐私的保护 我们不会在任何情况下收集您的信息 本隐私权声明适用于本软件的所有相关服务 您个人信息的搜集 本软件不收集任何您的个人信息 控制您的个人信息 本软件不控制您的任何个人信息 您个人信息的安全 严格保护您
  • MMPlayer同步文件到手机应用中的方法

    自己准备好要同步的文件 xff0c 如mp3 mp4 xff0c 然后按照如下操作 xff1a xff08 1 xff09 mac电脑插上iPhone xff08 2 xff09 打开访达Finder xff08 3 xff09 在左上列表
  • 全世界到底有多少软件开发人员?

    埃文斯数据公司 Evans Data Corporation 2019 最新的统计数据 xff08 原文 xff09 显示 xff0c 2018 年全球共有 2300 万软件开发人员 xff0c 预计到 2019 年底这个数字将达到 264
  • 并查集【通俗易懂】【知识点】

    为了解释并查集的原理 xff0c 我将举一个有爱的例子 话说江湖上散落着各式各样的大侠 xff0c 有上千个之多 他们没有什么正当职业 xff0c 整天背着剑在外面走来走去 xff0c 碰到和自己不是一路人的 xff0c 就免不了要打一架
  • QtreeWiget各节点之间连线样式设置

    QTreeWidget树状图默认各节点直接是没有线连接的 xff0c 看着层次感不强 xff0c 用户体验不太好 xff0c 所以需要设置一下样式 方法一 xff1a 通过对qtreewidget进行qss样式设置 效果图如下 xff1a
  • gitlab安装部署及问题解决(实践篇)

    系统环境 xff1a centos7 9 gitlab版本 xff1a 11 1 4 一 GitLab简介 GitLab 是一个用于仓库管理系统的开源项目 xff0c 使用Git作为代码管理工具 xff0c 并在此基础上搭建起来的web服务
  • 详解利用nodejs对json文件进行新增数据及删除指定的数据

    细节链接 详解利用nodejs对本地json文件进行增删改查 文件 1 首先存在packagename json文件 xff0c 具体内容如下 34 label 34 34 星享优惠 34 34 value 34 34 com kyy xx
  • VS.NET中Web Services入门

    Visual Studio NET 中的 XML Web services 入门 摘要 xff1a Microsoft Visual Studio NET 和 XML Web services 提供了一个简单 灵活且基于标准的模型 xff0
  • Openstack Manila使用初探 (Packstack)

    使用Packstack All in one 安装好Openstack之后 研究一下Manila组件的使用 主机名 cloud 192 168 31 233 1 manila conf 1 1 配置文件分析 Packstack的配置文件pa
  • Centos7+Packstack安装部署Openstack Mitaka之(一) 安装Packstack

    学习Openstack的前两个月 时间都花在环境部署上了 主要是版本的问题 导致了一系列的麻烦 之前使用devstack已经部署成功了 但是manila不能用 残念 问题主要出在网络上 研究完manila的网络模块之后再回头找原因吧 不打算
  • Tomcat的四种web应用部署方式详解

    在Tomcat中有四种部署Web应用的方式 xff0c 简要的概括分别是 xff1a xff08 1 xff09 利用Tomcat自动部署 xff08 2 xff09 利用控制台进行部署 xff08 3 xff09 增加自定义的Web部署文
  • 虚拟机linux插入U盘搜索不到怎么整

    我在 dev下找 xff0c 使用fdisk xff0c 都没有找到插入的u盘 看了下服务 vmware的USB也是开启的 最后发现vmware的USB是2 0 xff0c 改成3 0就好了 又白白浪费了半天时间
  • 使用adb查看Settings Provider的值

    使用adb查看Settings Provider的值 前言 在Android的ROM开发中 xff0c 经常会遇到一些修改系统默认的Settings Provider的值要求 xff0c 那么修改以后 xff0c 怎么验证呢 本篇文章介绍一
  • DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

    本文作者 xff1a PETER LAI xff0c 是 Diode 的区块链工程师 在进入软件开发领域之前 xff0c 他主要是在做工商管理相关工作 Peter Lai 也是一位活跃的开源贡献者 目前 xff0c 他正在与 Diode 团