本期将继续连载翻译 Rebooting Web of Trust 组织在 RWOT IX — Prague, 2019会议上的一篇论文《Alice Attempts to Abuse a Verifiable Credential》,让我们继续了解 Alice 是如何对其处方进行作恶的,以及可验证凭证体系又是如何应对的。
凭证与 DID 绑定,凭证持有人每次使用处方时都必须披露相同的 DID。验证者可以检查假装 Alice 的人所使用的处方上的 DID 与上周使用的另外一个处方上的 DID 是否相同,如果不匹配,则拒绝该凭证。
启用 ZKP 的凭证
ZKP 中的 link secret 将通过 link secret bond 保护。这意味着 Alice 不能将其 link secret(使用处方时需要)出售给黑市上的任何人。否则,知道该秘密的任何人通过公开观察就可以使用其 link secret bond。在这种情况下,药房将需要检查其 link secret bond 的完整性,并且仅接受 link secret 未泄漏的凭证。
凭证持有人每次使用处方时都必须使用相同的 link secret。验证者可以在不知道 link secret 本身的情况下检查其连续性,这样可以防止凭证转移。
要求处方凭证持有者将 DID 和 link secret 绑定。在 Alice 的社会关系网中,当某人成年并有合法能力自己使用处方时,必须亲自到药房使用基于 link secret 的 ID(例如驾照)证明自己的身份。每个人证明的片段都已存档。当某人填写处方时,他们必须向验证者(药房)证明,当前处方中嵌入的 link secret 与其在身份证明中使用的 link secret 相同,并且也要和药房要求他们证明其拥有的凭证(驾驶执照、信用卡、护照等)中的 link secret 相同。由于欺诈者无法预测他们将需要哪种凭证,即使 Alice 出售了她的 link secret,她也不能只在黑市上出售一张凭证,而必须出售其许多凭证,要么干脆不出售任何凭证。(对于非 ZKP 凭证,可以使用类似的技术,只是链接将基于 DID,而不是基于 link secret 和秘密隐藏。)
以上两种中的任意一种凭证类型
发行者(医生办公室)在处方凭证中嵌入了生物特征(例如照片、声纹、指纹、手形或虹膜扫描),并将其和 Alice 绑定。药房必须检查此生物特征以确认使用处方的人与处方的签发对象是同一个人。(传统意义上,在不受验证者控制的情况下从远程设备捕获生物特征是有问题的。但是,在学术领域和像 FIDO Alliance 这样的行业团体提出的新解决方案将使其变得更加实用。)
2Alice 试图出租处方发现卖处方不切实际,Alice 尝试了另一种方法:出租她的处方。她愿意根据要求与药房的远程验证互动。基本上,她愿意替代他人进行合法证明。如果成功,那么即使 Alice 仍然是持有者和证明者,也会将凭证的利益转移给另一个人。但是,验证者会通过单一、连贯且极具关联性的资料来揭穿 Alice 的谎言。这样可以确保真正拥有处方的人(Alice)也是其送货地址和信用卡用于运送/接收药品和付款的人,不过 Alice 无法重新寄送或重新付款。
图 | 网络Alice 被前面提到的信任框架所建立的规则所困扰。信任框架旨在解决的问题之一是尝试多次使用某个指定处方。在信任框架下,处方只能被一次性使用的一种方法是,要求药房将已使用处方的相关信息(也许只是唯一的处方 ID)发布到公共数据库,另一种选择是要求药房在使用处方后立即将其撤销(或要求发行者撤销)。 4Alice 试图攻击药房Alice 试图利用可验证凭证来获得药房资源的未经授权的访问权限。她知道许多药店并未认真对待基本的安全预防措施,因此研究了如何以可能损害系统的方式更改可验证凭证的自主张部分。攻击的类型很多,但 Alice 决定实施 OWASP Top 10列表 中的一个条目,该条目可能会受到最终用户的影响。Alice 在医生系统中将她的名字更改为 Alice’); DROP TABLE PRESCRIPTIONS;,企图让药房忘记她的处方是否已经签发。不幸的是,对于 Alice 来说,该药房已实施了可靠的输入验证,并正在对可验证凭证中接收到的所有数据进行过滤处理。通过检测和删除字符或将其转换为等效文本,可以对系统解释为转义字符的字符进行无害化处理。同时,药房已经进行了渗透测试,以确保阻止各种注入攻击。 5Alice 试图阻止与药房的连接Alice 想知道,如果药房暂时离线且无法进行主动验证,她所有的攻击方式会不会更有效。她走到药房,找到连接大楼的互联网电缆,然后将其切断。在一段时间内,药房无法执行简单的操作,例如针从账本上解析 DID。但是,药房为此做的一些准备远超 Alice 的期望。它会定期缓存各种数据,包括:传统的签名凭证
每个持有人的 DID 和验证公钥
所有相关的吊销列表
启用 ZKP 的凭证
Pairwise DID 的状态信息(在 ZKP 生态系统中,持有人不通过公共 DID 在处方上进行交互,而是使用 Pairwise DID。药房将拥有关联的 DID 文档。)
相关撤销的默克尔树的根或密码学累加器
两种凭证类型
由信任框架授权,可以开出处方的医生的 DID 和公钥
当 Alice 以先前讨论的任何欺诈方式提供其凭证时,该药房就能用其精心设计的过期策略来使用其缓存的数据。也许他们得出的结论是,由于发行人的公开 DID 相对稳定,因此它们的过期时间可能长达24小时,而撤销列表需要在前一个小时内保持最新状态。
Alice 被发现作恶,其处方被撤销
在 Alice 最新作恶事件发生之后,她的医生办公室决定撤销她的凭证。但她仍企图用其凭证想要获得实际发给她的 melange 剂量。
药房已成功验证了由正确的医生办公室发出的签名,但按照信任框架的要求,它检查了公有链上可用的吊销列表或隐私保护的吊销注册表。药房找到了和 Alice 凭证 ID 相关联的条目,因此再次拒绝了该凭证。
图片来源:amenclinicsphotos ac, Flickr, CC SA 2.0
结语
下一期我们将介绍,基于 Alice 企图对处方凭证作恶的故事,验证者需采取何种措施应对,以更好地防止遭受恶意证书持有者的欺诈,敬请期待!
[url=http://mp.weixin.qq.com/s?__biz=Mzg2NjA3OTY0NQ==&mid=2247484210&idx=1&sn=67a83c09888a31f8b74a042875b5b032&chksm=ce5105c0f9268cd6bf1feff3abb502d5287eab08c56c4f234e7ff50c333471deafbb3d8ca275&scene=21#wechat_redirect][/url] ▼点击阅读原文查看往期技术视点