分散式标识符(DID)-万物互联互信的基石

1.简介
分散式标识符(DID)-万物互联互信的基石_第1张图片
分散式标识符(Decentralized Identifier),简称DID,用于可验证的“自我主权”数字身份的新型标识符。DID独立于任何集中注册表,身份提供者或证书颁发机构,具有全球唯一性、可解析性高、可加密、并且能够加密验证的特点。DID通常与加密内容相关联,例如公钥和服务终端,用于建立安全的通信信道。DID对于受益于自分配,可加密验证的标识符(例如个人标识符,组织标识符和物联网方案标识符)的任何应用程序都很有用。例如,W3C(证书社区小组)大量使用分散式标识符来认证人员,组织和事物,并实现许多安全的隐私保护凭证。
分散式标识符(DID)-万物互联互信的基石_第2张图片
表面上看,分散式标识符(DID)只是一种新型的全球性的唯一标识符,但在更深层次上,DID是互联网的一种全新的分布式数字身份,同时,它也是公钥基础设施(PKI)层的核心组成部分。这种分布式的公钥基础设施(DPKI)可能对全球网络安全和隐私与加密网络流量(现在是世界上最大的PKI)的SSL / TLS协议具有同等重要的影响力。

作为DID架构的新手不仅需要了解DID规范,而且还要了解目前正在开发的DID相关规范系列所代表的分布式身份的整体架构。它涵盖:
(1)背景介绍:DID的起源和DID规范
(2)DID与其他全局唯一标识符的区别
(3)如何调整DID的语法以适应分布式的网络
(4)DID如何解析,包含公钥和服务节点的DID文档
(5)DID方法在DID基础架构实施中的关键作用
(6)使用DID的隐私考虑因素
(7)DID基础架构如何为可验证的凭据奠定基础 。
传统的身份管理系统基于集中的权限,例如公司目录服务,证书颁发机构或域名注册。从加密信任验证的角度来看,这些集中式权限中的每一个都是其自己 的信任根。要使身份管理跨这些系统工作,需要实现联合身份管理。分布式账本技术(DLT)的出现,有时被称为区块链技术,为完全分散的身份管理提供了机会。在分散的身份系统中,实体可以自由使用任何共享的信任根。全球分布式分类账(或提供类似功能的分散式P2P网络)提供了一种管理信任根的方法,既没有集中权限也没有单点故障。DLT和分散式身份系统结合使用使任何实体都能够在任意数量的独立信任根上创建和管理自己的标识符。

实体由分散标识符(DID)标识。他们可以通过证明(例如,数字签名,隐私保护生物识别协议等)进行身份验证。
DID指向DID文档。DID文档包含一组用于与实体交互的服务端点。遵循隐私设计的格言,每个实体可以根据需要拥有尽可能多的DID,以尊重实体所希望的身份,人物角色和背景的分离。

要将DID与特定分布式分类帐或网络一起使用,需要在单独的DID方法规范中定义DID方法。DID方法指定在特定分类帐或网络上如何注册、解析、更新和撤销DID的规则集。
分散式标识符(DID)-万物互联互信的基石_第3张图片
此设计消除了对集中式注册表的依赖性以及密钥管理的集中式证书颁发机构 - 分层PKI(公钥基础结构)中的标准模式。由于DID驻留在分布式分类帐上,因此每个实体都可以充当其自己的根权限 - 称为DPKI(分散式PKI)的体系结构。注意,还可以为在联合或集中身份管理系统中注册的标识符开发DID方法。就他们而言,所有类型的标识符系统都可以添加对DID的支持。这在集中式,联合式和分散式标识符的世界之间建立了互操作性桥梁。
(1)DID的动机
对分散式标识符的需求日益增长,对于仍适合Web体系结构的新类型URL产生了两个特定要求,并且还有一些额外要求,即更传统的URL(如基于HTTP的URL)没有:
分散式标识符(DID)-万物互联互信的基石_第4张图片
(a)新类型的URL 不应该需要集中的权限来注册、解析、更新或撤销标识符。今天绝大多数URI都基于DNS名称(域名)或IP地址,这些名称(域名)或IP地址依赖于集中授权进行注册和最终控制。可以在没有任何此类权限的情况下创建和管理DID(URI与URL详解链接:https://blog.csdn.net/readiay/article/details/52862379)。
(b)可以加密验证其所有权和相关元数据(包括公钥)的URL。通过DID和DID文档进行身份验证利用与分布式分类帐相同的公钥/私钥密码术。
(2) 人类友好标识符的作用
DID实现全球唯一性,无需中央注册机构,然而,这是以牺牲人类可记忆性为代价的–能够生成全局唯一标识符的算法自动生成没有人类意义的随机字符串。这证明了关于被称为Zooko三角形的标识符的公理:“人类有意义,分散,安全挑选任何两个”。
分散式标识符(DID)-万物互联互信的基石_第5张图片
当然有许多用例是将人性化的标识符映射到DID - 自然语言名称,域名或DID所有者的传统地址,例如移动电话号码,电子邮件地址或博客URL,但是,将人性化标识符映射到DID(并且以可以验证和信任的方式这样做)的问题超出了本规范的范围。这个问题的解决方案(有很多)应该在引用本规范的单独规范中定义。强烈建议此类规范仔细考虑:(a)基于欺骗用户关于目标实体(人,组织等)的真正人类友好标识符的众多安全攻击,以及(b)使用和目标实体(人,组织等)相关的人性化标识符的隐私后果,特别是如果它们是全球唯一的。

2.DID与其他全球唯一标识符的区别
目前,标识在中心化机构(如ICANN)集中注册的方式一直被世人所诟病,对不需要集中注册机构的全球性唯一标识符的需求并不新鲜。 20世纪80年代,UUID(通用唯一标识符的简称,也称为GUID,全球唯一标识符)就是为解决这一需求而开发的,首先由开放软件基金会标准化,然后由IETF RFC4122进一步完善。
分散式标识符(DID)-万物互联互信的基石_第6张图片
对永久性标识符(可以一次分配给实体并且永远不需要更改的标识符)的需求也不是新的。这类标识符首先由IETF RFC2141标准化为URN(统一资源名称) ,最近由RFC8141进一步标准化。但是,作为一项规则,UUID不能实现全球解析,URN(如果可解析)需要依赖集中注册机构,此外,UUID或URN本身都不具备第三个特征 - 能够以加密方式验证标识符的所有权。对于可以定义为不依赖于任何机构集中授权的永久性可移植身份的自我主权身份,我们需要一种新的标识符来满足所有四个要求:持久性、全球可解析,加密可验证性和分散性。

3.DID的格式
2016年,DID规范的开发人员同意Christopher Allen的建议,即DID可以通过遵循与URN规范相同的基本模式来适应多个区块链:
分散式标识符(DID)-万物互联互信的基石_第7张图片
关键区别在于,对于DID,名称空间组件标识DID算法(DID Method),DID算法规范决定特定标识符的格式。
分散式标识符(DID)-万物互联互信的基石_第8张图片
DID算法定义了DID如何与特定区块链一起使用。所有DID算法规范都必须定义标识符的格式和生成规则,而算法特定标识符字符串在该DID方法的名称空间中必须是唯一的。

4.DID文件(DID Document)
DID的基础设施是一个全球性可拓展的数据库,其中包括了所有与DID兼容的区块链,分布式分类账或分散式网络。在此虚拟数据库中,密钥是DID,值是 DID文档。DID文档的目的是描述引导所标识的实体的加密可验证交互所必需的公钥,认证协议和服务节点。
分散式标识符(DID)-万物互联互信的基石_第9张图片
DID文档是一个有效的JSON-LD对象,它使用DID规范中定义的DID上下文(属性名称的RDF词汇表)。这包括六个组件(全部可选):
(1)DID本身,因此DID文档完全是自我描述的
(2)一组加密材料,例如公钥,可用于身份验证或与DID主题交互
(3)用于与DID主题交互的一组加密协议,例如身份验证和功能划分
(4)一组服务端点,用于描述与DID主题交互的位置和方式
(5)审计时间戳
(6)可选的JSON-LD签名,用于验证DID文档的完整性。

5.DID算法(DID Method)
DID和DID文档可以适应任何现代区块链,分布式分类帐或其它能够将唯一密钥解析为唯一值的分散网络,不管共有区块链、联盟链还是私有链。
定义如何在特定区块链或“目标系统”上创建、解析和管理DID和DID文档是DID算法规范的作用。DID算法规范属于通用的DID规范,正如URN命名空间规范(UUID,ISBN,OID,LSID等)属于通用IETF URN规范(RFC 8141)。
DID算法规范通常为特定目标系统定义以下操作:
(1)创建。某些DID算法可以直接从加密密钥对生成DID,其他人可以在区块链上使用交易地址或智能合约。
(2)读。一些DID算法使用可以直接在区块链上存储DID文档的区块链。其他人可能会指示DID解析器根据区块链记录的属性动态构建它们。还有一些人可以将区块链上的指针存储到诸如IPFS或STORJ之类的其它分布式存储网络上的一个或多个部分中的DID文档。
(3)更新。从安全角度来看,更新操作是最关键的,因为DID文档的控制表对实体进行身份验证所需的公钥或证据的进行控制(因此攻击者可以冒充实体)。由于DID文档更新权限的验证只能由目标区块链强制执行,因此DID算法规范必须精确定义如何对任何更新操作执行身份验证和授权。
(4)删除。根据定义,区块链上的DID条目是不可变的,因此在传统的数据库意义上它们永远不会被“删除”,但是,它们可以在加密意义上被撤销。DID算法规范必须定义如何执行此终止,例如,通过写入空DID文档。

6.DID和隐私设计
隐私是任何身份管理解决方案的重要组成部分, 对于使用不可变公共区块链的全球性身份系统而言,这一点尤其重要。值得庆幸的是,DID架构可以在最低级别的基础架构中集成隐私设计,因此如果使用以下最佳实践进行部署,则可以成为一种强大的、新的隐私保护技术:
(1)成对。虽然DID可以用作众所周知的公共标识符,但它们也可以用作基于每个关系发布的私有标识符,因此,与具有单个DID的人(例如手机号码或国民身份证号码)相比,她可以拥有数千个成对唯一的DID,这些DID在未经她同意的情况下无法关联,但仍然可以像地址簿一样轻松地进行管理(身份分身术)。
(2)离线私人数据。在公共区块链上存储任何类型的个人身份信息(PII),甚至加密或哈希都是危险的,原因有两个:1)加密或哈希数据是与多方共享数据时的全局关联点, 2)加密最终是否被攻破(例如,量子计算),数据将永远可以在不可变的公共分类账上进行访问。因此,最佳做法是将所有私有数据存储在链外,并仅通过加密的私有对等连接进行交换。
(3)选择性披露。DID实现的分散式PKI(DPKI)为个人提供了两种更好地控制其个人数据的方式。首先,它允许使用加密的数字凭证共享它;其次,这些凭证可以使用零知识证明加密技术来最小化数据,例如,您可以在不披露您的确切生日的情况下披露您已超过一定年龄。

7.DID和可验证证书(VC)
分散式标识符(DID)-万物互联互信的基石_第10张图片
DID只是分布式身份基础设施的基础层,下一个层次是可验证的凭据,这是数字签名电子凭证的技术术语,符合W3C可验证声明工作组正在开发的互操作性标准。
DID可用于识别可验证凭证生态系统中的各种实体,例如发行人、持有人、主题和验证者,更一般地,DID可以用作人员,设备和组织的标识符。

参考:
1.Decentralized Identifiers (DIDs) v0.11 Data Model and Syntaxes for Decentralized Identifiers (DIDs)
链接:https://w3c-ccg.github.io/did-spec/#bib-uri
2. A Universal Resolver for self-sovereign identifiers
链接:https://medium.com/decentralized-identity/a-universal-resolver-for-self-sovereign-identifiers-48e6b4a5cc3c
3. Shedding a Light on Decentralized Identifiers
链接:https://medium.com/metadium/shedding-a-light-on-decentralized-identifiers-d1ece3d5f3e8?source=search_post---------4

蔡孟迪 Alex Cai
邮箱:[email protected]
社交链接:https://twitter.com/alexcai35258487
手机:181 1007 6739
中国信息通信研究院 工业互联网与物联网研究所

你可能感兴趣的:(区块链技术)