上一篇我们概要介绍了SSI的几个组成部分,包括可验证凭证信任三角、治理框架等,后面的介绍文章我们将分别介绍一下相关的技术。
SSI的堆栈演进到现在,综合整个生态中的关键架构决策,普遍接受的是一个四层模型。
如上图所示,下面的两层主要用于实现技术信任,上面的两层用于实现人的信任,除了体现关键架构决策,每一层都对互操作性有重大影响。
一、标识符和密钥
模型堆栈的底部,定义和管理标识符和密钥,也被称为可信根。生态系统的每一方都可以在不依赖或不受中央机构干预的情况下读写数据。
一个公开可验证的数据注册系统才能确保这个基础的坚固。解决方案就是DID注册系统。W3C的DID注册系统中90%的方法都基于区块链或分布式账本技术。这些方法的共同特点是它们使用账本上的加密地址作为DID。支付地址全球唯一,并且由密钥管理。
依赖现代网络数据库技术也可以实现DID注册系统,现存的大规模数据库由于其覆盖范围广、易用性高,满足DID注册系统所需的鲁棒性和全球规模应用以及分布式要求,不过与SSI所倡导的分布式背道而驰。
二、安全通信和接口
建立了分布式的可信根之后,如何在对等方之间建立安全通信呢?这就依赖数字代理、数字钱包、加密存储的技术,也形成安全的DID到DID的连接,要求连接安全,信息真实未被篡改。
当前互联网中普遍用TLS实现网站安全通信,最普遍的应用就是HTTP,SSI也可以使用TLS来建立安全通信。也可以用DIDComm这种面向消息的、与传输无关的,植根于对等方之间的通信。采用DIDComm时,收件人由DID标记,消息可以通过任何现有网络传输协议传输而安全和隐私保证是相同的。
在接口设计上,SSI的解决方案如下:
- 面向API的接口设计倾向于使用分布式的网站或分布式应用程序。
- 面向数据的接口设计使用加密的数据存储来发现、共享和管理对身份数据的访问。
- 面向消息的接口设计使用基于边缘或云的数字代理,为它们共享的交互提供路由。
三、凭证
如果说第1、2层是机器之间建立加密信任的位置,第3、4层则需要加入人类的信任。无论是什么类型的人类身份,都需要先有支持互操作的可验证凭证,才可以在SSI生态的各方使用。为此必须要解决两个问题:
- 交换什么格式?
- 怎么交换?
对于问题1,目前主要有如下三种:
- JSON Web令牌。JWT的应用极为广泛,但是它无法解释凭证中所需的丰富元数据,需要添加额外的语义处理层。另外,JWT也没有选择性披露的选项。另外,JWT早期的应用都是短期令牌,需要构建额外的撤销机制,但是目前没有相关的标准和工具支持。
- 区块链凭证。BlockCert是经过数字签名的JSON,对描述持证方的属性进行编码,发布到一个由持证方控制的支付地址,地址已经嵌入到JSON中。持证方可以通过证明他们控制了支付地址的私钥来证明凭证归属。
- W3C可验证凭证。一种使用JSON-LD来描述具有不同模式和数字签名格式的证书。由两种风格,通过简单的证书共享或者通过专门的加密签名来促进零知识证明。
对于问题2,这个取决于凭证的交换方式,到底是分发,还是在特定连接中动态生成,目前仍未生成共识。
四、治理框架
之前此系列中已经简单介绍过治理框架,这一层的重点不再是机器和技术,而是人和政策。治理框架是SSI堆栈的技术实现和SSI解决方案的实际业务、法律和社会需求之间的桥梁。Linux基金会也成立了ToIP项目,定义、强化、推广ToIP堆栈,作为分布式数字信任技术设施模型,ToIP堆栈承诺使用可互操作的模型来定义这些治理框架。
五、后记
SSI市场上还不断出现新的架构,还存在诸多分歧。市场在不断推动SSI标准化。其中的关键架构、技术、应用也越来越成熟。
数字身份架构领域的创新在延续,未来大有可为,安当技术有限公司也将持续探索这方面的前沿技术,并在未来安当ASP身份认证产品演进中加入更多适应行业技术发展和客户需求的功能。
文章作者:太白
©本文章解释权归安当西安研发中心所有