分散标识符–互联网的“缺少身份层”

分散式身份或标识符(DID)只是具有多个属性的方案,这些属性唯一地定义了人员,对象或组织。传统的身份管理系统基于集中式机构,例如公司目录服务或证书机构。 DID完全受DID主题的控制,独立于任何集中式注册表,身份提供者或证书颁发机构. 

区块链技术的出现提供了实施完全分散式身份管理(DIDM)的机会。在DIDM中,所有身份所有者以全球分布的分类帐的形式共享共同的信任根.

每条DID记录均由身份所有者控制下的私钥加密保护。人们认为它是重新定义Internet的安全性值的缺失链接,因为它可以成为Internet的标识层。 DID的规范是由万维网联盟(W3C)创建的.

DID的优点

DID规范的合著者兼首席执行官的Markus Sabadello 多瑙河技术, 解释了使用DID的一般好处:

“ DID是一项重要的创新,因为它使我们能够建立持久,安全且可全球解析的数字标识符,但它们的创建不需要中央机构或中介机构。”

DID完全由它们所引用的实体控制,因此是通常称为DID的基本构建块 "自我主权身份" 或者 "分散身份".

想象一下,您的电话号码不是由移动运营商分配给您的,而是您自己选择的。世界上任何人都仍然可以打给您,而且没人能把那个电话号码从您身边夺走-DID与这种情况相似.

从技术上讲,DID是有效的统一资源标识符(URI),因此它们与许多通用Web技术兼容。它们不限于单个用例或协议.

另一个好处是DID设计为可与不同的区块链和其他目标系统配合使用,因此提供了互操作性.

DID的用途是什么?

DID可用于识别任何数字或现实资源,例如文档,个人,公司或物理对象。通常,DID本身并不能证明其唯一性,也不能证明其所有者具有其他任何特征。 DID仅仅是一个标识符。您可以并且在许多情况下应该具有多个DID,用于不同的目的,关系和事务.

但是,即使DID本身并不能提供太多有关所有者的信息,您也可以在DID之上使用协议来验证许多东西。为了简单地证明您控制了某个DID并加以使用(例如登录网站),您可以使用一种称为DID Auth的质询/响应协议。这实现了类似的功能 "分散身份" 就像OpenID Connect一样 "联合身份".

为了证明有关DID所有者的更复杂的事实,例如年龄,拥有有效的驾驶执照或组织的成员身份,您可以使用 可验证的凭证, W3C正在对其进行标准化.

可验证凭证是由发行人证明有关DID的声明。然后,它们可以在交易期间由DID的所有者用作证明。与DID关联的声明的范围和语义没有限制;它们可以像构成我们社会的所有现实生活中的人类和组织身份一样丰富.

DID结构示例

DID可能有许多变体。完整的规格文件可在以下位置找到 W3C. 以下是定义DID的一种可能方法。我们在这里看到的是DID的简单定义,包括创建日期,上次文档更新的日期,签名字段(可选)和“ authorizationCapability”。最后一个字段包含引用其他DID的对象,这些对象获得对此DID的特定权限。例如,ID为215cb1dc-1f44-4695-a07f-97649cad9938的DID收到更新此DID的权限.

DID示例

资料来源:W3C-https://w3c-ccg.github.io/did-spec/#requirements-of-did-method-specifications

“签名”字段经常被误解。这 "签名" 字段仅证明DID文档未被篡改,并且签名者在签名时控制了某个私钥。但是,签名不能证明签名者是实际的DID所有者。因此,尽管它可以是附加的安全功能,但在使用DID时不能单独依靠它。这类似于在Bitcointalk.com论坛上公开放样PGP密钥以证明您拥有与您的Bitcointalk帐户关联的密钥的过程.

马库斯·萨瓦德洛(Markus Sabadello)表示,“权限”字段是DID规范中的不稳定元素,可能会被删除。其目的是表达有关谁可以更新DID文档的权限。但是,这有一些问题:

  1. 关于如何管理更新,不同种类的DID(DID方法)具有非常不同的想法和可能性。有关DID更新的任何授权信息应由那些特定的DID方法指定,而不是对所有DID以通用的方式进行授权.
  2. 我们一直在寻找一种称为对象功能的替代模型,而不是用于表达权限的传统访问控制列表。这是该规范的一个示例,与DID非常相似.

链接到DID的对象功能

资料来源:W3C-https://w3c-ccg.github.io/ld-ocap/

用例

最简单的示例是登录网站。您将拥有一个存储您的DID和关联密钥的数字钱包,并且您可以使用浏览器插件或应用程序弹出,并在登录时要求确认。该想法与MetaMask插件有点相似,但不太先进.

另一个例子是 "拥有自己的身份" 在线购物时。您可以在网上商店买书,结帐时,只需提供DID(再次使用插件或应用程序)即可。这样,您无需共享商店网站就可以共享送货地址和付款信息。我们甚至可以划定界限,将现实世界中的链接客户忠诚卡(我们在每家商店中都能获得一小笔折扣)与去中心化标识符的ID字段联系起来.

最后,一个更高级的示例是分布式通讯簿。您可以与朋友以及您关心的企业保持联系,并与他们共享您的个人地址和其他个人资料信息,并具有完全的控制权,透明性和数据可移植性。每次您的个人资料信息更改时,您的连接都会被自动通知。 DID可以在DID所有者之间建立终生联系,没有人可以夺走您.

DID增强安全性

要了解DID如何增强安全性,我们首先需要熟悉什么是公钥基础结构(PKI)。 PKI主要用于加密和/或签名数据。加密数据是指以使授权人员以外的其他人无法读取的方式对其进行加密。 PKI基于称为数字证书(也称为X.509证书)的机制。将证书视为虚拟ID卡。 PKI也称为证书颁发机构(CA)。例如,VeriSign是著名的CA,用于通过提供由其签名的SSL / TLS证书来创建信任网络。.

由于PKI使用集中式数据库来存储此信息,因此我们可以将DID视为PKI的分散式变体。 DID是去中心化公钥基础结构(DPKI)的基础.

这意味着DID之间的所有数据共享和消息传递都使用与DID相关的加密密钥进行身份验证和加密,这与传统的PKI相似,但没有传统的证书颁发机构的缺点.

过去有许多示例证明,Web服务器使用的现有TLS证书体系结构很容易受到审查和操纵。使用DID,可以消除这种中间人的威胁,因为每个DID都代表自己的 "信任的根源". 这意味着它们不必受到中央机构的控制和发布即可获得信任.

另一个重要的安全功能是DID是持久的。这意味着可以通过各种机制安全地旋转和撤消与DID相关联的加密密钥,而不必创建新的DID。我们将在下一个小标题下深入研究“撤销”方面.

删除或撤消DID

W3C关于分散式标识符的规范的最新版本(v0.7)讨论了可以在其中找到“删除/撤销”的不同DID操作。这很奇怪,因为分散账本技术(DLT)本质上是不可变的。让我们进一步探讨这方面.

发出初始交易以创建DID后,可以更新其他交易,并且 "撤销" 或者 "终止", DID。即使DID的历史记录可能是仅追加且无限期存在的,但DID的当前状态仍由所有事务的累加总和定义.

如果将特殊交易添加到该历史记录,则将DID标记为 "被撤销". 另外,请注意,尽管DLT具有有用的属性,使其适合DID创建和存储,但DLT并不是DID唯一可能的技术。还可以使用分散式哈希表(DHT),分布式文件系统(IPF),数据库(BigchainDB)或其他分散式网络来创建DID.

DID规范的状态

尚有一些尚待解决的问题,但DID的W3C工作组预计将在2018年3月或4月之前发布相对稳定的实施者草案。达成最终的W3C标准是一个漫长的过程,他们尚无法预测.

此外,W3C还在开发工具,例如通用解析器,它可以用作标识符解析器并与任何分散的标识符系统一起使用。实现可用于Java和Python3编程语言.

未来和最后的想法:

马库斯·萨瓦德洛(Markus Sabadello)表示:“我们中从事DID研发的人们对这项技术的兴趣异常浓厚。我们认为DID就是最终有机会实现DID "身份层缺失" 互联网." DID有可能取代当前的许多Internet身份基础结构,包括用户名,域名,证书颁发机构和集中式身份服务(如 "用Facebook登录". 可能需要一些时间来适应 "分散身份" 范式,但它将成为身份验证,数据共享和消息传递如何工作的更好基础.