看起来像是不同的邮箱地址,但验证码却能被同一个邮箱接收,于是问题来了 —— 在网络上,邮箱常常就代表了作为一个人的身份,那这些邮箱到底是一个人?还是多个人?
一个简单的“+1”,背后却隐藏着一个击穿全网身份认证体系的巨大漏洞。
邮箱别名,一种神奇的机制,可以让一个邮箱“凭空变出”几十上百个邮箱地址。 他们看起来像是不同的人:
但在邮箱服务商眼里,他们是同一个人,因为这是为了给大家提供方便做出的机制,你就可以在steam和LinkedIn上使用不同的邮箱,然后根据收件箱的不同对邮件进行管理。
当然了,如果每个邮箱服务商都用同样的规则,都是加号和点,那确实是个好东西。 (那就没有我们这篇文章了。) 对,我们想说的就是,别名规则根本不是这样的。
通过一些预研尝试加头脑风暴,我们提出了(其实是发现了) 6 种别名邮箱构造方式,再带上了所有SMTP和IMF协议允许的字符(有32个标点符号其实能用),我们测试了 28 个主流邮箱服务商的别名规则。
而后我们惊奇地发现,不同邮箱服务商所支持的别名规则都不太一样。
既然大家的别名规则如此具有个性,想必会在用户手册或使用文档中详细说明吧。 遗憾的是,只有 Gmail 在使用文档中详细讲解了所支持的别名规则,其他家的规则只能靠大家来猜了。不仅不一致,还缺乏透明性。 这也是为什么大家都只知道加号是别名、误认为别名问题很好解决的原因,因为只有一家说了。 论文演讲完,来自IETF的专家感叹,他们几十年前定的标准确实没考虑到这么多,终于被发现了问题。
在互联网世界里,邮箱就像是一张“身份证”,注册账号、找回密码等都需要它。互联网平台的逻辑通常是“一个邮箱=一个用户”。 由此,邮箱服务商与互联网平台对于别名邮箱的认知出现了不一致。
我们实测了全球 18 个顶级平台,没有一个平台的注册校验能够完全抵御所有邮箱提供商的别名变体。npm和PyPI甚至不知道SMTP规定了邮箱域名部分是大小写不敏感的,把[email protected]和[email protected]也会当作两个人处理。 有平台努力了,比如Cloudflare确实把所有加号都当别名给禁止了,那咋了,那我还有前缀中缀换域名。 Microsoft的方案是只允许邮箱里出现连字符、下划线和点,那确实也有用,但真有连字符和下划线别名呀。
那么是否有人利用邮箱别名机制来干坏事呢? 有的兄弟,有的!我们收集了 GitHub 和 npm 平台上的用户邮箱,并发现有不少人使用别名邮箱进行账号注册,并且存在以一个邮箱注册多个账号的情况。 npm 上有攻击者利用单单一个 Gmail 邮箱,通过改大小写和加号的组合,硬生生注册了 139 个虚假账号,在短短十天内狂刷了 3,904 个恶意包做黑帽 SEO 推广。
当大家都习惯了 + 号是别名时,攻击者就可以在一个不支持别名机制的域名(如b.com)下注册 [email protected] 来伪装成用户的熟人并发送钓鱼邮件,部分用户可能会因为“看起来像别名邮箱”而放松警惕。
为了研究这种攻击的可行性,我们精心设计了一份问卷并搭建平台进行用户调研。如下图所示,我们要求受试者检查邮件的发送者(即 From 字段),并判断邮件是否来源于左侧的联系人。
原本我们只是想证明别名这个东西确实大家不太清楚不常见,但除此之外,我们找到了一个意料之外的发现:越是认为自己懂,越容易因为过度自信而上当受骗。 我们算了一下说自己懂别名和说自己不懂别名的受试者的被骗情况,发现“懂哥”们的受骗率将提升到31.65%,因为他们会乱猜规则(比如固执地认为有加号的都是别名)。不懂的哥们,只要全选no就好了。管你阿猫阿狗,长得不一样统统算不认识,安全的很。 谁最容易被自信骗,看图吧。特别是平时安全意识最强的CS学生,不懂的时候受骗率能压到0%(计算机安全课是上了真有用),懂了之后飙升至 35.29%。
如果你不了解也不想去了解复杂的邮箱别名机制,但又想判断两个类似邮箱之间的关系,那么可以尝试我们的开源小工具 OriginMail。我们总结了测试的 28 家邮箱提供商的别名规则,制作并开源了 OriginMail 检测工具,可以帮助大家把复杂的别名邮箱一键“打回原形”。项目地址:https://github.com/lab-rynth/OriginMail
总而言之,我们系统梳理了不同邮箱服务商的别名机制,并分析了主流互联网平台、用户对于别名邮箱的处理方式,揭示了关于别名机制认知不一致所导致的安全问题。 当平台默认“一个邮箱 = 一个用户”而忽略了邮箱复杂的别名规则时,攻击者便可以轻易构造多个“合法身份”,滥用平台资源甚至发起攻击。 当用户自认为了解邮箱别名机制时,他们可能对“看起来像别名“的地址放松警惕,误判邮箱的真实性。这种认知上的自信与规则现实之间的落差,本身就成为新的攻击面。 我们呼吁邮箱服务商更加透明地公开并标准化别名规则,减少实现差异与规则模糊带来的滥用空间;也呼吁互联网平台建立完善的别名邮箱识别与验证机制,在注册、风控等流程中真正考虑别名邮箱机制等复杂性。
课堂测验答案: [email protected] 是 [email protected] 不是 [email protected] 是 Alice
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)