周三,欧盟委员会发布了一款移动应用(新窗口),旨在让人们在线证明年龄时无需与平台分享个人数据。欧盟官员表示该应用已经就绪,符合最高隐私标准,并指出其开源代码就是透明度的证明。
然而,短短几个小时后,安全研究人员就开始仔细分析其开源代码。到了周四,安全顾问 Paul Moore 已经在不到两分钟内绕过了该应用的保护机制。

其他人确认了他的发现。该应用的速率限制控制被存储在一个可编辑的文件中,生物识别身份验证只需更改配置即可关闭,而敏感凭证在缺乏安全硬件保护的情况下即可被访问。
欧盟委员会淡化了这些发现,称此次发布的是演示版本。Moore 和法国密码学家 Olivier Blazy 均予以反驳,他们在接受 Politico 采访时表示,他们是在测试最新版本代码时发现这些缺陷的。
随后,欧盟委员会表示该问题已得到修复,但这一事件仍然显示出这些年龄验证系统有多么脆弱。
欧盟年龄验证应用的功能及出现的问题
欧盟年龄验证应用让人们可以使用护照、国民身份证或银行等已信任的提供商来验证年龄。随后,平台可以让该应用检查某人是否超过特定年龄,而无需访问底层的个人数据,这也称为零知识证明。
其实际实现破坏了这一设计。欧盟年龄验证应用将已加密的 PIN 存储在设备上一个可编辑的配置文件中,与保存敏感数据的身份保险库相互分离。只需删除几个值并重启应用,攻击者即可设置新的 PIN,同时重用之前个人资料的凭证。
防止重复猜测的速率限制控制作为简单的计数器被存储在同一文件中,该计数器可以被重置为零,从而擦除所有失败尝试的记录。生物识别身份验证由一个布尔标志控制;将其从 true 改为 false 即可完全跳过检查。
为检查年龄而生,却不够安全
在研究人员利用代码揭露其缺陷后,官员们将这款应用重新定性为演示版本。
多位开发者指出,敏感数据本应被存储在安全隔区中,这是现代智能手机上提供的硬件级保护,可使此类攻击困难得多。
但这些漏洞暴露出一个超越这款应用本身的问题。年龄验证在设计上并不安全,因为它需要将真实身份与在线操作关联起来。这种链接必须被存储在某个地方,哪怕只是暂时的;无论它存在于何处,都会成为黑客、政府以及任何获得底层数据未经授权访问权之人的目标。这种链接越集中、越可重复使用,目标就越大。
欧盟的年龄验证法旨在成为一项统一的、保护隐私的标准,以取代各成员国正在形成的法律拼凑局面,但欧盟委员会对这款应用已经就绪的自信最终被证明为时过早。今年 3 月,400 多名隐私和安全研究人员致函欧盟委员会,要求在年龄验证技术的科学依据尚不明朗之前暂停部署。





