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 的相关文章

  • 将非 www 和非 http 重定向到 https

    昨天我在服务器上安装了 SSL 从那以后我无法访问某些页面 www example com amsterdam shoes example com 阿姆斯特丹 两者都不会重定向到 https 甚至不会重定向到 http www exampl
  • AWS Route 53 如何实现基于延迟的路由?

    AWS Route 53 可以提供基于延迟的路由策略 请参阅AWS Route 53 的延迟路由策略 http docs aws amazon com Route53 latest DeveloperGuide routing policy
  • 将nodejs Express静态请求重定向到https

    我需要将所有 http 请求重定向到 https 包括对静态文件的请求 My code app use express static dirname public app get function req res if req secure
  • HTTPURLConnection 不遵循从 HTTP 到 HTTPS 的重定向

    我不明白为什么JavaHttpURLConnection不遵循从 HTTP 到 HTTPS URL 的 HTTP 重定向 我使用以下代码来获取页面https httpstat us https httpstat us import java
  • 断言和要求之间的区别

    您好 我最近刚刚开始从 Udemy 学习 Solidity 尽管在几乎完成课程后我还没有理解 assert 和 require 之间的区别 当不满足要求时 它们不是都会破坏功能吗 在合约内的 Gas 优化方面 两者相比是否有优势 来自文档
  • 什么是 boost::asio::ssl::context::load_verify_file 以及如何使用它?

    有一个谨慎的小量 boost asio ssl http en wikipedia org wiki Transport Layer Security小型 C 在线教育代码库 甚至更少boost asio ssl context load
  • 有什么简单的方法可以完全忽略带有 java url 连接的 ssl ?

    我正在构建一个应用程序 定期检查一些 RSS 提要是否有新内容 其中一些提要只能通过 https 访问 有些具有自签名或以某种方式损坏的证书 我仍然希望能够检查它们 请注意 安全性在此应用程序中不是问题 目标是以最小的努力访问内容 我使用此
  • SSL握手时是否检查服务器域名

    在 SSL 握手期间 是否在 SSL 握手期间检查服务器的域名 我的意思是 是否根据服务器运行的域检查了经过认证的服务器中的域名 示例 假设服务器证书具有域 mydomain com 如果服务器在域 someotherdomain com
  • 如何解决 302 重定向上的 POST 更改为 GET 的问题?

    我网站的某些部分只能通过 HTTPS 访问 不是整个网站 安全与性能妥协 并且如果通过纯 HTTP 发送请求 则 HTTPS 是通过对安全部分的请求进行 302 重定向来强制执行的 问题是对于所有主流浏览器来说 如果您在 POST 上执行
  • 如何向 node-http-proxy 响应添加标头

    我需要在第三方服务上解决CORS 所以我想构建一个代理来添加标头 Access Control Allow Origin 为什么这段代码没有添加标题 httpProxy require http proxy var URL https th
  • CNAME 记录也转发 MX 请求吗?

    我的 DNS 设置为包含 A 和 MX 记录的域 base com 还有其他几个域设置了 CNAME 记录 指向 base com 我是否需要为 CNAME 域设置任何特殊内容 例如额外的 MX 记录 或者 CNAME 记录还会转发任何 M
  • Hapijs 在一个连接上同时使用 Http 和 Https

    New to Hapijs http hapijs com 并尝试使用它来创建一个应用程序 该应用程序对所有请求使用 HTTPS 并将 HTTP 重定向到安全连接 问题是应用程序进入 HTTPS 模式没有问题 但如果我将 URL 更改为 H
  • 如何使用 HTTPS 云前端后面的 AWS Amazon 云前端将非 WWW 转发到 WWW

    我已经将 Cloud Front 设置为将所有调用重定向到 HTTPS 协议 现在我想将 非www 转发到www 就当前设置而言 我怎样才能实现这一目标 我尝试了下面的方法 但没有成功 因为该方法没有考虑 HTTPS 重定向 https w
  • 离线时 OSX Lion 上的 InetAddress.getLocalHost() 分辨率

    在脱机工作 即未连接到互联网 时 是否有人在使用 OSX Lion 的 Java 中遇到 Java 的 InetAddress getLocalHost 解析问题 看来 localhost 127 0 0 1 根本没有解析 Caused b
  • 为什么python请求默认不使用系统ssl证书?

    背景 我正在尝试Ubuntu 18 04 1 LTS 使用 next 安装自签名证书 cp rf my crt usr local share ca certificates update ca certificates 一切正常 因为现在
  • 如何在没有 (L)GPL 库的情况下在 Python 中创建双重身份验证 HTTPS 客户端?

    客户端和服务器都是内部的 各自都有一个由内部CA签名的证书和CA证书 我需要客户端根据服务器拥有的 CA 证书来验证服务器的证书 它还应该将其证书发送到服务器进行身份验证 The urllib2手册说不执行服务器身份验证 PycURL是一个
  • 如何添加子域名条目

    我在 godaddy 注册了一个域名 somename com 并且我正在使用 godaddy DNS 管理器 但我使用 Hostinger com 托管我的网站 所以我在托管商上创建了一个子域 sub somename com 默认情况下
  • 如何在node.js解析查询中设置dns服务器?

    我正在尝试设置 Google DNS 服务器8 8 8 8在 Node js 中解析查询 这样做的正确方法是什么 在命令行中通常我们可以执行以下操作 nslookup stackoverflow com 8 8 8 8 Server 8 8
  • 如何使用独立的 Jetty 进行服务器推送

    我正在尝试使用独立的 Jetty 在静态网站上测试服务器推送功能 我的网站由一个index html 1个CSS 一堆图像组成 目录结构为 Album index html style css images image 1 png a se
  • 播放框架 [2.0] HTTPS

    我正在使用 Play Framework 2 0 开发一个 Web 服务器 其中登录是由我们也在制作的 Android 设备软件执行的 我们主要担心的是 我们在 play 2 0 中找不到任何对 HTTPS 的支持 感觉这是一个学校项目 我

随机推荐

  • 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 团