本期将继续连载翻译 Rebooting Web of Trust 组织在 RWOT IX — Prague, 2019会议上的一篇论文《Alice Attempts to Abuse a Verifiable Credential》,让我们继续了解 Alice 是如何对其处方进行作恶的,以及可验证凭证体系又是如何应对的。
上一期请参考:科普 | 凭证真假难辨,去中心化身份体系有妙招(一)
原文:
https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/final-documents/alice-attempts-abuse-verifiable-credential.md
作者:P. Dingle, S. Hammann, D. Hardman, C. Winczewski, S. Smith
Alice 的作恶行为
1
Alice 试图卖掉处方
Alice 想在黑市上卖掉她的处方,她认为这会有很高的需求,肯定会有一些对此上瘾的人愿意花很多钱来购买 melange 处方,然后伪装成她自己来使用它。
但是,Alice 的成功概率要比她预期的小得多。事实证明,由于某些原因,她的证书在黑市上几乎一文不值:
图 | 网络
传统的签名凭证
启用 ZKP 的凭证
以上两种中的任意一种凭证类型
2
Alice 试图出租处方
发现卖处方不切实际,Alice 尝试了另一种方法:出租她的处方。她愿意根据要求与药房的远程验证互动。基本上,她愿意替代他人进行合法证明。如果成功,那么即使 Alice 仍然是持有者和证明者,也会将凭证的利益转移给另一个人。
但是,验证者会通过单一、连贯且极具关联性的资料来揭穿 Alice 的谎言。这样可以确保真正拥有处方的人(Alice)也是其送货地址和信用卡用于运送/接收药品和付款的人,不过 Alice 无法重新寄送或重新付款。
图 | 网络
3
Alice 双花她的处方
Alice 想知道她能否比医生所建议的更频繁地使用处方。她走进多家药店,并在每个地方出示了可验证凭证。
图 | 网络
Alice 被前面提到的信任框架所建立的规则所困扰。信任框架旨在解决的问题之一是尝试多次使用某个指定处方。
在信任框架下,处方只能被一次性使用的一种方法是,要求药房将已使用处方的相关信息(也许只是唯一的处方 ID)发布到公共数据库,另一种选择是要求药房在使用处方后立即将其撤销(或要求发行者撤销)。
4
Alice 试图攻击药房
Alice 试图利用可验证凭证来获得药房资源的未经授权的访问权限。她知道许多药店并未认真对待基本的安全预防措施,因此研究了如何以可能损害系统的方式更改可验证凭证的自主张部分。攻击的类型很多,但 Alice 决定实施 OWASP Top 10列表 中的一个条目,该条目可能会受到最终用户的影响。
Alice 在医生系统中将她的名字更改为 Alice’); DROP TABLE PRESCRIPTIONS;,企图让药房忘记她的处方是否已经签发。
不幸的是,对于 Alice 来说,该药房已实施了可靠的输入验证,并正在对可验证凭证中接收到的所有数据进行过滤处理。通过检测和删除字符或将其转换为等效文本,可以对系统解释为转义字符的字符进行无害化处理。同时,药房已经进行了渗透测试,以确保阻止各种注入攻击。
5
Alice 试图阻止与药房的连接
Alice 想知道,如果药房暂时离线且无法进行主动验证,她所有的攻击方式会不会更有效。她走到药房,找到连接大楼的互联网电缆,然后将其切断。在一段时间内,药房无法执行简单的操作,例如针从账本上解析 DID。
但是,药房为此做的一些准备远超 Alice 的期望。它会定期缓存各种数据,包括:
传统的签名凭证
启用 ZKP 的凭证
两种凭证类型
当 Alice 以先前讨论的任何欺诈方式提供其凭证时,该药房就能用其精心设计的过期策略来使用其缓存的数据。也许他们得出的结论是,由于发行人的公开 DID 相对稳定,因此它们的过期时间可能长达24小时,而撤销列表需要在前一个小时内保持最新状态。
Alice 被发现作恶,其处方被撤销
在 Alice 最新作恶事件发生之后,她的医生办公室决定撤销她的凭证。但她仍企图用其凭证想要获得实际发给她的 melange 剂量。
药房已成功验证了由正确的医生办公室发出的签名,但按照信任框架的要求,它检查了公有链上可用的吊销列表或隐私保护的吊销注册表。药房找到了和 Alice 凭证 ID 相关联的条目,因此再次拒绝了该凭证。
图片来源:amenclinicsphotos ac, Flickr, CC SA 2.0
结语
下一期我们将介绍,基于 Alice 企图对处方凭证作恶的故事,验证者需采取何种措施应对,以更好地防止遭受恶意证书持有者的欺诈,敬请期待!