微软的去中心化身份——拥有和控制你的身份
执行概要
我们的数字生活和现实生活越来越多地与我们用来获取丰富体验的应用程序、服务和设备联系在一起。这种数字转型让我们能够以以前无法想象的方式与数百家公司和数千名其他用户互动。
但身份数据经常被泄露,影响了我们的社会、职业和财务生活。微软相信有更好的办法。每个人都有权拥有和控制一个身份,一个安全存储其数字身份元素并保护隐私的身份。本白皮书解释了我们如何与多样化的社区携手为个人和组织构建开放、可信、可互操作和基于标准的去中心化身份(DID)解决方案。
我们每个人都需要一个自己的数字身份,这个身份可以安全地、私下地存储我们数字身份的所有元素。
这种自我拥有的身份必须无缝地融入我们的生活,让我们完全控制我们的身份数据如何被访问和使用。
为什么我们需要去中心化的身份
今天,我们在工作中、在家里、在我们接触的每一个应用程序、服务和设备上都使用我们的数字身份。它由我们生活中所说的、所做的和所经历的一切组成——购买活动门票、入住酒店,甚至订购午餐。目前,我们的身份和所有的数字互动都是由其他人拥有和控制的,其中一些人我们甚至不知道。
用户的现状是对大量的应用程序和设备表示同意,这需要高度警惕谁可以访问什么信息。在企业方面,与消费者和合作伙伴的协作需要高度接触的编排,以维护所有相关人员的隐私和安全性的方式安全地交换数据。
我们相信,基于标准的去中心化身份识别系统可以解锁一套新的体验,使用户和组织对自己的数据有更大的控制权,并为应用程序、设备和服务提供商提供更高程度的信任和安全性。
微软的去中心化身份策略
微软的使命是让地球上的每个人都能取得更多成就。
微软云身份识别系统已经使开发人员、组织和数十亿人能够工作、娱乐和取得更多成就,但我们还可以做更多的事情,以创造一个我们每个人,即使是流离失所的人口,都可以追求我们的生活目标的世界,包括教育我们的孩子,提高我们的生活质量,和创业。
为了实现这一愿景,我们需要增加现有的云身份识别系统,让个人、组织和设备都可以拥有这个系统,这样他们就可以控制自己的数字身份和数据。这种自我拥有的身份必须无缝地融入我们的日常生活,提供对我们共享的东西和我们与谁共享它的完全控制,并且在必要的时候,提供收回它的能力。个人需要一个安全、加密的数字中心来存储自己的身份数据,并方便地控制对这些数据的访问,而不是对无数应用程序和服务进行广泛的同意,并将自己的身份数据传播给无数供应商。
以开放标准引领潮流
我们致力于与客户、合作伙伴和社区密切合作,以解锁下一代分散的基于身份的体验,我们很高兴与在这一领域做出不可思议贡献的个人和组织合作。如果要发展DID生态系统,标准、技术组件和可交付代码必须是开源的,并且所有人都可以访问。
微软正积极与去中心身份基金会(DIF)、W3C证书社区组和更广泛的身份社区的成员合作。我们正在与这些组织合作,以确定和制定关键的标准。我们正在开发一个开源的DID实现,它运行在现有的公共链上,作为公共第2层网络,设计用于世界范围的使用。这个实现的目的是建立一个统一的、可互操作的生态系统,开发人员和企业可以依靠它来构建一波新的产品、应用程序和服务,使用户处于控制之中。
去中心化身份是如何工作的?
如今,用户身份的数字表示是许多应用程序和服务中碎片化的数据的混合。
我们需要一种新的身份形式,这种形式将技术和标准结合在一起,以提供关键的身份属性,如自我所有权和抵制审查,这些是现有系统难以实现的。
为了实现这些承诺,我们需要一个由7项密钥创新组成的技术基础—最显著的是,用户拥有的标识符、管理与此类标识符关联的密钥的用户代理以及加密的用户控制的数据存储。
W3C去中心化身份(DIDs)
DIDs用户独立于任何组织或政府创建、拥有和控制。DIDs是链接到分布式公钥基础设施(DPKI)元数据的全局惟一标识符,该元数据由包含公钥材料、认证描述符和服务端点的JSON文档组成。
去中心化系统(例如,区块链和账本)
DIDs起源于提供DPKI所需的机制和特性的分散系统。微软正在参与社区正在开发的标准和技术的开发,以支持各种区块链和账本的DID实现的活跃生态系统。
做用户代理
允许真实的人使用去中心化身份的应用程序。用户代理应用程序帮助创建DIDs,管理数据和权限,以及签署/验证与DIDs相关的声明。微软将提供一个类似钱包的应用程序,可以作为用户代理来管理DIDs和相关数据。
DIF通用解析器
服务器利用一组DID驱动程序为跨实现和分散系统的DIDs提供标准的查找和解析方法,并返回封装了与DID相关的DPKI元数据的DID文档对象(DDO)。
DIF身份中心
一个复制的加密个人数据存储网,由云和边缘实例(如移动电话,PC或智能扬声器)组成,促进身份数据存储和身份交互。
允许真实的人使用去中心化身份的应用程序。用户代理应用程序帮助创建DIDs,管理数据和权限,以及签署/验证与DIDs相关的声明。微软将提供一个类似钱包的应用程序,可以作为用户代理来管理DIDs和相关数据。
DIF通用解析器
服务器利用一组DID驱动程序为跨实现和分散系统的DIDs提供标准的查找和解析方法,并返回封装了与DID相关的DPKI元数据的DID文档对象(DDO)。
DIF身份中心
一个复制的加密个人数据存储网,由云和边缘实例(如移动电话,PC或智能扬声器)组成,促进身份数据存储和身份交互。
确实的证明
DID签名证明是基于标准格式和协议的。它们使身份所有者能够生成、呈现和验证声明。这形成了系统用户之间信任的基础。
去中心化的应用和服务
与Identity Hub个人数据存储配对的DIDs允许创建一类新的应用程序和服务。它们使用用户的身份中心存储数据,并在授予的权限范围内操作。
DID签名证明是基于标准格式和协议的。它们使身份所有者能够生成、呈现和验证声明。这形成了系统用户之间信任的基础。
去中心化的应用和服务
与Identity Hub个人数据存储配对的DIDs允许创建一类新的应用程序和服务。它们使用用户的身份中心存储数据,并在授予的权限范围内操作。
一个示例场景
Alice刚大学毕业。她可以要求学校提供她的毕业证书的数字副本。她可以选择向任何人(比如潜在雇主)出示她的文凭,这些人可以独立核实文凭的颁发人、颁发时间和其状态。
从DIDs开始
为了理解DIDs,可以将它们与当前的身份识别系统进行比较。电子邮件地址和社交网络id是作为协作的友好别名创建的,但现在由于充当协作之外的许多场景的数据访问控制点而负载过重。这带来了一个潜在的问题,因为对这些id的访问可以随时被电子邮件提供商、社交网络提供商或其他外部方删除。
去中心化身份(DIDs)是不同的。DIDs是用户生成的、自拥有的、全球唯一的标识符,根植于分散的系统。它们具有独特的特性,比如更大的不变性保证、对审查的抵抗和篡改的规避。对于任何想要提供自我所有权和用户控制的ID系统来说,这些都是关键属性。
获得一个DID
为了获得一个DID,您使用一个在您控制下的设备来下载一个DID用户代理应用程序。就像web浏览器是一个可信的用户代理,可以帮助您导航web,一个DID用户代理帮助您管理dids的所有方面-标识符的创建,认证,数据加密,以及密钥和权限的管理。关于去中心化身份的一个常见误解是,所有身份数据都暴露在区块链等公共系统上。这是不正确的。微软认为,DID实现应该严格地使用分散的系统来锚定标识符和非pii DPKI元数据(如上所列),从而为DID所有者启用路由和身份验证,而不会有审查的风险。用户的实际身份数据在“链下”加密,由用户单独控制。(有关更多细节,请参阅本文档的“使用个人数据存储的DID交互”一节。)
使用个人数据存储的DID交互
- DID用户代理应用程序组装了一个DID注册负载,其中包括关键引用、身份中心服务端点和恢复所需的公共值。
- 用户代理应用程序生成了一个设备密钥和一个加密的所有者恢复包。
- 用户代理app根据用户选择的DID实现协议,将DID注册负载推送到分布式系统。
主要和成对的DIDs
广泛使用电子邮件地址或社交id作为主要标识符导致了不良做法。用户已经养成了在各种产品和服务中使用相同标识符和密码的习惯。这导致安全性差以及关联和跟踪帐户。
从概念上讲,DIDs可以分为两类:公共DIDs和成对的DIDs。公共DIDs是用户故意选择将自己与面向公众的数据联系起来的ID——例如,一个包含照片和简要描述的小型个人简介。如果您打算以一种可以被其他人验证的方式将活动或交互与您联系起来,那么公共DIDs是合适的。但是,如果你所做的一切都与一个人有关,并且在整个网络上都可被追踪,会带来严重的隐私和安全风险。这就是为什么成对的DIDs是有用的。当用户想要隔离他们的交互和防止相关性时,就会生成成对的DIDs。对于许多用户来说,成对的DIDs可能是他们用于进行身份交互的主要机制。
查找和发现DIDs
一旦你有了一个DID,你可能会问,如果你遇到另一个DID或者想要搜索一个DID,你应该怎么做。
用户代理应用程序是否与DIF通用解析器实例通信以查找DIDs。当一个DID被传递给通用解析器时,解析器使用适当的驱动程序与分散的系统进行接口,并检索匹配的DID文档。
一些DID实现的创建具有发现它们所在的分散系统中存在的所有DID的能力;其他人则缺乏这种能力。微软认为这是一个有价值的特性,因为它允许应用程序和服务确定性地生成一个通用的DIDs目录。这在许多应用程序和服务场景中很有用,如果没有它将很难。
用户代理应用程序是否与DIF通用解析器实例通信以查找DIDs。当一个DID被传递给通用解析器时,解析器使用适当的驱动程序与分散的系统进行接口,并检索匹配的DID文档。
一些DID实现的创建具有发现它们所在的分散系统中存在的所有DID的能力;其他人则缺乏这种能力。微软认为这是一个有价值的特性,因为它允许应用程序和服务确定性地生成一个通用的DIDs目录。这在许多应用程序和服务场景中很有用,如果没有它将很难。
建立DIDs之间的信任
在一个任何人都可以创建账户或获得DID的世界里,你怎么知道基于DID的身份不是假的?就像个人的名誉一样,它开始时并没有证据;它们代表着空的身份,只有所有者才能证明拥有问题的DID。为了获得合法性证据,DIDs需要现有的信任提供者和程序(如企业、教育机构和政府)的支持。基于DID的系统提供了一种机制来创建证明,其中包括对谁在何时发布了背书的独立验证。通过积累来自多个信任系统的这些证明,身份可以随着时间的推移建立更大的信心,以匹配能够访问应用程序或服务的固有风险水平。
与电子邮件标识符和其他当前基于账户的系统不同,DIDs是自己拥有的,与密码密钥绑定,并植根于维护共享的、全球DPKI操作渊源的分散系统。这支持更高级的标识活动,比如创建和验证did签名的证明。证明是独立可验证的声明,一个或多个DID使用它们的密钥签名,以生成关于另一个DID的断言。数据的时间状态可以通过区块链分类账记录并独立验证,而无需信任其他实体或组织来记录发生的时间。
例如,一所大学可能会用它的DID签署一份证明,以证实某人的名字是鲍勃凯利,他是一名在校学生,他的外貌与他的学校照片相符。大学和其他组织可以通过证明对web域的控制或通过更直接/亲自验证的程序来证明DID的所有权。然后,这些组织可以针对现有的证书颁发证词或证明,并使用标准密码密钥套件进行验证。其结果是,在进行身份交互和敏感信息披露之前,您可以要求多个信任提供者提供标准的、可互操作的、可验证的声明,以匹配正在解锁的价值水平。这改变了许多行业的游戏规则。
DIDs的泄露和认证
有几种方法可以使用DID与另一个人、应用程序或服务交互,但最基本的交互是身份验证。为了与外部方认证一个DID,DID的所有者向当事人披露了一个DID。外部方通过DIF通用解析器(可能通过使用DID用户代理应用程序)查找DID,解析器返回匹配的DPKI元数据。外部方通过使用DPKI元数据中的公钥引用来生成质询,并与用户执行握手。如果用户能够完成挑战-响应握手,则证明该用户是所讨论的DID的所有者。微软正在研究将对DID的支持与现有标准(如FIDO/WebAuthn)结合起来的方法,同时保持隐私、信任和安全承诺。
使用个人数据存储的DID交互
如今,用户通常将个人数据存储在本地机器上或使用基于提供商的服务。虽然这些存储选项有它们的位置,但它们经常将个人数据暴露给意想不到的实体访问,而且通常是不为身份交互而设计的通用存储系统。
DIF身份中心是基于用户控制的,链下的,个人数据存储。用户通过他们的DID用户代理应用程序决定他们想要与谁共享数据,以及共享数据的粒度级别。对标识中心的请求是基于与DIDs相关联的称为服务端点的DPKI元数据路由的。身份中心是一个多实例的个人网格,其中的数据是边缘加密的,并由用户许可,以确保隐私设计。身份中心旨在支持广泛的身份交互,并为无服务器、提供者无关、去中心化的应用程序提供基础。
微软认为,一个被广泛接受的个人数据存储标准是解锁这个新生态系统中最引人注目的用例的关键,并且是DIF中致力于DIF身份Hub规范和参考实现的众多成员之一。微软将提供一个DIF的身份中心实例作为Azure服务,用户可以选择作为他们的身份中心实例之一。
管理数据访问的权限
身份中心主机是存储和消息中继的促进器。他们没有解密用户数据的密钥,用户可以撤销/删除任何实体的加密数据访问。使用它们的DID密钥对权限进行签名,并根据它们对数据进行加密。关于身份中心权限规范的细节将在未来几周内公布。
数据的同步和复制
DIF标识中心的一个关键属性是,用户可以利用跨提供者和基础设施边界的多个实例来同步和复制数据,以实现共享状态。但您完全不需要为身份中心使用提供商:身份中心是一种开源服务器技术,您可以在任何设备或基础设施上运行。这确保了您的身份数据不绑定到任何组织,维护去中心化、自我所有权和用户控制的承诺。
构建去中心化的应用和服务
与身份中心配对的DIDs创建了一种新型分散应用程序的基础,其特性和功能支持各种各样的用途:
- 支持与提供者无关的无服务器应用程序,可以将其编写为纯客户端包,将其数据存储在用户的身份中心中,而不管身份中心实例位于何处。这允许应用程序通过一组所有实现都支持的标准api与任何用户的身份中心交互。
- 应用程序、服务和组织用于交换和协作的任何共享模式或数据集的语义、无模型存储数据对象。
- 任何人都可以爬行或订阅的开放数据层,支持跨所有DIDs高效地发现和感知语义数据。所有者是否可以选择发布(必要时撤销)任何类型的数据、意图或表达?这就创造了一个充满活力的、开放的、意图公开的数据市场,可以用于P2P提供发现和价值交换,例如二手商品销售、拼车和度假租赁。
以下是来自不同行业的三个例子,它们说明了当数据交换和存储以这种方式重新定向时可能发生的情况:
- 卖家和零工经济的参与者可以直接将待售物品和其他报价信号发布到一个开放的、分散的市场层,方法是将物品编码为语义报价对象,并通过身份中心暴露它们。
- 患者可以允许医生通过访问其身份中心的HL7 FHIR编码对象来与他们的医疗数据进行交互。HL7 FHIR是一种在医生、保险提供商和医院中经常使用的模式。
- 供应商和零售商可以将产品和服务数据编码到他们的身份中心作为GS1对象,使他们能够比以往任何时候都更有效和安全地交换供应链数据。
恢复受损DIDs
在DID社区中一个悬而未决的问题是,如果控制权因***或相关密钥/设备的丢失而受到损害,如何处理DIDs的恢复。我们认为,如果用户是其数字身份的真正所有者,他们必须配备可靠地恢复自己的DIDs。微软有一个假设,描述了如何授权用户自行恢复密钥。在接下来的几个月里,我们将与社区分享我们的工作和代码的细节。我们期待着在这一重要挑战上与你们合作。
微软在去中心化身份识别方面的进展
在过去的18个月里,微软投资了一套利用区块链和其他分布式账本技术来创建新型数字身份的想法,这些身份是从底层设计的,以增强个人隐私、安全和控制。我们渴望使DIDs成为微软身份堆栈的一流公民。
在接下来的几个月里,我们将提供详细的规范,并在适当的情况下为基于didl的技术组件提供公共代码,包括性能和规模改进以及用于DID恢复的新工具。我们的目标是通过建立用户和开发人员社区可以依赖的关键基础设施来帮助引导这个新的DID生态系统。
关键的理解
- 基于开放标准,用户可以拥有一个或多个DIDs。
- DIDs可以跨链和分类账(公共的、私有的等等)进行解析。
- DID权限通过仅对用户可访问的密钥进行管理。
- 身份属性(或声明)存储在链下DIF身份中心个人数据存储中。
- 用户可以跨设备和云拥有一个或多个身份中心实例。
- 使用粒度访问控制访问证明/声明需要用户同意。
- 声明与现有标准(OAuth 2.0 / OIDC)兼容。