header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
扫码下载APP

读懂 Handshake:提高网络安全性的去中心化DNS

2019-09-19 09:34
阅读本文需 24 分钟
只要Handshake的名称所有者能够控制他们的私钥,他们的名称就可以抗审查、抗扣押和防篡改

原文作者:Tieshun Roquerre

原文翻译:区块律动BlockBeats-HQ


#区块律动BlockBeats 注:Tieshun Roquerre,Namebase首席执行官,泰尔奖学金(Thiel Fellowship)获得者,在创立Namebase之前曾在MIT学习数学和计算机科学。早在16岁时,他就成为了Teespring的一名全堆栈工程师。17岁时,他创立了StrongIntro,得到了来自Y Combinator和Greg Brockman(OpenAI的创始人)的投资。Tieshun认为,需要通过给予世界上每个人一个无法撤销的名称,从而提高互联网的安全性。

 

Handshake采用证书颁发机构(CAs)的分布式替代方案,使域名具有抗审查、抗扣押和防篡改的特性,从而使互联网更加安全。


为了了解Handshake是如何改善互联网的,让我们先看看目前互联网的安全性是如何运作的。如果您已经知道TLS和CAs是如何工作的,那么可以跳过这些关于CAs的问题。(#区块律动BlockBeats 注:TLS,Transport Layer Security,安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。

 

CAs,Certificate Authority,证书授权中心,或称证书授权机构,作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。


HTTP 存在的问题?

当你向 google.com 发出 HTTP 请求时,你的浏览器首先会执行 DNS 查找,来查找谷歌服务器的 IP 地址。然后,浏览器向该 IP 地址发出请求。请求从你的计算机发送到谷歌的服务器,但在到达目的地之前,你的请求会通过各种大型互联网络进行路由。在某些情况下,它甚至可能在返回你的国家之前,会经过另一个国家。例如,南美洲的大部分互联网路由是通过迈阿密的。在这个过程中的任何时候,中介可能会检查、甚至试图修改你发送给谷歌的数据到另一个不是谷歌的服务器!这被称为 MITM(中间人,Man In The Middle)攻击。事实上,爱德华·斯诺登的文件显示,NSA(美国国家安全局)为了收集有关人员的数据,对谷歌实施 MITM 攻击时,正是这样做的。



 

 MITM中间人攻击,来源:cloudflare.com


解决方案: HTTPS

我们需要身份验证、完整性和加密来防止MITM攻击。解决方案是使用依靠TLS 和CAs 的HTTPS。

 

你的浏览器使用TLS(Transport Security Layer,传输安全层)把网站的流量进行加密,TLS使用公钥加密。公钥加密是一种使用一对密钥的非对称加密方法:公钥和私钥对(与只使用一个密钥的对称加密相反)。公钥是公开分享的,用于验证签名。而私钥从不共享,用于解密由公钥加密的消息。

 

当浏览器向谷歌发出一个HTTPS请求时,它会启动谷歌的 TLS Handshake,并接收谷歌的公钥。然后,浏览器使用谷歌的公钥,来验证TLS handshake中的其他消息是否是由谷歌发起的,因为只有谷歌拥有其公钥对应的私钥。这样,即使存在中间网络对请求进行监视,也无法解密请求的内容。如果中介伪装成谷歌的服务器,对该请求进行路由,浏览器将知晓这个信息,因为该服务器将无法响应请求。


证书授权机构(CAs)


你如何知道谷歌的公钥真的是谷歌的公钥?当你向谷歌发出第一个请求时,中间网络可能截获了你的请求,并向谷歌返回了一个假公钥。CAs就是尝试解决这个问题的。CAs是可信任的第三方,用于验证网站公钥的真实性。默认情况下,你的操作系统会附带一个经过审核的CAs列表。当一个网站想要支持HTTPS请求时,他们会向一个可信的CAs注册他们的公钥。通过用CAs检查,你可以验证从谷歌接收的公钥是否是真正的谷歌公钥。

 

谷歌的密钥受GlobalSign的信任,我的计算机将其信任为根CA。请访问Google.com并单击URL栏中的锁定图标进行自我检查。

 

CAs 存在的问题


你可能已经注意到一个基本假设:您必须信任所有CAs。你的计算机上默认安装了数百个CAs,仅微软Windows就附带390个证书,Mac OS X附带170个证书。这些CAs可以将给中介授权信任,而那些中介可以将信任授权给更多的子中介。你无法知道全部的CA中介都是谁,如果其中一个被黑客攻击,那么你的所有HTTPS流量都将容易受到MITM攻击。在 DigiNotar攻击中,伊朗政府入侵了一个荷兰CA,并利用它向30万伊朗公民进行MITM攻击。

 

这些只是我的计算机显示信任的其中一些证书。看到GoDaddy并不奇怪,但我没想到居然安装了香港CA…


解决 CA 的问题

 

虽然基于区块链的协议速度慢而且有限制,但它们擅长解决可信第三方的问题。存储在区块链上的数据是不可变的,所有各方都可以验证存储在区块链上的数据是否正确。以比特币为例,比特币网络上的钱包拥有用于签署交易的公钥。钱包里也有相关数据,包括钱包里有多少枚比特币等。你甚至可以将任意数据与钱包关联起来,例如将婴儿出生日期存储在比特币区块链上。


Eric Meltzer在比特币区块链上记录他女儿出生日期。

 

想象一下这样一个系统:你在区块链上存储名称及其公钥,而不是在区块链上存储任意数据。与其将任意的CAs列表作为你的信任根,不如使用加密支持的分布式信任根。名称所有者可以将自己的密钥与其名称进行关联,并且每个人都可以验证名称的公钥是否正确。这将解决CAs信任问题,而Handshake正是这样一个系统!


Handshake


Handshake是一个为了解决需要信任数百个CAs问题的区块链协议。这是一个类似于比特币的协议,但是不使用加密货币作为货币,而是使用Handshake代币在Handshake区块链上注册名称。这些名称是顶级域(TLDs),如.com、.org、.net。Handshake将根区域文件去中心化,根区域文件由ICANN控制,用于确定谁拥有什么TLD。任何人都可以在Handshake区块链上注册自己的TLD。

 

DNS层次结构. 来源:cloudflare.com

 

Handshake 的TLDs有一个特点是,它们有与之相关联的公钥,可以用于验证其真实性。只有名称所有者才能将DNS数据和其他任意数据与其名称关联起来,这样每个人都可以在区块链上验证这些数据,而不仅仅只是信任CAs。

 

Handshake 名称还有一个重要的特点,它们抗审查、抗扣押和防篡改,因为 Handshake 名称是存储在区块链上。与比特币钱包一样,在保持私钥安全的前提下,只有名称所有者才能更改名称或转移名称。

因此这样操作的结果是,名称是属于他们自己的信任根。它们可以简单地固定它们使用的 TLS 密钥,而不依赖于 CAs 中的外部信任。这使得 Handshake 名称能够避免当前系统中存在的对 CAs 的攻击。

作为名称所有者,如何使用 Handshake 名称?


你的名称是一个TLD,因此你可以指向一个名称服务器,然后发布你自己的域。像GoDaddy和Namecheap这样的域名注册服务商,有专门为域运行的名称服务器,但如果使用Handshake,你只需要运行自己的名称服务器(或者使用Namebase!)假设你拥有.joke,你可以将它指向你的名称服务器,并创建good.joke和great.joke。你甚至可以出售bad.joke这个名称。

更不可思议的是,你甚至可以直接将TLD指向一个IP地址,并将TLD用作一个域!在下面的动图中,我们展示了如何将.namebase指定为namebase.io相同的服务器,并通过键入namebase/ 来访问它。


你的名称也可以使用TXT记录任意与之关联的数据,这为许多应用场景打开了方便之门。例如,你可以将比特币钱包地址与你的姓名进行关联,此外还可以将您的姓名用作域。你可以访问你朋友的网站satoshi/,然后用你的加密钱包将比特币发送到satoshi/上。


作为终端用户,如何使用Handshake名称?


Handshake能够向后兼容现有的DNS协议。只需将你计算机的DNS解析程序、或路由器的DNS解析程序指定Handshake解析程序,就可以使用它。类似于使用现有的解析器,比如Cloudflare的1.1.1.1和Google的8.8.8.8。这就是我们用iPhone解决上面动图中的namebase/ 的方法。

 

一旦主网上线,社区将运行公共解析器。你也可以运行自己的,Handshake是唯一使用轻量级递归DNS解析器的命名区块链。递归DNS解析程序,是一个可以递归地将域名解析为IP地址的软件。如果你从未听说过递归解析器,想象一下DNS是从根到单个域(pic)的一棵树。递归解析器能够遍历整个树(用递归的方式!)查找域指向的信息。轻量级客户端只需要10MB内存和几乎为零的CPU,就可以可靠地解析Handshake名称。使用Handshake是最安全的,因为它不需要信任任何第三方解析器,而第三方解析器可能检查你的DNS流量。

 

轻量级客户端,对于Handshake的应用至关重要,因为它大大增加了人们可以安全应用Handshake的范围。你可以轻松地将轻量级客户端嵌入到浏览器、apps和嵌入式设备中。如果没有它,消费者需要运行完整的节点来完成无需信任方式解析名称,而且实际上,是没有消费者愿意这样做的(即使你是一个加密爱好者,你知道有多少人运行了比特币完整的节点?)


Handshake与ICANN的冲突?


为了向后兼容,现有的1500个ICANN TLDs全部被列入了Handshake的黑名单。这意味着,终端用户通过Handshake解析DNS仍然可以正常访问.com域。新的ICANN TLDs理论上可能与Handshake的TLDs冲突,但ICANN在未来几年内不会发布新的TLDs。而且ICANN每年最多只发布500个新的TLDs,因此冲突的可能性很低,虽然技术冲突是可能发生的。未来将由社区决定哪些名称将优先使用。我们相信Handshake的名称会是优先级的,因为人们会发现它们更有用,我将在另一篇博客文章中介绍为什么我认为即使面对ICANN的网络效应,Handshake也将获得更多应用。

 

(#区块律动BlockBeats 注:ICANN,The Internet Corporation for Assigned Names and Numbers,互联网名称与数字地址分配机构是一个非营利性的国际组织,成立于1998年10月,集合了全球网络界商业、技术及学术各领域专家的非营利性国际组织,负责在全球范围内对互联网唯一标识符系统及其安全稳定的运营进行协调,包括互联网协议(IP)地址的空间分配、协议标识符的指派、通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理)


总结(TL;DR ,Too long; Don't read)


Handshake用加密支持的分布式信任根取代证书颁发机构(CA),从而使互联网更加安全。只要Handshake的名称所有者能够控制他们的私钥,他们的名称就可以抗审查、抗扣押和防篡改。



原文:https://www.namebase.io/blog/meet-handshake-decentralizing-dns-to-improve-the-security-of-the-internet/

 



点击了解律动BlockBeats 在招岗位


欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

举报 纠错/举报
本平台现已全面集成Farcaster协议, 如果您已有Farcaster账户, 可以登录 后发表评论
选择文库
新增文库
取消
完成
新增文库
仅自己可见
公开
保存
纠错/举报
提交