让ENS距离成为Web3.0基础设施更远了_区块链:DAO

昨日,域名交易者「Hero桀」在其个人Mirror上发表了一篇名为《请停止注册一切ENS域名,因为它一文不值》的文章。Hero桀自称是资深Web2.0域名交易者,曾卖出xiaomiquan、wuyinli等多个知名域名,目前仍持有ouyi这一优质域名。

该文章指出了一个肉眼不可见的「ZWJ」所导致的设计疏漏,正为ENS埋下重大安全风险。该文章在部分加密社区流传甚广,并引发了部分投资者对ENS的质疑。

这一问题允许多个肉眼所见完全相同的.eth域名同时出现。正如Web3.0革新了陈旧的传统互联网一样,在Web3.0时代,ENS也为钓鱼攻击带来了Web2.0不曾出现过的全新升级的新方法。

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

而在ENS的愿景实现之后,这个疏漏仍然是可以被忽视的吗?「Decentralisednamingforwallets,websites,&more.」这是ENS官网上用醒目的字体所写的宏大使命。在这个愿景中,ENS将成为命名一切数字资源的域名系统、打开theblockbeats.eth就像打开theblockbeats.info一样自然,而此时ENS的零宽字符将为整个Web3.0世界带来深远的安全隐患。

零宽字符,让ENS距离成为Web3.0基础设施更远了一步。

动态 | 封面盘点2019十大酷科技 区块链上榜:1月5日,由封面新闻最新盘点的2019十大酷科技出炉,其中包括区块链,代表企业:支付宝。过去一年,支付宝区块链技术落地超过40多个场景,也从不同的场景给用户带来便利和安全。据公开信息显示,支付宝与阿里巴巴已经蝉联两年全球区块链技术专利申请量最多的互联网公司,其在共识机制、智能合约、可信计算、隐私保护、跨链交互上都取得了突破。[2020/1/6]

我,V神,打钱

当你看到「vitalik.eth」时,你会认为这个人是谁?毫无疑问,这一ENS域名由V神所有。那么,我能否注册这一域名呢?按照ENS的规则,这一域名已被注册,其他用户自然无法在注册同样的域名。但值得注意的是,这里仅仅指对计算机而言完全一致的域名。那么,我有没有办法找到一个和V神域名有所不同但看上去又一致的域名呢?

当然可以,只要在任意位置插入ZWJ即可。

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

这也就意味着,我只要在「vitalik」这一单词中任意位置插入零宽字符,即可注册一个肉眼看上去和V神域名完全一致的ENS域名。

在注册ENS域名时,只要在任意位置键入「%E2%80%8C」或者「%E2%80%8D」,即可在单词中插入一个零宽字符。这样,一个V神同款ENS即可成功注册了。如果插入零宽字符之后,依然已被人提前注册,你甚至可以插入连续的两个、三个、四个……多个零宽字符,直至尝试到无人注册为止。

动态 | 证券日报发布2018年区块链行业焦点盘点:证券日报发布《2018年区块链行业焦点盘点:乱象频发币圈狼藉监管筑篱》文章称,很多人将此轮区块链热潮与20年前的互联网泡沫相比。可以确定的是,区块链“泡沫”一定有,但区块链能否如互联网般改造世界,尚难下定论。监管部门去年以来重拳出击,规范资本市场“炒链”行为,严厉惩治ICO。从中央到地方,掀起防范以“区块链”名义进行非法集资的高潮,不断给区块链“排瘦身”。而瘦身后的区块链也正逐步回归理性——币圈萧条,市场开始重新审视以比特币为代表的加密数字货币的价值与意义;去芜存菁,越来越多的企业沉下心转向技术应用开发;人才成本也挤出“泡沫”,回归同行业正常水平。[2019/1/4]

做不好域名的ENS,叙事难以持续

ENS不止是Ethereum网络的重要基建之一,同样也是Web3.0网络的重要基建。ENS的创始人曾公开表示,ENS的愿景是要做「全球每一个数字资源的域名服务商」。不止是用户的账户名,更是整个Web3.0网络的命名系统。

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

动态 | 老猫盘点2018年个人经历:披露“李笑来欠3万个比特币”事件进展:12月31日讯,硬币资本(INBlockchain)管理合伙人老猫发文回顾2018年个人经历。文章中,老猫透露2018年由经济下行个人资产也缩水一大半,但相对而言可能还说得过去,因为坚持3个投资方法:第一是不加杠杆,第二是主要持有主流品种,第三是配置。 文章中,老猫还就此前外界盛传的“李笑来欠了3万个比特币”事件进行回应,同时披露最近进展。老猫表示,该事件最初源于2013年面向熟人圈开展的代理投资,当时所有合同以人民币计价投资,每份10万人民币,但有的人当时给的是比特币,“这个事情被一些黑子刻意的改头换面,最后就变成笑来欠了30000个币”。老猫透露,此事在2018年8月26日画上了句号。[2018/12/31]

遗憾的是,这一版本的Web3.0,至今尚未实现。且主流浏览器至今尚未支持.eth域名的访问。尽管ENS仍在持续的建设之中,但它似乎难以成为这一版本的Web3.0的主流基础设施了。倘若真的建成,也将为Web3.0时代的网上冲浪留下巨大的安全隐患。

仔细回想一下,你是如何打开这篇文章的?

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

动态 | “区块链”一词入选“汉语盘点2018”国际词解读:人民网刊文《“汉语盘点2018”国际词解读》,“区块链”一词,与贸易摩擦、板门店、伊核协议等一起入选。文中称, 2008 年首次提出区块链概念以来,这项技术快速发展并在全球范围内广泛应用。在全球化、信息化和数字化时代,区块链代表了一种新的技术发展方向,为推动世界经济与国际合作提供了一个新的机会。[2018/12/11]

基于ENS域名的Web3.0网站是否可以做到这一切?至少当前是极为困难的。因为它为我们带来了极大的安全风险。

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

当用户只是进行点对点转账时,手动输入的习惯让零宽字符或许只是一个无关痛痒的恶作剧。而当ENS试图达到它的使命、命名一切数字资源时,这一切都变了。Web2.0的钓鱼只是域名相似,而Web3.0的钓鱼已经迭代为完全一致。这将是一个重大的安全隐患。

我们处在一个基于超链接编织而成的互联网。DeFi、交易平台、Web3.0博客、Web3.0社交;网站链接、dapp链接、API接口链接、一切用例的入口链接……若以链接形式存在的.eth域名不再可信,.eth如何拓展它在「网名」之外的用例?如何成为Web3.0基础设施?ENS域名的宏大叙事如何继续展开?这一风险或将从根基冲击ENS的估值体系。

午间行情盘点:BTC比特币报7977美元,24小时跌幅约10.43%。ETH以太币报797美元,24小时跌幅约10.64%。瑞波币报5.66元人民币,24小时涨幅0.70%。ADA艾达币报2.18元人民币,24小时涨幅约7.94%。[2018/2/11]

而颇为讽刺的是,这一问题甚至在Web2.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://新华网.中国/」直接访问新华网。

而在如此之多的文字中找到和拉丁字母相似的字符并不是什么难事。这种使用相似字符伪装成钓鱼网站进行欺诈的情况逐渐多了起来。这一欺诈被称为同形文字攻击。

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

我们以一组IDN域名为例:??.com、а??рау.com、а??рау.com。打开这些域名,你可以看到什么?

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

在《IDNA2003》的规范中,为避免homograph欺诈,域名应经过二次处理,这一过程被称为「兼容性规范化(compatibilitynormalization,NFKC)」。在非ASCII字符域名中,所有的字符都可被通过Punycode转换为更为通用的ASCII字符。这一编码方式遵循UTR36标准,已被主流浏览器使用,这从用户端降低了homograph攻击的风险。

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

ENS域名无疑支持着远多于DNS域名的字符,你不仅可以像DNS一样使用各种文字注册域名,甚至还可以使用emoji注册域名,以及本次被热议的安全隐患零宽字符注册域名。

而在Web3.0中,我们能否通过相似的手段消除这一隐患呢?

面对homographattack,ENS开发者态度暧昧

遗憾的是,ENS开发者似乎并不打算从注册入口上解决这一问题。

在ENS社区的讨论中,这一问题早在2021年4月就已被用户提出。而ENS开发者对此的解释是,对零宽字符的支持是在合约层面的,因此无法移除对这些可能被用于欺诈的字符。此外,还有一个更重要的原因——零宽字符支撑着emoji在ENS中的应用。

ENS创始人nick.eth针对零宽字符问题做出了这样的回应:「我们不像ICANN对大部分通用顶级域名那么严格,像emoji这样的域名就很好的运用了ENS。」「ENS禁止解析非UTS-46规范的域名并不在合约层面实现——将规范写入合约是不切实际的——这应作为客户端所需解决问题的一部分。」当然,他也对用户做出了积极的表态,「我们将考虑对规范化规则作出补充,以禁止您发现的这种情况。」

emoji表情符号数量繁杂,事实上,有大量的emoji均为基础emoji的复合,例如,「女人」、「零宽字符」、「火箭」三个连在一起即会被计算机识别为「宇航员」。通过零宽字符,可以在精简编码集的基础上纳入更多的表情。而这也是ENS支持几乎所有emoji的基础。因此,ENS无法屏蔽掉零宽字符的使用。

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

在4月份的讨论中,nick向社区成员解释,零宽字符的使用是在智能合约层级的,「不过,这很好,ENS的设计一直是这样。」「白名单规则在这里没用,因为域名中可以包含多个字符,而不仅仅只是emoji。」

风险控制与隐患消除

截至目前,我们尚未看到ENS团队在合约层面有任何修复这一安全隐患的举措。所有对于这一风险的防范均由中心化的Web2.0前端所作出。

在OpenSea,包含零宽字符的ENS域名被标记上了黄色惊叹号。

在etherscan,存在同样隐患的ENS域名则被标记了星号。

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

借助于中心化的手段,ENS域名的安全风险在一定程度上有所减少。但当我们进入一个完全开放的Web3.0的世界,中心化的手段又将起到多大的作用呢?如果这隐患无法消除,ENS距离他命名一切数字资源的愿景,仍然相距甚远。

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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-6:916ms