DID和VC:揭开网络信任中的去中心化身份和可验证凭证
摘要
去中心化的身份和可验证凭证被认为是自主和隐私友好的替代方案,而不是集中化和专有的认证服务。目前存在一个W3C标准,它试图统一现有的建议,并为去中心化的识别和验证找到一个公共层。然而,与集中式的认证平台相比,去中心化身份在可信性、隐私性和可用性等方面存在一定的局限性。文中首先描述了创建、共享和验证可验证凭证所需的所有工作流,然后讨论了去中心化身份在信任、隐私和可用性方面的限制。总结了当前标准提出的去中心化认证涉及的工作流程。展示了在为实际实现共享DID时需要考虑的现有限制和缺点,并给出了可能的解决方案和未来方向的概述。
关键字
去中心化身份,DID,可验证凭证,VC,可验证声明,区块链,信任,W3C,信任网络
去中心化身份,DID,可验证凭证,VC,可验证声明,区块链,信任,W3C,信任网络
引言
认证和验证已成为万维网面临的主要挑战之一。这不仅适用于个人,也适用于物联网环境下的机构和设备。在集中式机构和专有服务的主导下,身份验证领域变得更加集中,而不像最初设计和期望的那样自治。随着区块链技术和分布式账本的出现,一种全新的、完全去中心化的、无权限的账本管理方法被建立起来,这种方法有望实现自我管理和自我主权。最近,去中心化身份(DIDs)和可验证凭证(VCs)被提出,作为一种现代的、去中心化的、轻量级的认证方法[13,18]。DIDs在很大程度上建立在分布式账本技术的基础上,并将它们用作主要的构建块。由VCs补充,这允许对服务和应用程序进行纯粹的非有形和数字认证。一个DID充当一个唯一的身份,引用一个DID文档,其中包含关于一个身份的信息。然后VCs用于存储和表示机器可读的凭证。
然而,存在一些限制,仅靠DIDs和VCs还不足以毫无疑问地证明身份。此外,当前正在发展的DID方法之间的互操作性是有限的,可用性问题(如存储和管理加密密钥材料)是显而易见的。本文描述了去中心化身份的工作流程,并讨论了所提出的标准的实用性[13,18]。本文的贡献有两方面:首先,描述了DIDs和VCs环境中发布方、接收方和验证方的角色,概述了从创建DID到验证声明的完整工作流程。这是按照标准进行的。其次,讨论了去中心化身份的局限性,并分析了其中的信任假设。本文的结果既可作为其他计划使用DIDs和VCs的人的指南,也可作为在现有或新的用例中实现DIDs和VCs的基础。
论文的其余部分结构如下:第2节提供了关于DIDs、VCs和自主身份(SSI)的信息。第3节详细描述了工作流程。第4节讨论了DIDs和VCs的局限性和开放性问题。第5节概述了SSI生态系统的三个主要贡献者,第6节总结了本文并展望了未来的工作。
背景
本节介绍了工作流描述的相关背景,以及与DIDs和VCs有关的开放问题的讨论。
自我主权身份
SSI是一种身份概念,其中个人可以自由声明其自己的身份,而无需集中式可信方[14]。除了集中式或联合身份之外,没有任何一个可信方或一个已定义的可信方子集充当此类根[1]。这个概念随着区块链技术的出现而发展,它为建立一个完全去中心化和SSI提供了必要的生态系统。根据[1],这种身份概念的关键属性可以总结如下:(i)身份的声明独立于其他实例和声明,在所有者的完全控制下,包括访问所有相关数据,并且通常寿命长;系统和算法是开放的,从而确保各方之间的充分可移植性和互操作性;(iii)任何资料的公布必须得到资料所有人的同意,最低限度地保存资料,而且资料所有人的权利在任何时候都必须受到保护。总之,它定义了DIDs的框架,并试图在DIDs的W3C标准[14]中实现。
角色
与DIDs相关的角色以及这个标准[14]所描述的角色是主体、接收方和依赖方。请注意,本文部分使用了不同的术语,以遵循常见的加密表示法。主体表示为发布方,信赖方表示为验证方。去中心化的身份
DID是一个全局唯一的引用,链接到DID文档,形式为DID:<DID method>[14]。DID方法是对特定的分布式账本或网络的引用,方法特定的标识符允许在该引用中解析DID。给定一个DID,用户可以检索所引用的DID文档,就像通过URL定位(例如,Web资源)一样。方法和文件
DID方法是关于如何在特定区块链或分布式分类帐中解决DID以及如何编写和更新DID文档的具体描述。DID文档是一种用JSON等格式表示的结构,包含有关身份的信息,如公钥。DID文档还包括对服务端点的引用,发布者可以在其中操作某些服务,例如VCs的存储库。一个分布式账本的例子是Sovrin[17],其中包括一个指定的DID方法,可以存储用于建立和维护SSI的DID文档。可验证的证书,声明和陈述
VC是一种机器可读的凭证形式,即根据[18]规范,具有密码学上的安全和隐私保护。VC与一个DID文件中的DID绑定,从而与一个身份联系在一起。在图1中展示了一个包含名称属性的VC示例。VC由发行方创建并发送给接收方。它包含一组关于属性的声明,例如,姓名、出生日期、等级、ID或发布方希望赋予接收者的其他信息。为了将声明转发给验证者,需要创建一个表示。表示只允许显示属性的一个子集,例如显示出生日期属性而不显示name属性。
工作流
在本节中,按照标准[14]介绍了从创建DID开始,到验证由VC生成的索赔结束的工作流程。工作流程被涉及的参与者分开:风险投资的发行人(I);VC的接收者(R)和所选索赔的验证者(V)。整个工作流如图2所示。我们将在下面的第4节中讨论限制和缺点。发行方
在本节中,描述了VC从I到R的发行流程。- 为I创建一个DID:发行VC的第一步是创建DID。我可以选择一个DID方法。可以在[19]中找到可用DID方法的列表。此外,我可以选择是为每个VC创建一个新的DID,还是为所有VC使用相同的DID。然而,在我应该被公开验证的情况下,例如,当我由一所大学代表的情况下,将没有必要创建多个DIDs。
- [可选]更新DID文档:DID的对应加密密钥在DID文档中描述,可以通过只知道DID来解决。我可以有多个DID文档,例如,描述密钥更新操作。注意,DID的所有者负责私钥的备份。如果我丢失了私钥,没有默认的方法来恢复它[3]。
- R的收集和验证:一旦创建了DID和相应的DID文档,在生成VC之前,我需要知道R的DID。为此,我需要提供一种方法来收集和(如果需要的话)验证R的身份。如果需要身份检查,则取决于VC的类型,例如,代表出席确认的VC需要比代表护照或驾照的VC更弱的身份检查。
- 向R发出VC:在我创建了一个DID并收集了R的DID之后,我就能够创建一个新的VC。VC至少包括I和R的DID,并且数字符号是I的DID。VC创建完成后,我会将其发送给R。
- [可选]撤销VC:将VC交给R后,我无法再删除已发出的VC。然而,一些DID方法描述了一种撤销已经发布的VCs的方法,例如Sovrin使用加密累加器[17]来撤销。
接收方
在这一节中,描述了VC接收器(R)的工作流程。- 为R创建DID:R需要在能够接收VCs之前创建一个DID。这个过程类似于为验证者V创建一个DID。R可以为每个VCs创建一个新的DID。这将保护R的隐私,因为它使V或其他验证者更难将签发给同一接收者R的不同VCs链接起来。R完全负责备份自己的私钥。I可以由雇佣IT专家的组织(如大学或政府)代表,而R则由没有管理密钥知识的个人代表。
- 与I共享DID:要接收VC,R需要与发行人I共享DID。这取决于I,这个操作是如何工作的,以及是否需要额外的识别机制。
- 从I接收VC:成功建立一个DID并与发行人I共享后,我将创建VC并将其传递给R。一旦这个过程完成,R就可以与任何人分享VC中包含的选定索赔。
- 从VC中为V创建VP:VC包含一个或多个主张,例如关于R的名称、出生日期、类型或其他信息。为了保护隐私,R能够从与VC相关的主张中选择一个子集,并根据这些选择的属性创建一个VP。VP只包含需要的信息,而不是R愿意分享的信息。
- 与V共享VP:创建的VP可以与V共享。这个过程并没有标准的流程,它取决于R和V使用的通信方法。
验证方
在本节中,描述了VC中V的工作流程。- 接收一个VP:与I和R不同,V在验证一个副总裁之前不需要创建一个DID。为了验证一个VP,V首先需要接收它。VP的传递依赖于R和V的通信方式1。
- 从I和R中解析DID文档:一个VP包含一个或多个关于R的Cs。对于每个声明,必须完成以下验证步骤:要验证一个声明,第一步是收集R和I的DID文档。从DID文档中解析DID文档的过程在DID方法规范中描述。
- 验证R和I的签名:如果C的签名是由I和R生成的,那么V可以使用附在解决的DID文档上的密钥进行验证。
- 检查撤销信息:如果DID方法允许撤销VC,V需要检查VC是否仍然有效且未被撤销。这个过程必须由DID方法规范描述。
- 验证R和I的身份:检查C是否有效的最后一步是验证R和I的身份。这个过程在DID的W3C标准[14]中没有描述。在撰写本书时,标准中并没有提出用于标识DID背后身份的自动化工作流。
讨论
本节讨论与DIDs和VCs相关的问题,如信任假设和隐私,以及与撤销和可用性方面相关的挑战。在撰写本文时,这些问题在标准中没有得到充分的解决。信任
DIDs旨在将身份验证从集中式身份验证提供者(例如集中式方法或联合,如OAuth[9])转移到去中心化的基础设施。虽然这是一个有希望的尝试,可以在匿名环境中使用(例如,公共公告栏),但这个生态系统面临着一些具体的、尚未解决的挑战。后者在法律互动和交易的背景下尤其明显。密码学前提非常适合证明和验证DID的所有权,然而,没有集成的方法将真实身份连接到DID的所有者。虽然我们能够将VC附加到DID上,因此能够为DID背书个人信息(例如姓名、出生日期等),但标准没有描述如何建立对I的信任。
在传统的数字系统中,例如万维网,这通常由一个信任根或多个信任根促进,例如证书颁发机构(CA)。CA是经过认证的公司;他们的商业模式依赖于提供关于个人、机构和其他实体的真实身份与数字身份绑定的经过验证的最新信息。
在我们看来,有两种可能的解决方案:
如果使用假名信息进行身份验证,与传统方法(例如假名电子邮件地址)相比,DIDs没有任何优势,因为提供的数据本身并不能说明用户的真实身份。曾经,个人资料与个人挂钩,例如姓名、出生日期、信用卡……,则该信息为R所拥有,并可用于进一步的手段(例如,广告)。除了合法的[10]声明外,数据的所有者没有强制删除的选择。
可以使用零知识证明的方式分享个人资料,例如证明某人年龄超过18岁,而不披露出生日期本身。然而,这只适用于关于属性存在和范围的特定声明。
在我们看来,有两种可能的解决方案:
- 一个有前途的方法是建立一个公共发行机构的信任网络。这也被应用于其他领域,如PGP[21]等电子邮件通信的身份。这将使可信机构能够为它们所了解的实体提供担保,并允许这些实体向其他方显示其证书,确保与现实世界的身份(如[4])连接。
- 另外,可以通过将CAs[5]集成到DID生态系统[8]中来实现一种混合方法。这将去中心化的身份验证基础设施与已建立的信任根相结合
隐私
人们常说去中心化入侵检测和VC导致了“拥有”和“控制”数据的能力2。虽然这是一个有希望的主张,但在实践中是不可行的。如果使用假名信息进行身份验证,与传统方法(例如假名电子邮件地址)相比,DIDs没有任何优势,因为提供的数据本身并不能说明用户的真实身份。曾经,个人资料与个人挂钩,例如姓名、出生日期、信用卡……,则该信息为R所拥有,并可用于进一步的手段(例如,广告)。除了合法的[10]声明外,数据的所有者没有强制删除的选择。
可以使用零知识证明的方式分享个人资料,例如证明某人年龄超过18岁,而不披露出生日期本身。然而,这只适用于关于属性存在和范围的特定声明。
撤销
原则上,有两个潜在的原因可以撤销凭证。- 关键材料过期,丢失或被盗
- VC的实际状态发生了变化,例如恶意获得学位,必须撤销学位。
可用性
DID生态系统基于公钥基础设施,其中用户完全控制他们的加密材料,例如私钥。这类似于基于区块链的系统,在其中用户控制对其资产[3]的访问。这导致了以下关于可用性的问题:- 无法恢复丢失的私钥
- 认证形式完全基于信息,攻击可能导致重大数据和身份丢失
- 由于私钥的长度和随机性,私钥是不可能记住的。
总的来说,所有用户都有责任创建和管理他们私钥的安全备份。这可能导致最终用户的采用减少。通用认证框架[11]和相应的硬件可以增强用户体验和管理它们的密钥材料。
为了解释科学论文的缺乏,本文确定了推动SSI和DIDs进步的三大主要力量:
相关工作
到目前为止,SSI、DIDs和vc在学术论述[12]中很少受到关注。为了解释科学论文的缺乏,本文确定了推动SSI和DIDs进步的三大主要力量:
- 社区重启信任网络,
- 围绕DIDs和VCs发展的W3C小组,
- 寻求使用这些技术的私营企业。
重新启动信任网络reboot Web of Trust
reboot Web of Trust是一个专注于DIDs和VCs进展的社区,由Christopher Allen和Joe Andrieu[20]领导。Christopher Allen还概述了2016年[1]SSI的愿景。该组织定期举办研讨会,并在Github[16]上发布这项工作的结果。他们处理SSI生态系统[6]内的各种问题,建议增强现有的区块链应用程序以坚持DIDs和vc[15]或讨论信任网络[2]内参与者的声誉。通过这一点,他们为当前的讨论做出了贡献,并展示了SSI的增强和进一步发展。万维网联盟
万维网联盟(W3C)是万维网技术标准化的实体。其职责是监督DIDs数据模型[13]和VCs数据模型[18]的工作。这些提案的工作由所谓的W3C工作组负责,他们在Github3和公共邮件列表4中讨论他们的想法和评论。这些小组的主要成果是标准(或提案本身),因为他们发布的额外信息很少。例如,除了DID规范之外,它们还有关于当前DID方法[19]的更新列表。私营企业
像Evernym或Sovrin这样的私营企业也发布各种意见论文和技术规范[7]。由于它们是私营企业,它们有兴趣通过咨询其他公司或机构采用DID和VC的技术来将这些技术转化为利润。然而,这些公司的一些员工也是WoT和W3C的一部分,并影响着这些社区的决策。从外部来看,这些公司在制定去中心化入侵检测和风险投资标准时,是否总是以社区的最佳利益行事尚不清楚。结论
文中概述了去中心化身份、可验证凭证和自主身份的基本特征。在介绍了术语和术语之间的关系之后,我们概述了一个示范工作流,其中讨论了各方进行可验证凭证的颁发、共享和验证所需的步骤。此外,我们还讨论了这些概念的困难和潜在问题,这些问题可能会阻碍进一步采用或导致引导过程中不必要的障碍。本文表明,这些概念目前是有希望的,但展示了这些系统中需要进一步增强的点。致谢
感谢萨尔茨堡联邦政府的财政支持。引用
[1] Christopher Allen. 2016. The Path to Self-Sovereign Identity. http://www.lifewithalacrity.com/2016/04/the-path-to-self-soverereign-identity.html
[2] Arthur Brock, Kaliya Hamlin, Grace Rachmany, and Jakub Lanc. 2019. Reputation Interpretation. https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/final-documents/reputation-interpretation.pdf
[3] Clemens Brunner, Günther Eibl, Peter Fröhlich, Andreas Sackl, and Dominik Engel. 2020. Who stores the private key? An Exploratory Study about User Preferences of Key Management for Blockchain-based Applications. submitted to ICISSP 2021.
[4] Clemens Brunner, Fabian Knirsch, and Dominik Engel. 2019. SPROOF: A platform for issuing and verifying documents in a public blockchain. In Proceedings of the 5th International Conference on Information Systems Security and Privacy. SciTePress, Prague, Czech Republic, 15–25.
[5] Council of the European Union. 2014. Regulation (EU) No 910/2014 of the European Parliament and of the Council of 23 July 2014 on electronic identification and trust services for electronic transactions in the internal market and repealing Directive 1999/93/EC. Official Journal of the European Union 57, L 257 (2014), 73–114. http://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32014R0910
[6] P. Dingle, S. Hammann, D. Hardman, C. Winczewski, and S. Smith. 2019. Alice Atempts to Abuse a Verifable Credental. https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/final-documents/alice-attempts-abuse-verifiablecredential.pdf
[7] Evernym. 2021. White Papers - Evernym. https://www.evernym.com/whitepapers/
[8] Ulrich Gallersdörfer and Florian Matthes. 2020. AuthSC: Mind the Gap between Web and Smart Contracts. arXiv:2004.14033 [cs.CR]
[9] Dick Hardt et al. 2012. The OAuth 2.0 authorization framework. Technical Report. RFC 6749, October.
[10] Galia Kondova and Jörn Erbguth. 2020. Self-sovereign identity on public blockchains and the GDPR. In 35th Annual ACM Symposium on Applied Computing. ACM, Brno, Czech Republic, 342–345. https://doi.org/10.1145/3341105.3374066
[11] Rolf Lindemann, Davit Baghdasaryan, and Eric Tiffany. 2014. FIDO Universal Authentication Framework Protocol. Version v1. 0-rd-20140209, FIDO Alliance, February (2014).
[12] Alexander Mühle, Andreas Grüner, Tatiana Gayvoronskaya, and Christoph Meinel. 2018. A survey on essential components of a self-sovereign identity. , 80–86 pages. https://doi.org/10.1016/j.cosrev.2018.10.002
[13] Drummond Reed, Manu S***y, Dave Longley, Christopher Allen, Ryan Grant, and Markus Sabadello. 2019. Decentralized Identifiers (DIDs) v1.0. https://www.w3.org/TR/did-core/
[14] Drummond Reed, Manu S***y, Dave Longley, Christopher Allen, Ryan Grant, and Markus Sabadello. 2020. Decentralized Identifiers (DIDs) v1.0 Core architecture, data model, and representations. DIDs v1.0. https://www.w3.org/TR/didcore/
[15] Anthony Ronning and Wong Wai Chung. 2019. Blockcerts V3 Proposal. https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/finaldocuments/BlockcertsV3.pdf
[16] RWOT. 2020. RWOT: White Papers. https://www.weboftrust.info/papers.html
[17] Sovrin Foundation. 2018. Sovrin: A Protocol and Token for Self- Sovereign Identity and Decentralized Trust. Technical Report January. https://sovrin.org/wpcontent/uploads/2018/03/Sovrin-Protocol-and-Token-White-Paper.pdf
[18] Manu S***y, Dave Longley, and David Chadwick. 2019. Verifiable Credentials Data Model 1.0. Technical Report. W3C. 1–115 pages. https://w3c.github.io/vcdata-model/https://www.w3.org/TR/vc-data-model/
[19] Orie Steele and Manu S***y. 2021. DID Method Registry. https://w3c-ccg.github.io/did-method-registry/#the-registry
[20] weboftrust.info. 2020. Rebooting the Web-Of-Trust. https://www.weboftrust.info/
[21] Duane Wilson and Giuseppe Ateniese. 2015. From pretty good to great: Enhancing PGP using bitcoin and the blockchain. In International Conference on Network and System Security. Springer, 368–375.
[2] Arthur Brock, Kaliya Hamlin, Grace Rachmany, and Jakub Lanc. 2019. Reputation Interpretation. https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/final-documents/reputation-interpretation.pdf
[3] Clemens Brunner, Günther Eibl, Peter Fröhlich, Andreas Sackl, and Dominik Engel. 2020. Who stores the private key? An Exploratory Study about User Preferences of Key Management for Blockchain-based Applications. submitted to ICISSP 2021.
[4] Clemens Brunner, Fabian Knirsch, and Dominik Engel. 2019. SPROOF: A platform for issuing and verifying documents in a public blockchain. In Proceedings of the 5th International Conference on Information Systems Security and Privacy. SciTePress, Prague, Czech Republic, 15–25.
[5] Council of the European Union. 2014. Regulation (EU) No 910/2014 of the European Parliament and of the Council of 23 July 2014 on electronic identification and trust services for electronic transactions in the internal market and repealing Directive 1999/93/EC. Official Journal of the European Union 57, L 257 (2014), 73–114. http://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32014R0910
[6] P. Dingle, S. Hammann, D. Hardman, C. Winczewski, and S. Smith. 2019. Alice Atempts to Abuse a Verifable Credental. https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/final-documents/alice-attempts-abuse-verifiablecredential.pdf
[7] Evernym. 2021. White Papers - Evernym. https://www.evernym.com/whitepapers/
[8] Ulrich Gallersdörfer and Florian Matthes. 2020. AuthSC: Mind the Gap between Web and Smart Contracts. arXiv:2004.14033 [cs.CR]
[9] Dick Hardt et al. 2012. The OAuth 2.0 authorization framework. Technical Report. RFC 6749, October.
[10] Galia Kondova and Jörn Erbguth. 2020. Self-sovereign identity on public blockchains and the GDPR. In 35th Annual ACM Symposium on Applied Computing. ACM, Brno, Czech Republic, 342–345. https://doi.org/10.1145/3341105.3374066
[11] Rolf Lindemann, Davit Baghdasaryan, and Eric Tiffany. 2014. FIDO Universal Authentication Framework Protocol. Version v1. 0-rd-20140209, FIDO Alliance, February (2014).
[12] Alexander Mühle, Andreas Grüner, Tatiana Gayvoronskaya, and Christoph Meinel. 2018. A survey on essential components of a self-sovereign identity. , 80–86 pages. https://doi.org/10.1016/j.cosrev.2018.10.002
[13] Drummond Reed, Manu S***y, Dave Longley, Christopher Allen, Ryan Grant, and Markus Sabadello. 2019. Decentralized Identifiers (DIDs) v1.0. https://www.w3.org/TR/did-core/
[14] Drummond Reed, Manu S***y, Dave Longley, Christopher Allen, Ryan Grant, and Markus Sabadello. 2020. Decentralized Identifiers (DIDs) v1.0 Core architecture, data model, and representations. DIDs v1.0. https://www.w3.org/TR/didcore/
[15] Anthony Ronning and Wong Wai Chung. 2019. Blockcerts V3 Proposal. https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/finaldocuments/BlockcertsV3.pdf
[16] RWOT. 2020. RWOT: White Papers. https://www.weboftrust.info/papers.html
[17] Sovrin Foundation. 2018. Sovrin: A Protocol and Token for Self- Sovereign Identity and Decentralized Trust. Technical Report January. https://sovrin.org/wpcontent/uploads/2018/03/Sovrin-Protocol-and-Token-White-Paper.pdf
[18] Manu S***y, Dave Longley, and David Chadwick. 2019. Verifiable Credentials Data Model 1.0. Technical Report. W3C. 1–115 pages. https://w3c.github.io/vcdata-model/https://www.w3.org/TR/vc-data-model/
[19] Orie Steele and Manu S***y. 2021. DID Method Registry. https://w3c-ccg.github.io/did-method-registry/#the-registry
[20] weboftrust.info. 2020. Rebooting the Web-Of-Trust. https://www.weboftrust.info/
[21] Duane Wilson and Giuseppe Ateniese. 2015. From pretty good to great: Enhancing PGP using bitcoin and the blockchain. In International Conference on Network and System Security. Springer, 368–375.