带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)

简介: 带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)

3.5 场景4:Bob和Alice通过在线交友网站结识


此场景使 Alice Bob 建立连接,像场景 1 和场景 2 一样。但这一次,将二者引入场景的是中介:一个在线交友网站。由于 Alice Bob 都没有预先建立信任关系,因此这是我们第一个需要可验证凭证的场景。


重要提示:虽然本章中介绍的场景出于说明目的使用了政府颁发的身份证书,但 SSI 基础结构不需要使用政府身份证书,也不需要使用任何其他特定类型的证书。它们出于什么目的接受什么类型的证书将由验证器确定。政府颁发的身份证书只是一种被广泛理解和接受的证书类型。


3.10 所示是相关步骤示意图。

1685357504910.png


1 Bob 与政府身份机构连接。Bob 知道交友网站需要它信任的发行者提供身份证明,这些证明中有一个是政府颁发的身份证书。所以像场景 2 中描述的那样,Bob 首先通过扫描政府身份机构云代理网站上的一个二维码与之建立连接。


2 Bob 向政府身份机构提出要求以获得身份证书。Bob 的边缘代理提示 Bob 需要向政府身份机构提供数据(或他必须实施的其他步骤)来证明他的身份(该机构可能会要求 Bob提供其他可验证凭证的证明)。一旦 Bob 符合该机构颁发政府身份证书的政策要求,该机构就会将证书发送给 Bob 的边缘代理,后者将其存储在 Bob 的钱包中。


3 Bob 按照场景 2 连接到交友网站。


4)交友网站要求 Bob 提供他的政府身份证书的证明。Bob 扫描一个二维码后,提示要提供政府身份证书的证明。Bob 的边缘代理提示 Bob 允许发送证明。Bob 同意了,他的边缘代理生成证明并用这个连接的私钥签名,将其发送给交友网站的云代理。交友网站的云代理通过在以太坊或 Sovrin 等公共区块链上查找政府身份机构的 DID 来验证该证明,以检索带有公钥的 DID 文档。如果该证明通过验证,Bob 就可以使用交友网站了。


5 Alice 以同样的方式加入交友网站。交友网站可能要求也可能不要求 Alice 发送证书证明(图 3.10 中未显示)。然后,Alice 共享了一些个人资料(如果这些资料已经存储在她钱包里的其他证书中,则可以放在其边缘代理的证明中发送)。


6 Bob 请求与 Alice 建立连接。Bob 在交友网站上发现了 Alice 的个人资料,并通过扫描二维码请求连接。就像他在场景 2 中通过 Alice 的博客所做的那样。但这次背景不同了,所以 Alice 更加谨慎。她的边缘代理要求 Bob 分享他的政府身份证书的证明。注意,Alice 可以依赖这样一个事实,即交友网站已经有政策,要求男性会员提供政府身份证书的证明。但是有了 SSIAlice 可以直接向 Bob 请求提供证明。如果交友网站没有正确筛选会员,她也不必担心。


7 Bob 把他的政府身份证书的证明发给 AliceBob 可以一键完成这项操作,因为他的边缘代理做了所有的工作。Alice 的边缘代理通过与 Bob 建立的私有连接接收证明,并像交友网站那样验证该证明。如果该证明通过了验证,则 Alice 接受新连接;如果验证失败,Alice的边缘代理可以立即删除这个连接,而无须打扰 Alice。她的边缘代理实际上充当了 Alice的保护者,以确保任何请求者都符合 Alice 的最低验证要求。


SSI 的更强大之处在于,通过 SSIAlice 不必仅依赖交友网站支持的筛选程序。Alice可以要求她的请求者提供她想要的任何证明。也就是说,她的请求者必须在“访问 Alice”之前就已提供这些证明。这将大大地改变在线交友的生态系统,增强对每位参与者的信任。


3.6 场景5:Alice申请银行账户


这个场景中的案例是一个商业案例,可以清晰地说明可验证凭证的价值。该案例发生在2018 10 月,4 家公司合作在一个名为“Job-Creds”的视频中演示了可验证凭证的原理。视频展示了 Alice 如何先从发证机构获得政府身份证书,然后从雇主(IBM)获得就业证书,最后申请银行账户。图 3.11 展示了整个连接和交互过程。


1 Alice 与政府身份机构连接,后者要求她提供身份证明。在这里假设 Alice 已经有了一个移动钱包和一些政府身份机构可以接受的证书,如公用设施账户或学生证。

2 Alice 接收到她的政府身份证书。一旦政府身份机构验证了 Alice 的证明并确认它们符合政府颁发身份证书的政策要求,就会把证书颁发给 Alice 的边缘代理。


1685357337702.png


3 Alice 与她的入职单位联系,后者要求她提供政府身份证书的证明,这一步通常是Alice 作为新员工入职时需要经历的(应某些司法管辖区的法律要求)。雇主可以通过数字化方式完成这一步以节省开支。


4 Alice 接收到她的就业证书。一旦 Alice 符合单位的入职要求,单位就会给 Alice 发放新的就业证书。


5 Alice 与她想要开户的银行进行连接。注意,Alice 可以扫描任意地方,比如,公交车、地铁、报纸、电子邮件、银行网站等的银行宣传广告上的二维码进行连接。需要注意的是,在这一步中,Alice 的代理首先要求银行证书的证明。连接基本上是双向的,这正是 SSI 基础结构可以预防欺骗和网络钓鱼的原因。一旦 Alice 确认这是真正的银行并完成了连接的设置,她将无须担心通过该连接被欺骗或欺诈,因为只有银行能使用该连接发送她的消息,每条消息将由银行的私钥签署,该私钥只受银行控制。


6 Alice 把她的政府身份证书的证明和就业证书的证明发送给银行。这是银行开立新账户所需的两份证明。但对于 Alice 来说,这只需一个步骤:当她的边缘代理提示 Alice“允许”时,她单击“发送”,剩下的事情就由她的边缘代理处理。


7 Alice 接收到她的银行账户凭证。银行的云代理验证 Alice 的边缘代理发送的两份证明。如果证明通过了验证,就完成了开通新账户的全数字流程,并向 Alice 发送她的新银行账户凭证。


现在 Alice 有了一个新的银行账户,从 Alice 拥有她的政府身份证书和就业证书那一刻开始,银行也有了一位新客户。新客户在银行的开户过程可以在一分钟内完全以数字化方式完成,而通常这一过程需要客户亲临现场并花费数小时。而且,其结果比同等的离线开户过程更安全,因为所有的凭证都可以使用强大的密码学技术进行验证,而不是由银行员工使用纸质验证或塑料凭证,且这些凭证很容易伪造。


3.7 场景6:Alice买车


有了新证书,Alice 现在可以把很多其他类型的交易简化和自动化,这对她自己和与她互动的企业或机构都有好处。图 3.11 展示了 Alice 购买新车的过程。在本场景中,我们假设情况如下。


1 Alice 已经和银行、汽车经销商和发证机构建立了联系。

2)她已经挑好了车,并和汽车经销商谈好了价格。

3)她有资格从银行获得汽车贷款。


以下是 Alice 采取的步骤。

1 Alice 为了申请贷款向银行证明了自己的身份。因为这是一次重大交易,银行请求她提供其他的凭证(例如,她的政府身份证书)以确保确实是 Alice 在申请贷款,如图 3.12 所示。


1685354483210.png


2 Alice 从银行接收到贷款凭证和付款授权凭证。Alice 可以使用贷款凭证证明她已被授权接受贷款;她可以使用付款授权凭证向汽车经销商付款。


3 Alice 办好了从汽车经销商处购买汽车的手续。Alice 将她的付款授权凭证的证明发送给汽车经销商,由汽车经销商安排付(尽管图 3.12 中未显示,但在该过程中也可以使用汽车经销商和 Alice 的银行之间的 SSI 连接)。


4 Alice 从汽车经销商那里接收到她的购买收据凭证。这是一个采用可验证凭证的形式交付数字收据的例子,这个强大的新工具适用于各地的消费者和商家(参见第 4 章)。


5 Alice 向发证机构申请注册她的新车。Alice 出示了她的购车收据凭证和银行贷款凭证。这两份证明包含了发证机构为 Alice 签发车辆注册证书时所需要的所有信息,包括车辆识别码(VIN)。


6 Alice 接收到她的车辆注册凭证。该凭证直接进入了她的数字钱包,和她的其他证件存储在一起。


7 Alice 与她的新车建立了联系。这是一个 Alice 与“物”(如在物联网中)而不是“人”或“组织”连接的例子。这个场景和我们前面的例子一样,只不过在这种情况下,Alice 扫描的是汽车上的二维码(如在车窗贴纸或汽车的数字显示器上)。


8 Alice 证明了她对这辆车的所有权。二维码要求提供车辆注册凭证的证明,不是针对任何一辆车,而是针对具有特定 VIN 的那辆车。那正是发证机构签发给 Alice 的凭证,因此 Alice 的边缘代理将其发送给汽车的边缘代理(作为汽车车载计算机的一部分运行)。一旦汽车的边缘代理验证了该凭证,汽车自动解锁,Alice 就可以把它开走了。


虽然最后这一步看起来像是科幻电影中的场景,但也是非常真实的。2018 年 3 月,本书作者之一向美国国土安全部的研发部门演示了如何使用可验证凭证解锁汽车。随着我们向全电动汽车、车载计算机和自动驾驶汽车的领域发展,未来汽车的钥匙很可能是你智能手机上的一张可验证凭证(如果是这样,想要把车钥匙“委托”给家人或朋友,这事就变得非常容易,不必进行实物复制。这些数字“钥匙”甚至可以有时间或使用限制,你可以给孩子一把钥匙,允许他们开车去看电影,但不能开车出城)。


3.8 场景7:Alice把车卖给Bob


在最后一个案例中,我们将前面的所有场景集合在一起,在这个场景中展示了人对人、人对企业及人对物等多个关系。Alice 将她在场景 6 中购买的汽车卖给 Bob(她通过场景 1、24 遇到了他)。这个案例有很多步骤,为了便于理解,我们将其分成两部分。A 部分展示了 Bob Alice Bob 买车做出财务安排的步骤,如图 3.13 所示。假定场景如下。


1 Bob Alice 已经谈妥了这辆车的价格。

2 Bob 的信用社已批准向他提供汽车贷款。

3 Bob Alice 都住在同一个发证机构服务管辖区内。


1685354237721.png


A 部分的步骤如下。

1 Bob 向他的信用社证明了他的身份,请求贷款。这和 Alice 在场景 6 中采取的第一步是一样的。


2 Bob 从他的信用社接收到一份贷款凭证和一份付款授权凭证。


3 Bob 把他的付款授权证明发送给 Alice。现在 Alice 只需要完成她那一方的交易。


4 Alice 将她的付款授权凭证的证明转发给她的银行。她还发送了一份她打算付清的贷款凭证的证明。Alice 的银行用这些证明来安排直接从 Bob 的银行付款,用来付清 Alice的贷款。


5 Alice 接收到其贷款凭证的更新信息,显示贷款已经还清。Alice 不仅可以使用这份经过更新的凭证转移 B 部分的汽车注册,还可以在将来向其他任何人证明自己的信用。


B 部分(如图 3.14 所示)展示了转让汽车所有权和注册的剩余步骤。


1685354290240.png


6 Alice 将她最新的贷款凭证的证明发送给发证机构。这证明银行已经解除了留置权,Alice 可以自由出售这辆车。


7 Alice 从发证机构接收到最新的车辆注册凭证。现在 Alice 准备完成与 Bob 的交易。


8 Alice Bob 发了一张购买收据和一份最新的车辆注册凭证的证明。这些正是 Bob需要从 Alice 那里获取的两份数字文件,用来申请注册新车。


9 Bob 向发证机构申请注册新车。与场景 6 中的 Alice 一样,Bob 发送一份购买收据的证明和一份贷款凭证的证明。Bob 还转发了 Alice 的车辆注册证明。发证机构核实所有证明并确认:Alice 曾拥有这辆车,她已经把它卖给了 Bob,而 Bob 从信用社贷款购买了这辆车。


10 Bob 收到他的车辆注册凭证。同时,发证机构注销了 Alice 的车辆注册凭证,因此,一旦汽车的边缘代理检测到 Alice 的车辆注册凭证已被注销,她的汽车虚拟“钥匙”就停止工作。


(11) Bob 连接他的新车并开锁。这和 Alice 在场景 6 最后采取的步骤是一样的,只是现在 Bob 是新车主。


3.9 总结


本章采用了第 2 章中的 SSI 组件并将它们组合在一起来阐明需要身份和信任的各种常见场景。


1)要了解白领犯罪,侦探的箴言是“追踪资金流向”;而要理解 SSI 的工作原理,我们的箴言是“追踪证书和证明”。


2)理解 SSI 基本技术流程所需的全部工作就是绘制出需要建立信任的参与者(人、组织、事物)、为他们分配的代理(边缘或云)、在他们之间建立的连接,然后签发证书并提供证明以满足所有的信任需求。


(3)这些“代理对代理”的交流常常直接反映了现实世界中人们面对面的交流,也可以反映出在当今网络上同样的交流是如何进行的,即通过代表一方的网站或接入多方的网站或服务(如社交网络、交友网站、在线社区)。


4 SSI 连接一旦建立,还可以为任何 SSI 化网站或 App 提供无密码登录服务,可以在任何时候发送和接收凭证和证明,并且只要双方需要就可以持续下去,而不需要依赖任何中介机构。


5)整个多方的工作流程,如申请工作、购买汽车或一个人将汽车卖给另一个人,都可以通过相同的 SSI 组件组合起来实现。


目前尚不清楚的是,这种实现数字信任的新模式究竟能产生多大的价值,而这正是第 4章的主要内容。

相关文章
|
2月前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
35 0
|
29天前
|
存储 分布式计算 Hadoop
Hadoop【基础知识 01】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)
【4月更文挑战第3天】Hadoop【基础知识 01】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)
42 3
|
29天前
|
存储 分布式计算 监控
Hadoop【基础知识 01+02】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
75 2
|
17天前
|
存储 NoSQL 分布式数据库
【Flink】Flink分布式快照的原理是什么?
【4月更文挑战第21天】【Flink】Flink分布式快照的原理是什么?
|
1月前
|
消息中间件 存储 监控
解析RocketMQ:高性能分布式消息队列的原理与应用
RocketMQ是阿里开源的高性能分布式消息队列,具备低延迟、高吞吐和高可靠性,广泛应用于电商、金融等领域。其核心概念包括Topic、Producer、Consumer、Message和Name Server/Broker。RocketMQ支持异步通信、系统解耦、异步处理和流量削峰。关键特性有分布式架构、顺序消息、高可用性设计和消息事务。提供发布/订阅和点对点模型,以及消息过滤功能。通过集群模式、存储方式、发送和消费方式的选择进行性能优化。RocketMQ易于部署,可与Spring集成,并与Kafka等系统对比各有优势,拥有丰富的生态系统。
145 4
|
2月前
|
缓存 算法 关系型数据库
深度思考:雪花算法snowflake分布式id生成原理详解
雪花算法snowflake是一种优秀的分布式ID生成方案,其优点突出:它能生成全局唯一且递增的ID,确保了数据的一致性和准确性;同时,该算法灵活性强,可自定义各部分bit位,满足不同业务场景的需求;此外,雪花算法生成ID的速度快,效率高,能有效应对高并发场景,是分布式系统中不可或缺的组件。
102 2
深度思考:雪花算法snowflake分布式id生成原理详解
|
2月前
|
存储 负载均衡 NoSQL
【分布式技术架构】「Tomcat技术专题」 探索Tomcat集群架构原理和开发分析指南
【分布式技术架构】「Tomcat技术专题」 探索Tomcat集群架构原理和开发分析指南
52 1
|
2月前
|
存储 Java 应用服务中间件
【分布式技术专题】「架构实践于案例分析」盘点互联网应用服务中常用分布式事务(刚性事务和柔性事务)的原理和方案
【分布式技术专题】「架构实践于案例分析」盘点互联网应用服务中常用分布式事务(刚性事务和柔性事务)的原理和方案
59 0
|
2月前
|
缓存 应用服务中间件 数据库
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(多级缓存设计分析)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(多级缓存设计分析)
41 1
|
2月前
|
存储 缓存 监控
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(场景问题分析+性能影响因素)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(场景问题分析+性能影响因素)
45 0