4月14日发布的欧盟数字年龄验证应用,在上线72小时内就被完整攻破。英国安全顾问保罗·摩尔(Paul Moore)用不到2分钟,实现了从物理接触到身份凭证盗窃的全流程。
这不是漏洞,是设计层面的崩塌。一个被定位为"欧洲数字身份钱包生态系统原型"的国家基础设施级产品,在PIN加密、本地存储、凭证绑定三个环节同时失守。
攻击路径:删除两个值,接管整个身份
摩尔公布的攻击过程极简。用户首次打开应用时,系统要求设置PIN码。应用将该PIN加密后,存入本地shared_prefs配置文件。
问题一:加密无意义。该文件可被任意编辑,加密本身不提供保护。
问题二:PIN与身份凭证完全解耦。身份保险库(identity vault)存储着真实的验证凭证,但PIN的加密副本与之没有密码学绑定关系。
攻击者只需物理接触设备,删除shared_prefs中的PinEnc和PinIV两个值,重启应用,输入新PIN。应用会将原身份凭证视为新PIN下的有效凭证,全程无警报、无日志、无二次验证。
摩尔在演示视频中明确标注:「根本不该加密——这是极差的设计。」
同一文件内的三重漏洞
shared_prefs文件还暴露另外两处弱点。研究人员未完全公开细节,但确认这些弱点与PIN漏洞处于同一可编辑配置层。
这意味着攻击面不是单一入口,而是整个本地存储架构的系统性失败。物理访问设备=完全控制身份凭证,这个等式在国家级数字身份系统中成立。
更早前,3月份已有独立发现:系统无法验证护照验证是否真实发生在用户设备上。两条时间线叠加——3月的架构缺陷未修复,4月的PIN漏洞又叠加其上。
正方:快速迭代的必要代价
支持原型先行的一方认为,欧盟数字身份钱包(EUDI Wallet)是覆盖4.5亿公民的复杂工程,分阶段暴露问题符合技术规律。法国、西班牙、丹麦等六国正处于试点期,正是为了在小范围发现问题。
这一派的核心论据:年龄验证应用本身就是"沙盒",而非生产环境。提前发现本地存储与凭证绑定的设计缺陷,比在全量部署后暴露更有价值。
欧盟委员会将该项目定位为"原型",本身也暗示了未完成态。2分钟破解虽然难堪,但发生在六国试点、而非27国强制推广阶段,从风险管理角度属于可控暴露。
反方:基础设施不能承受"快速失败"
反对者指出原型论调的致命盲区:该应用已被赋予真实法律效力。六国试点中的公民正在用真实护照、生成真实数字身份凭证,这些凭证将在欧盟境内流通。
摩尔直接向欧盟委员会主席乌尔苏拉·冯德莱恩发出警告:「这款产品将成为大规模数据泄露的催化剂,只是时间问题。」
关键分歧在于"原型"的定义边界。当系统开始处理真实身份数据、对接真实服务提供商时,它就不再是技术意义上的原型,而是事实上的生产系统。用"试点"标签降低安全标准,是对公民数据的实质性冒险。
密码学层面的失误尤其不可接受。PIN与身份保险库未做密码学绑定,这不是实现细节错误,是安全架构的基础课缺失。任何接受过正规安全培训的工程师都应知晓:本地加密存储必须防篡改,或至少能检测篡改。
我的判断:信任基建的信用透支
这场2分钟破解的真正损害,不在技术层面,而在制度信用。
欧盟数字身份钱包的长期目标是取代成员国分散的身份系统,成为跨境数字服务的统一入口。这个愿景依赖一个前提:公民愿意将最敏感的身份数据托管给欧盟层面的技术架构。
年龄验证应用作为首个大规模可见的落地场景,其安全表现直接塑造公众预期。2分钟破解的视频在社交媒体传播,其影响远超技术社区——它向普通用户传递了一个直观信号:政府数字身份系统可以被初中生水平的攻击手法突破。
更深层的结构性问题:4月17日,即漏洞公开3天后,欧盟委员会仍未发布官方补丁或公开回应。这种响应速度与数字身份基础设施的敏感性完全不匹配。对比GDPR(通用数据保护条例)对私营企业的72小时通报要求,公共部门对自身产品的危机处理反而缺乏透明机制。
六国试点的扩张计划是否暂停?现有用户凭证是否撤销重发?shared_prefs的架构缺陷是局部修复还是整体重写?这些问题的沉默,比漏洞本身更能说明组织能力的差距。
技术债务可以偿还,信任债务的利息更高。当法国或丹麦的公民下次收到"请安装欧盟数字身份应用"的提示时,2分钟破解的记忆将成为默认拒绝的心理锚点。
摩尔警告的"大规模泄露"或许尚未发生,但另一种损失已经兑现:将数字身份主权让渡给超国家机构的意愿,正在被早期产品的粗糙设计持续侵蚀。
欧盟委员会最终需要回答的,不是技术问题,而是政治问题——当原型系统开始处理真实身份数据时,谁来定义"足够安全"的阈值?试点期的安全责任,由成员国、承包商还是布鲁塞尔承担?
热门跟贴