分布式身份系统中DID文档更新过程的漏洞分析
摘要
本文分析了非 去中心化身份(DID)所有者的第三方有权修改DID文档时可能发生的漏洞。DID是一种允许个人拥有数据主权的技术。DID文档包含用于验证DID所有者的信息。DID控制者具有修改DID文档的权限。这种权限正在标准化,以便它可以由第三方和所有者持有。这是一个违反DID所有者意愿的DID文档更改的问题。为了帮助所有者更有力地维护其主权,我们为DID所有者提出了一种方法,以使用策略、历史和服务来验证DID文档更新过程。
索引术语——自主权身份,去中心化身份,控制者,区块链,认证
引言
去中心化身份(DID)是自主身份(SSI)系统的核心,允许用户对自己的身份进行[2]和[4]的控制。在SSI兴起之前,个人的身份和数据被定位和管理在特定的网站或应用程序中。在SSI系统中,用户成为其身份管理的中心。DID文档是一个数据模型,它包含有关DID的详细信息。
DID文档指定DID控制者,它们是有权修改[3]文档的实体。DID控制者不仅可以是DID文档控制者的主体或所有者,也可以是从所有者那里获得文档变更授权的另一个实体。本文将这些实体称为非所有者的DID控制者(Non-Owner DID controllers,简称NODCONs)。一个常见的委托用例可能是在DID所有者丢失或被盗钥匙时恢复DID所有者的权限。NODCONs也被授权修改DID文档,这可能导致文档订阅者的非预期变化。为了解决这个问题,标准文档建议监控DID文档的修改,并通知DID文档的最初所有者DID文档已被更改[3]。
本文进一步分析了NODCON被篡改的漏洞,并提出了今后的研究方向。本文的贡献如下:首先,添加了一个用例,用于在DID文档中指定一个NODCON时如何执行身份验证。其次,它展示了一个NODCON为达到所有者不想要的目的而修改DID文档的过程。最后,针对NODCON对DID文档的不必要修改提出了一个研究方向。
本文的其余部分组织如下:第二部分介绍了SSI系统的核心——DID技术。第三部分介绍了DID认证技术的相关工作。第四部分分析了通过DID认证修改DID文件过程中可能出现的问题。第五部分提出了解决该问题的研究方向。
预备知识
去中心化身份
DID的概念是一种不受中心化系统控制的去中心化技术,允许个人完全控制自己的信息[3]。一个DID由URL方案身份、DID方法和DID特定方法身份组成。例如,字符串" did:bc:1234"中的"did"是DID方案,"bc"是DID方法,"1234"是特定于DID方法的。DID方法对每个可验证的数据注册表都有不同的实现,具有创建、读取/验证、更新和停用等功能。建议可验证的数据注册由可靠的数据库和分布式数据库组成。可验证的数据注册表通常由区块链网络[5]组成。目前,实现可验证数据注册所需DID方法的网络处于临时状态,通常包括Sovrin、以太坊、比特币等[6]。DIDs和DID文档之间的关系
DID指向DID文档。与DID匹配的DID文档包含DID身份验证和DID相关服务的信息。它存储在任何人都可以访问的可验证数据注册表中。DID文档由每个DID方法中实现的DID解析器发现[3]。图1所示的DID解析器是由DID解析过程组成的。DID解析是一个使用DID作为参数来查找DID文档的功能。DID文档和DID控制者的核心数据模型
在标准文档中,id被称为DID订阅者。DID订阅者是DID文档描述的实体。本文假设DID主体是DID持有者,并将其描述为DID所有者。图2所示的验证方法包括公钥和控制者。控制者具有修改DID文档的权限。它被称为DID控制者。通常DID控制者与DID所有者相同,但它也可以是具有不同DID所有者的DID控制者。DID控制者具有不同DID的状态是不同DID控制者,而不是DID文档描述的实体(DID所有者)。DID控制者是持有私钥的实体,私钥是一个公钥对。身份验证用于指定期望通过身份验证的方法,以证明它是DID所有者。服务包含用于描述如何与DID所有者或关联实体[3]通信的服务端点。
DID Auth(DID身份验证)
身份验证和授权是不同的概念。认证是证明DID控制者的身份(DID)的过程。认证过程是授权所必需的。DID控制者具有更新和删除DID文档的权限。DID方法和应用程序在完成身份验证后检查DID控制者的授权,该身份验证定义为DID Auth[3][8]。
DID认证过程如图3所示。首先,DID的所有者转移DID请求验证者进行身份验证。其次,验证者使用DID解析器从可验证的数据注册表中获取与DID匹配的DID文档。然后,验证者使用与DID控制者DID相匹配的DID文档公钥对随机生成的临时值(nonce)进行加密;验证者向身份验证请求者发送一个DID Auth挑战。DID身份验证挑战请求身份所有者获得一个响应,以证明他们对DID的控制。最后,DID所有者使用私钥解密挑战。DID所有者将解码后的挑战回复给验证者。DID身份验证依赖于挑战-响应周期[8]。
相关的工作
Reed等人创建了DID标准文档[3]。该文档提供了安全注意事项。本文档中的安全考虑建议应该防止对DID文档的不需要的访问。一些安全考虑表明需要额外的工作。
Hardjono提出了用户管理访问(UMA)架构来解决[10]和[11]的隐私控制问题。这种分布式体系结构的目标是通过访问策略和认证服务器提供一个以用户为中心的控制系统。这种架构有望帮助应用稳定的DID身份验证系统。
Sabadello等人编写的DID身份验证文档介绍了使用DID[8]进行身份验证的10个服务架构。在某些情况下,DID所有者可能不是可以控制DID并执行身份验证的同一实体。我们对这些情况进行了详细的分析。
Lux公司提出了一种将OpenID连接(OIDC)标准集成到SSI系统[9]中的方法。OIDC的DID认证概念是为了利用分布式认证的优势而设计的。这是一个类似于Sabadello的DID身份验证架构5[8]的概念。
Lux公司提出了一种将OpenID连接(OIDC)标准集成到SSI系统[9]中的方法。OIDC的DID认证概念是为了利用分布式认证的优势而设计的。这是一个类似于Sabadello的DID身份验证架构5[8]的概念。
漏洞分析
DID控制者不同于DID所有者
图4介绍了一个用例,当一个DID控制者不是DID所有者(NODCON)时,如何进行DID身份验证。在本节中,我们的目的是证明员工为特定的公司工作。员工的名字是did:bc:1234,而A公司的名字是did:bc:abcd。
首先,验证者从员工那里得到一个DID url。DID url表示使用哪个服务端点。验证者被询问使用哪个公钥进行身份验证。其次,验证者从可验证数据注册表中获得与DID匹配的DID文档。第三,有必要与公司A进行交互,以验证请求者是公司A的员工。为了与公司A进行DID身份验证,验证者已经找到了发送挑战的服务端点,该挑战在DID url(服务)的参数中指定。最后,验证者继续使用公钥与公司A进行身份验证。公钥是DID文档中DID控制者定义为公司A的部分的密钥。
业主不想要的修改
图5描述了一个NODCON如何更新DID文档。DID控制者具有更新DID文档中的加密密钥的能力,这是身份认证的核心。它还可以修改与DID关联的服务端点,包括作为DID所有者[12]进行身份验证的认证机制。如果NODCON是恶意的,这是用户不想看到的情况。即使它不是恶意的,它也是一个安全考虑。可验证的数据登记是一个公共网络。DID文档存储在可验证数据注册表中。如果NODCON知道DID拥有者的DID,它就能得到DID拥有者的DID文件。NODCON生成一个新的私钥和公钥。这个DID控制者通过将其指定为DID所有者来更新公钥控制器。最后,它通过执行DID Auth来充当owner。可能发生DID所有者不希望发生的修改。
研究方向建议
该文提出了一种基于策略、历史和服务的解决方案。DID文档存储在公共网络上,任何人都可以使用DID解析器获得它。DID文档是一个不包含函数的数据模型。使用DID文档很难阻止身份验证。如图6所示,我们关注授权部分而不是身份验证,并考虑DID控制者与DID所有者不匹配的部分。授权是一种机制,用于指示如何代表DID所有者执行操作。研究方向建议如下:
1)委托策略:在DID文档中包含DID控制者,而不是DID所有者,是为了特定的目的(例如密钥恢复、密钥撤销等)。委托策略允许DID控制者只调用它需要的方法。如果DID所有者在DID文档中包含DID控制者以防止密钥丢失,则只允许密钥恢复功能。
2)调用历史:即使一个DID控制者只使用允许的函数,它也可能导致所有者意想不到的情况。DID所有者需要保存DID控制者调用的函数的记录。根据调用历史记录监视修改。委托策略和调用历史应该保持不变。
3)交互服务:应用程序和DID方法提供交互服务,以便DID所有者可以跟踪DID控制者的活动。向DID主人的手机发送推送消息是互动服务之一。交互式服务系统提供实时服务可见性、操作控制和自动化。DID用户可以实时监控和回滚用户不需要的行为。交互式业务系统需要统一的故障监控来实现实时业务管理。
结论和未来工作
我们分析了当DID控制者不是DID所有者时可能发生的风险。如果一个DID文档有NODCON,它可以很有用地处理DID所有者的失控,如丢失钥匙。DID控制者有权代表DID所有者修改或删除DID文档。有必要防止主人的不良行为。在本文中,我们研究了如何响应用户不需要的文档修改。没有具体的实现方法。我们需要一个实现架构。有必要验证它的实际适用性。
致谢
本研究由韩国技术进步研究院(KIAT)资助,由韩国政府(MOTIE)资助(P0008703,行业专家能力发展计划)引用
[1] C. Allen, The Path to Self-Sovereign Identity, [online] Available:http://www.lifewithalacrity.com/2016/04/the-path-to-self-soverereignidentity.html.[2] Andrew Tobin & Drummond Reed, “The Inevitable Rise of Self-Sovereign Identity,” Sovrin Foundation, 28th March 2017.[Online]. Available: https://sovrin.org/wp-content/uploads/2018/03/TheInevitable-Rise-of-Self-Sovereign-Identity.pdf
[3] D. Reed et al., “Decentralized Identifiers (DIDs) v1.0 Core Data Model and Syntaxes,” W3C Working Draft 08 November 2020. [online] Available: https://www.w3.org/TR/did-core/.
[4] O. Avellaneda et al., “Decentralized Identity: Where Did It Come From and Where Is It Going?,” in IEEE Communications Standards Magazine, vol. 3, no. 4, pp. 10-13, December 2019, doi: 10.1109/MCOMSTD.2019.9031542.
[5] M. S***y et al., “Verifiable Credentials Data Model 1.0 Expressing Verifiable Information on the Web,” W3C Rec., 19 November 2019. [online] Available: https://www.w3.org/TR/vc-data-model/.
[6] Orie Steele & Manu S***y, “DID Specification Registries,” W3C Working Group Note, 30 November. [online] Available: 2020 https://www.w3.org/TR/did-spec-registries/.
[7] Markus Sabadello & Dmitri Zagidulin, “Decentralized Identifier Resolution (DID Resolution) v0.2,” Draft Community Group Report, 25 September 2020. [online] Available: https://w3c-ccg.github.io/didresolution/, Sep 2020
[8] Markus Sabadello et al., “Authentication’s White Papers: Introduction to DID Auth,” Rebooting the Web of Trust, 31 July 2018. [online] Available: https://www.weboftrust.info/papers.html
[9] Z. A. Lux, D. Thatmann, S. Zickau and F. Beierle, “Distributed-Ledgerbased Authentication with Decentralized Identifiers and Verifiable Credentials”, 2020 2nd Conference on Blockchain Research & Applications for Innovative Networks and Services (BRAINS), Paris, France, 2020, pp. 71-78, doi: 10.1109/BRAINS49436.2020.9223292.
[10] Hardjono, T. and A. Pentland. “Data Cooperatives: Towards a Foundation for Decentralized Personal Data Management.” ArXiv abs/1905.08819 (2019): n. pag.
[11] T. Hardjono, “Federated Authorization over Access to Personal Data for Decentralized Identity Management,” in IEEE Communications Standards Magazine, vol. 3, no. 4, pp. 32-38, December 2019, doi: 10.1109/MCOMSTD.001.1900019.
[12] Kim Hamilton-Duffy et al., “Use Cases and Requirements for Decentralized Identifiers,” W3C Working Draft 02 September 2020. [online] Available: https://www.w3.org/TR/did-use-cases.