把数据交换层比作骨干,把身份系统比作信任根,不只是修辞。它有严格的依赖关系:X-Road 上的每一次签名,签的是谁;每一条访问日志,记的是谁查了你;i-Voting 里投出的每一票,确认的是谁的投票权;Data Tracker 赋予公民的审计权,行使权利的又是谁——所有这些“谁”,都指向同一个东西,一个足够强、足够可信、能在法律上代表一个具体公民的数字身份。

这就是为什么说,没有强身份,前面讲的 X-Road 那套签名与日志,后面要讲的网络投票与数据审计,全都悬空。身份是信任的根。根不牢,上面长出来的一切都不可信。

爱沙尼亚把这件事做得很重。它的数字身份不是某个 App 里的一个账号,而是一套有法律效力的密码学体系。

爱沙尼亚的 eID 不是单一产品,而是一个家族,随着技术演进不断添丁。

最早也最基础的是 ID-card(2002):一张带芯片的实体卡,基于公钥基础设施(PKI),既承载身份认证,也承载法律等效的数字签名——用它签的电子文件,法律效力等同于手写签名。截至现在,约 99% 的爱沙尼亚人持有这张卡。[C26] 这个普及率是 e-Estonia 一切数字服务的基本盘:当几乎每个成年人都握着一把能在法律上代表自己的密码学钥匙,国家才敢把服务默认放到线上。

接着是 Mobile-ID(2007):它把私钥放进手机 SIM 卡里的一个小程序,让手机本身变成那张“卡”,不用再随身带读卡器。便利的代价是它依赖运营商的 SIM——你换运营商、出国用当地号,都可能受影响。

再后来是 Smart-ID(2017):它用一个 App 加上后端的密钥管理服务器(KMS),彻底摆脱了对 SIM 的依赖,因此可以跨境使用。它增长极快,用户达到约 300 万——这个数字放在波罗的海三国的人口背景下意味着,差不多每两个波罗的海居民里就有一个在用 Smart-ID。2018 年 11 月,它获得了 QSCD(合格签名创建设备)资格,意味着用它做的签名在欧盟法律框架下等效于手写签名。Smart-ID 由 SK ID Solutions 提供。[C27]

此外还有纯数字的 Digi-ID 等变体。但不论形态怎么变,这个家族有共同的技术内核:两要素认证——你必须同时“持有”那个设备(卡、SIM、绑定的手机)并“知道”对应的 PIN 码;而且私钥永远不离开安全单元,签名运算在安全芯片或受保护的密钥环境里完成,私钥本身不暴露给操作系统、不在网络上传输。这套设计的意义在于:即便有人偷走了你的卡,没有 PIN 也用不了;即便有人攻破了你的电脑,也拿不到那把藏在安全单元里的钥匙。

理论上,这是一套相当稳固的信任根。2017 年秋天,它迎来了一次没有预演的实战检验。

2017 年 10 月 16 日,一个被称为 ROCA 的漏洞被公开披露。问题出在 Infineon 公司的一个密码学库 RSALib 上:它生成 RSA 密钥的方式存在缺陷,使得攻击者有可能从公开的公钥反推出本应保密的私钥。[C10]

这件事的严重性在于,私钥是整套 PKI 信任的命门。如果私钥能被算出来,那么“私钥永远不离开安全单元”这道防线就被绕过了——攻击者不需要偷你的卡、不需要知道你的 PIN,只要拿到你的公钥(公钥本就是公开的),就有可能伪造你的签名、冒充你的身份。

ROCA 是一个波及全球的漏洞,受影响的芯片在世界范围内超过十亿枚,爱沙尼亚只占其中极小一部分。但对爱沙尼亚来说,比例小不等于影响小——受影响的是 2014 年 10 月 16 日至 2017 年 10 月 26 日之间签发的约 76 万张爱沙尼亚 ID 卡。[C10] 对一个 130 万人口的国家来说,76 万张卡意味着相当大比例的成年公民,手里那把代表自己的密码学钥匙,理论上可能被人复制。这是对信任根最直接的攻击:不是某个应用出了 bug,而是身份本身的根基出现了裂缝。

爱沙尼亚政府的反应是分阶段的。它先评估、先沟通、先准备替代方案,最后在 2017 年 11 月 3 日午夜封停了所有受影响的证书。[C11] 封停意味着,从那一刻起,这些卡上受影响的证书不能再用于签名和认证。

到这里,故事本可以走向许多受 ROCA 影响的国家那条路:大规模召回、全面吊销、重新发卡,公民排长队、系统停摆数周。但爱沙尼亚没有走那条路,原因藏在一个早就埋下的工程决定里。

爱沙尼亚的 eID 系统预先内建了远程更新的能力。这意味着证书可以远程地、在线地更新,而不必把卡物理收回、重制、重发。于是在 ROCA 危机中,受影响的用户可以在任意一台带读卡器的联网电脑上自己完成证书续期,把有缺陷的密钥换成安全的新密钥,整个过程不需要去任何窗口排队。[C11] 同样关键的是处置策略的选择:爱沙尼亚选择的是“封停(suspend)”而非“吊销(revoke)”——封停是可逆的挂起,证书更新后即可恢复使用;吊销则是不可逆的作废,意味着必须重新走完整的发卡流程。一字之差,决定了这次危机是一场可控的全民续证,还是一场全面的身份系统重建。事后,爱沙尼亚的国家信息系统局 RIA 发布了一份《ROCA 漏洞与 eID——经验教训》的总结报告,把这次危机的复盘公开化。[C11]

ROCA 之所以值得单独成章,是因为它的教训是双向的——它同时暴露了一个深层风险,又证明了一种设计哲学。

暴露的风险是:把全民身份押在单一芯片供应商的硬件上,是一种系统性脆弱。爱沙尼亚几乎所有公民的密码学钥匙都依赖 Infineon 这一家公司的芯片,于是这家公司的一个库出了问题,就能让 76 万张卡同时陷入风险。这是“数字国家把所有鸡蛋放进同一个篮子”的真实代价。对任何想模仿爱沙尼亚的国家,这是一条必须正视的警告:技术供应链的集中度本身就是国家安全问题。

但证明的设计哲学是:韧性必须先于事故被设计进去。爱沙尼亚之所以能用“远程续证 + 封停而非吊销”把损害控制住,不是因为它危机时反应特别机敏,而是因为很多年前建系统的时候,就把“如果证书需要紧急更换怎么办”当成了一个必须回答的问题,并把答案做进了架构里。等到事故真的发生,那个早就准备好的能力就成了缓冲垫。

这恰恰是贯穿全书的“小国生存逻辑”的一个缩影:一个领土可能在数小时内失守的国家,习惯于为最坏情况预留余地。这种习惯体现在身份系统上,就是远程换证的能力;体现在数据上,就是后面要讲的 Data Embassy;体现在身份模型的选择上,就是它把信任锚在可以吊销、可以更新、不绑定生物特征的密码学密钥上——这一点,会在和印度对比的那一章里显出它的分量。一把钥匙泄露了,可以换一把;而指纹和虹膜一旦泄露,无法更换。爱沙尼亚在 2002 年选择密钥而非生物特征作为身份之锚时,未必预见到 ROCA,但这个选择让 ROCA 成了一场可以收拾的危机,而不是一场不可逆的灾难。

信任根经受住了压力测试,但它的脆弱也被记录在案。接下来三章,要离开这台机器的内部构造,去看它向外伸出的三只手:一只伸向全世界招揽电子公民,一只伸到卢森堡备份国家的命脉数据,还有一只——其实早在 2007 年——就被一场网络攻击攥成了拳头。


参考文献

  1. Wikipedia, “ROCA vulnerability”。ROCA 漏洞 2017-10-16 公开、Infineon RSALib 生成密钥可被反推私钥的来源。[C10] 链接 →

  2. BleepingComputer, “Estonia cancels 760,000 electronic ID cards because of crypto flaw”。约 76 万张卡受影响、2014-10-16 至 2017-10-26 发卡区间、11-03 午夜封停的来源。[C10][C11] 链接 →

  3. RIA(爱沙尼亚国家信息系统局), “ROCA Vulnerability and eID: Lessons Learned”(2018, PDF)。预建远程更新能力、在线续证而非全面吊销、官方危机复盘的一手来源。[C11] 链接 →

  4. RIA, “Estonia offers recommendations in light of eID vulnerability”。官方就 eID 漏洞发布建议的一手来源。[C11] 链接 →

  5. RIA, “Electronic identity (eID) and trust services”。ID-card、Mobile-ID、Smart-ID、Digi-ID 家族与两要素 / PKI 技术共性的一手来源。[C26] 链接 →

  6. RIA, “Smart-ID scheme description 2024”(PDF)。Smart-ID 技术方案描述的一手来源。[C27] 链接 →

  7. SK ID Solutions, “Smart-ID”。Smart-ID 约 300 万用户、每两个波罗的海居民一个在用、2018-11 获 QSCD 资格的来源(供应商口径,C 级,已对照 RIA 文档)。[C27] 链接 →

  8. e-estonia, “Mobile ID”。Mobile-ID 私钥存于 SIM 卡内、依赖运营商的来源(官方营销口径,C 级)。[C27] 链接 →