比特范-比特币实时行情,比特币今日价格,BTC价格 网站地图
网站首页 快讯 资讯 价格 区块 矿业 教程 交易 数字货币 视频

零宽字符对以太坊域名服务的影响 或比你想象的更大

资讯 www.haoweiemiao.com
>

昨日,一位经验丰富的 Web2.0 域名买卖者「Hero 桀」在其个人 Mirror 上发表了一篇名为《请停止注册所有 以太坊域名服务 域名,由于它一文不值》的文章。Hero 桀自称是资深 Web2.0 域名买卖者,并曾卖出 xiaomiquan、wuyinli 等多个知名域名,现在仍持有 ouyi 这一优质域名。

该文章指出了一个肉眼不可见的「ZWJ(零宽字符)」所致使的设计疏漏,正为 以太坊域名服务 埋下重大安全风险。该文章在部分加密社区流传甚广,并引发了部分资金投入者对 以太坊域名服务 的质疑。

这一问题允很多个肉眼所见一模一样的.eth 域名同时出现。正如 Web3.0 改革了陈旧的传统网络一样,在 Web3.0 年代,以太坊域名服务 也为钓鱼攻击带来了 Web2.0 不曾出现过的全新升级的新办法。

在现阶段,「.eth」域名更多的被作为「网名」而广泛用,一个独特的 eth 域名就像 Web2.0 年代的 QQ 靓号。在这种难以称之为基础设施的应用场景下,一些设计疏漏虽然会对用户导致困扰,但终归没办法撼动 以太坊域名服务 去中心化域名龙头的地位。

而在 以太坊域名服务 的愿景达成之后,这个疏漏仍然是可以被忽略的吗?「Decentralised naming for wallets, websites, &more.」这是 以太坊域名服务 官方网站上用显眼的字体所写的宏大使命。在这个愿景中,以太坊域名服务 将成为命名所有数字资源的域名系统、打开 theblockbeats.eth 就像打开 theblockbeats.info 一样自然,而此时 以太坊域名服务 的零宽字符将为整个 Web3.0 世界带来深远的安全隐患。

零宽字符,让 以太坊域名服务 距离成为 Web3.0 基础设施更远了一步。

当你看到「vitalik.eth」时,你会觉得这个人是哪个?毫无疑问,这一 以太坊域名服务 域名由 V 神所有。那样,我能否注册这一域名呢?根据 以太坊域名服务 的规则,这一域名已被注册,其他用户自然没办法在注册同样的域名。但值得注意的是,这里仅仅指对计算机而言完全一致的域名。那样,我有没方法找到一个和 V 神域名有所不同但看起来又一致的域名呢?

当然可以,只须在任意地方插入 ZWJ 即可。

ZWJ(zero width joiner)即零宽字符,这一符号颇为特殊。对于计算机来讲,ZWJ 仍然为一个字符,在 Unicode 字符集中拥有独立的编码,你在 Word 键入这一字符它仍会被计入字数统计。而这一字符的宽度却为 0,也就是说对于肉眼而言,零宽字符完全不可见。

这也就意味着,我只须在「vitalik」这一单词中任意地方插入零宽字符,即可注册一个肉眼看起来和 V 神域名完全一致的 以太坊域名服务 域名。

在注册 以太坊域名服务 域名时,只须在任意地方键入「%E2%80%8C」或者「%E2%80%8D」,即可在单词中插入一个零宽字符。如此,一个 V 神同款 以太坊域名服务 即可成功注册了。假如插入零宽字符之后,依旧已让人提前注册,你甚至可以插入连续的两个、三个、四个……多个零宽字符,直至尝试到无人注册为止。

以太坊域名服务 不止是以太坊互联网的要紧基建之一,同样也是 Web3.0 互联网的要紧基建。以太坊域名服务 的开创者曾公开表示,以太坊域名服务 的愿景是要做「全球每个数字资源的域名服务商」。不止是用户的竞价推广账户名,更是整个 Web3.0 互联网的命名系统。

还记得早年间关于 Web3.0 刚开始版本的想象吗?去中心化存储保存文件、去中心化域名提供寻址系统、智能合约拥有链上计算的能力、去中心化钱包充当支付通道,在这个版本的 Web3.0 中,所有都是运行于去中心化互联网、不需要许可、无审查的,这是一个真的自由的网络。在这个版本中,用 Web3.0 浏览器访问 theblockbeats.eth 就像你打开 theblockbeats.info 一样自然。

遗憾的是,这一版本的 Web3.0,到今天尚未达成。且主流浏览器到今天尚未支持.eth 域名的访问。尽管 以太坊域名服务 仍在持续的建设之中,但它好像难以成为这一版本的 Web3.0 的主流基础设施了。假如真的建成,也将为 Web3.0 年代的网上冲浪留下巨大的安全隐患。

仔细回想一下,你是怎么样打开这篇文章的?

想来你定当是在某处见到了本篇文章的链接,鼠标或手指的一次点击,将你带到了这个页面。而绝不是是在地址栏键入漫长的一串https://www.theblockbeats.info/news/28611 。毋庸置疑,几乎所有些用户,都在用 URL 进行网上冲浪。一个又一个纵横交错的超链接构成了大家当今年代的网络,超链接组织起了网络的冗杂信息、超链接为搜索引擎提供了探寻信息的技术基础、超链接为信息提供了开放自由的互联通道,可以说没超链接,就没当今世界的网络。

基于 以太坊域名服务 域名的 Web3.0 网站能否做到这所有?至少目前是极为困难的。由于它为大家带来了很大的安全风险。

在 Web2.0 年代,钓鱼网站攻击时刻都在对世界网民导致着紧急的损失,而这还是在域名没办法重名的状况下。想象一下,你在网上冲浪时看到网友推荐的一个链接,该链接「肉眼可见」的是某知名平台,域名拼写和真实地址分毫不差,于是你便点了进来。但其实这是一个通过零宽字符伪造的钓鱼网站。

当用户只不过进行P2P转账时,手工输入的习惯让零宽字符可能只不过一个无关痛痒的恶作剧。而当 以太坊域名服务 试图达到它的使命、命名所有数字资源时,这所有都变了。Web2.0 的钓鱼只不过域名相似,而 Web3.0 的钓鱼已经迭代为完全一致。这将是一个重大的安全隐患。

大家处在一个基于超链接编织而成的网络。去中心化的金融、交易网站、Web3.0 博客、Web3.0 社交;网站链接、dapp 链接、API 接口链接、所有用例的入口链接……若以链接形式存在的.eth 域名不再可信,.eth 怎么样拓展它在「网名」以外的用例?怎么样成为 Web3.0 基础设施?以太坊域名服务 域名的宏大叙事怎么样继续展开?这一风险或将从根基冲击 以太坊域名服务 的估值体系。

而颇为讽刺的是,这一问题甚至在 Web2.0 中并没有。

Web2.0 的解决方法容易明了——不支持用零宽字符和拉丁字母的混排作为域名。具体可参阅《IDN2008 规范》的「UTS46」标准。

前文大家曾提到零宽字符「%E2%80%8C」和「%E2%80%8D」这两组神秘代码。这是 16 进制的 UTF-8 编码。它们的 Unicode 编号分别为「U+200C」和「U+200D」。这部分字符一般被用于在阿拉伯文与印度语系等文字中,用于控制字符间是不是产生连字的成效。在其他大部分语言中,你并不可以打出这个字符。

而在 Web2.0 的域名注册中,此类较为特殊的字符并不被同意。但这并不是 Web2.0 没类似的攻击方法。事实上,外形一样的域名所伪装的钓鱼网站,一直在 Web2.0 的世界里广泛存在。

举例,你能否准确的区别"e" 和"е" 、"a"和"а"、「Ο」和「O」与「О」?这部分字母包括大家频繁用的拉丁字母,与较少用到的西里尔字母和希腊字母。

起初,域名注册仅支持 ASCII 字符,即大家口语中所说的「英文字母」和阿拉伯数字。这也是在世界各地被用最为广泛的字符集,几乎所有支持字符显示的设施都支持 ASCII,但却不肯定可以正常显示其他文字。在 IDN(国际化域名)普及之后,域名注册新增支持了多种语言文字,将支持字符从 ASCII 字符集扩展至部分 Unicode 字符集。这让世界各地的人民均可用我们的母语注册域名,以中文为例,你可以通过「http://新华网. 中国/」直接访问新华网。

而在这样之多的文字中找到和拉丁字母一样的字符并非什么难事。这种用相似字符伪装成钓鱼网站进行欺诈的状况渐渐多了起来。这一欺诈被叫做同形文字(homograph)攻击。

早在 2001 年,以色列的安全职员发表了一篇名为《同形文字攻击》的论文,并注册了一个包含西里尔字母的 microsoft. com 的变体。这也是可考证的第一个 homograph 欺诈域名。可以说,homograph 问题在 Web2.0 年代由来已久,但其风险性和紧急性远不及 Web3.0 的 以太坊域名服务 域名。

大家以一组 IDN 域名为例:ԚԚ.com、аӏірау.com、аӏірау.com。打开这部分域名,你可以看到什么?

浏览器自动将域名转换为了以「xn--」开头的域名,这一编码方法被叫做 Punycode。

在《IDNA2003》的规范中,为防止 homograph 欺诈,域名应经过二次处置,这一过程被叫做「兼容性规范化 」。在非 ASCII 字符域名中,所有些字符都可被通过 Punycode 转换为更为通用的 ASCII 字符(「xn--」域名)。这一编码方法遵循 UTR36 标准,已被主流浏览器用,这从用户端减少了 homograph 攻击的风险。

同样,在 IDN 域名的注册环节,ICANN 也做出了相应的规范。各国域名注册组织也在渐渐做出跟进,比如,俄罗斯的域名管理机构已经禁止了.ru 域名中混用西里尔字母和拉丁字母。

以太坊域名服务 域名无疑支持着远多于 DNS 域名的字符,你不仅能够像 DNS 一样用各种文字注册域名,甚至还可以用 emoji 注册域名,与本次被热议的安全隐患零宽字符注册域名。(值得一提的是,emoji 域名并非 Web3.0 的特例,传统域名中的「.tk」、「.ws」等根域名同样也支持 emoji 注册。)

而在 Web3.0 中,大家能否通过一样的方法消除这一隐患呢?

遗憾的是,以太坊域名服务 开发者好像并不计划从注册入口上解决这一问题。

在 以太坊域名服务 社区的讨论中,这一问题早在 2021 年 4 月就已被用户提出。而 以太坊域名服务 开发者对此的讲解是,对零宽字符的支持是在合约层面的,因此没办法移除对这部分可能被用于欺诈的字符。除此之外,还有一个更要紧是什么原因——零宽字符支撑着 emoji 在 以太坊域名服务 中的应用。

以太坊域名服务 开创者 nick.eth 针对零宽字符问题做出了如此的回话:「大家不像 ICANN 对大多数通用顶级域名那样严格,像 emoji 如此的域名就非常不错的运用了 以太坊域名服务。」「以太坊域名服务 禁止分析非 UTS-46 规范的域名并不在合约层面达成——将规范写入合约是不切实质的——这应作为推广客户端所需解决问题的一部分。」当然,他也对用户做出了积极的表态,「大家将考虑对规范化规则作出补充,以禁止你发现的这样的情况。」

emoji 表情符号数目冗杂,事实上,有很多的 emoji 均为基础 emoji 的复合,比如,「女性」、「零宽字符」、「火箭」三个连在一块即会被计算机辨别为「宇航员」。通过零宽字符,可以在精简编码集的基础上纳入更多的表情。而这也是 以太坊域名服务 支持几乎所有 emoji 的基础。因此,以太坊域名服务 没办法屏蔽掉零宽字符的用。

前文大家曾提到 Web2.0 的「.tk」域名,这是世界上第一个支持 emoji 的域名,传统的 Web2.0 域名是怎么办这一问题的?在前文提到的《IDN2008 规范》的「UTS46」标准中,零宽字符在不同文字中的用、在 emoji 中的用,均被做出严格规范。

在 4 月份的讨论中,nick 向社区成员讲解,零宽字符的用是在智能合约层级的,「不过,这非常不错,以太坊域名服务 的设计一直是如此。」「白名单规则在这里没用,由于域名中可以包含多个字符,而不只只不过 emoji。」

截至现在,大家尚未看到 以太坊域名服务 团队在合约层面有任何修复这一安全隐患的举措。所有对于这一风险的防范均由中心化的 Web2.0 前端所作出。

在OpenSea,包含零宽字符的 以太坊域名服务 域名被标记上了黄色惊叹号。

在 etherscan,存在同样隐患的 以太坊域名服务 域名则被标记了星号。

在 Metamask 上,虽然并不会额外给出风险提示,但 Metamask 可以辨别到字符串中包含一位零宽字符,并用"?"将这一字符显示出来。

借用于中心化的方法,以太坊域名服务 域名的安全风险在一定量上有所降低。但当大家进入一个完全开放的 Web3.0 的世界,中心化的方法又将起到多大有哪些用途呢?假如这隐患没办法消除,以太坊域名服务 距离他命名所有数字资源的愿景,仍然相距甚远。

在将来的某一天,有人发送给你一则网址为 www.binance.eth 的通知链接,你敢点开吗?

>
下一篇:没有了

关注我们