零宽字符对ENS的影响,或比你想象的更大( 二 )


遗憾的是 , 这一版本的Web3.0 , 至今尚未实现 。 且主流浏览器至今尚未支持.eth域名的访问 。 尽管ENS仍在持续的建设之中 , 但它似乎难以成为这一版本的Web3.0的主流基础设施了 。 倘若真的建成 , 也将为Web3.0时代的网上冲浪留下巨大的安全隐患 。
仔细回想一下 , 你是如何打开这篇文章的?
想必你定当是在某处见到了本篇文章的链接 , 鼠标或手指的一次点击 , 将你带到了这个页面 。 而绝非是在地址栏键入漫长的一串https://www.theblockbeats.info/news/28611 。 毋庸置疑 , 几乎所有的用户 , 都在使用URL进行网上冲浪 。 一个又一个纵横交错的超链接构成了我们当今时代的互联网 , 超链接组织起了互联网的繁杂信息、超链接为搜索引擎提供了寻找信息的技术基础、超链接为信息提供了开放自由的互联通道 , 可以说没有超链接 , 就没有当今世界的互联网 。
基于ENS域名的Web3.0网站是否可以做到这一切?至少当前是极为困难的 。 因为它为我们带来了极大的安全风险 。
在Web2.0时代 , 钓鱼网站攻击时刻都在对世界网民造成着严重的损失 , 而这还是在域名无法重名的情况下 。 想象一下 , 你在网上冲浪时看到网友分享的一个链接 , 该链接「肉眼可见」的是某知名平台 , 域名拼写和真实地址分毫不差 , 于是你便点了进去 。 但其实这是一个通过零宽字符伪造的钓鱼网站 。
当用户只是进行点对点转账时 , 手动输入的习惯让零宽字符或许只是一个无关痛痒的恶作剧 。 而当ENS试图达到它的使命、命名一切数字资源时 , 这一切都变了 。 Web2.0的钓鱼只是域名相似 , 而Web3.0的钓鱼已经迭代为完全一致 。 这将是一个重大的安全隐患 。
我们处在一个基于超链接编织而成的互联网 。 DeFi、交易平台、Web3.0博客、Web3.0社交;网站链接、dapp链接、API接口链接、一切用例的入口链接……若以链接形式存在的.eth域名不再可信 , .eth如何拓展它在「网名」之外的用例?如何成为Web3.0基础设施?ENS域名的宏大叙事如何继续展开?这一风险或将从根基冲击ENS的估值体系 。
而颇为讽刺的是 , 这一问题甚至在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://新华网.中国/」直接访问新华网 。