浅析区块链分布式数字身份
身份与数字身份
传统的身份是指主体在特定的关系所处的一种不可让与的地位或资格,例如在我国每个人一出生就是公民身份,成为学生后会增加学生身份等。在传统生活环境下,人们在不同场景通常展示不同的身份,并可以通过身份证、学生证等形式证明身份。
随着信息技术的发展,人们在互联网上有着大量的数字身份,例如由政府部门签发各种电子证件和参与网络活动的网络虚拟身份。电子证件通常体现为实体证件的电子化,便于在线查验,如电子身份证、电子驾驶证等。网络虚拟身份则通常表现为用户在各类网站上注册的用户账号等,例如电子邮箱、微信号等。
而数字化时代的到来,人们拥有的数字身份也变得越来越复杂多变。现在人们从出生以来就参与的各种医疗、政务、金融、教育、消费等活动,使得每个人拥有患者、居民等许多不同的数字身份,数字身份之间可以相互关联,而数字身份的属性也可以变更、隐藏或者废弃。繁多的数字身份可以帮助人们在各类复杂的线上场景下确定身份,但同时数字身份管理复杂、数字身份冒用、隐私保护难以保障等问题也日益凸显。
数字身份的发展
为适应社会和技术的发展需要,工程师们也在不断探索使用新的方式使数字身份更加安全便捷。传统数字身份的发展经历了中心化身份、联盟身份、以用户为中心的身份三个发展阶段,每个阶段的基本特征如下:
(1)中心化身份:通常由单一机构生成、存储、认证和管理维护,如邮箱账号等。由于被中心化机构控制,不同机构间账号不能互认,用户需要记住大量账号密码。由于账号数据通常保存在机构的中心化服务器中,一旦账号泄露容易造成身份冒用和隐私泄露。
(2)联盟身份:通常由多个机构或联盟进行管理,常见的有第三方登录,如微信登录等。联盟身份使得用户不必针对每个应用都去注册新的账户,但该模式通常被互联网巨头垄断,存在垄断企业单点登录限制问题,而且平台通常需要重新收集用户信息。
(3)以用户为中心的身份:其设计初衷是让用户自身控制数字身份,有效避免站点引起的信息泄露,例如OpenID。但该类身份认证方式也存在着提供认证服务的平台存在单点故障,以及关闭身份认证等问题,使用户无法进行登录等问题。
分布式数字身份
随着分布式技术的发展,数字身份也逐步进入到分布式数字身份的新发展阶段,它不仅避免了传统数字身份的跨机构互认、单点登录故障等问题,还允许用户对身份数据拥有数据主权,即由用户自己控制数字身份的授权使用,无需通过中心化系统即可认证数字身份。以W3C推出的去中心化标识符DID(Decentralized Identifier)为例,它允许用户创建系统信任的标识符。基于可信标识符可以向各认证机构申请可验证凭证,不需要经过单一中心的注册认证机构,验证数字身份时也仅需将必要的凭证信息提供给验证方即可。DID基础架构和基本组件关系如下图所示。
图1 DID基础架构和基本组件关系
(来源于W3C DID Core)
(1)DID 主体(DID subject)是可以识别的对象,例如个人、组织或系统。
(2)DID和DID URL。标准的DID通常是一个由前缀、方法标识符和方法特定标识符三部分组成的字符串。前缀标识该字符串是DID,方法标识符定义了如何创建和更新DID和DID文档的方法,方法特定标识符标识该方法内使用的唯一标识符。
图2 DID 数据结构示意图 (来源于W3C DID Core)
(3)DID 文档(DID document)是描述 DID 主体的数据,包含用户公钥、时间戳、DID协议、DID服务请求地址、数字签名等,通过 DID文档证明DID主体的身份。
(4)DID 控制器(DID controller)是指可以修改 DID Document 的主体。DID 控制器可能与DID 主体相同,也可能不同。
(5)可验证数据注册表(Verifiable Data Registry)是指DID 和 DID 文档等数据的存储库。维护各参与者需要使用的身份验证数据,包含标识符、标识符关联密钥、可验证凭证模板、凭证撤销注册表、发行凭证的公钥等。
基于区块链的分布式数字身份
分布式数字身份的出现给复杂的数字身份认证问题带来新的解决方案,但其关键组件“可验证数据注册表”仍一定程度上依赖中心机构,互信问题阻碍其发展。随着区块链技术发展,基于区块链的分布式数字身份有望破解该难题,确保数字身份更加安全可信任。
4.1
区块链分布式数字身份
区块链分布式数字身份主要依托区块链技术,在用户、认证机构、验证机构间搭建一条底层链,利用区块链多中心化、安全不可篡改等特性,将用户数字身份标识、标识文档、身份凭证摘要等信息上链,保障数字身份安全不可篡改。系统中主要角色包括用户、认证机构和验证机构。其中用户可以是拥有区块链分布式数字身份标识的任何人、组织或实物,认证机构是有权进行某项认证并签发可验证凭证的机构,验证机构是指能根据用户数字凭证验证其数字身份的相关业务机构。系统整体结构及主要流程下图所示。
图3 区块链分布式数字身份示意图
区块链分布式数字身份的认证过程主要包含注册数字身份标识、凭证签发、凭证验证、凭证更新及作废等主要步骤,具体业务流程如下:
(1)注册数字身份标识
用户在本地生成公私密钥对,根据标准生成数字身份标识及标识文档并上传至区块链平台。区块链分布式数字身份智能合约根据规则对数据进行校验,校验通过后将数字身份标识保存至链上,标识文档可以保存到链上或其他可靠分布式文件存储系统中,例如将用户数字身份标识保存至Fabric中,将标识文档保存至Fabric或IPFS中。
(2)凭证签发
认证机构响应用户可验证凭证申请请求,根据用户提供的必要信息及认证机构内部信息对凭证内容进行认证。认证通过后,认证机构对相关信息进行数字签名,并将凭证ID、凭证摘要信息、用户数字身份标识、数字签名信息等打包上传至区块链。该步骤既可以是单机构签发凭证,也可以由多机构共同签发凭证。用户凭证明文数据可以存储在用户设备上、用户私有云或加密存储于云服务厂商的托管服务器。可验证凭证示例如下图所示。
(3)凭证验证
当用户需要进行凭证验证时,主动向验证机构出示凭证信息。验证机构根据用户数字身份标识及凭证信息,计算凭证摘要值,将用户凭证摘要与链上凭证摘要进行比对,比对成功后,即可确认用户凭证的真实性,进而确认用户相应数字身份证明信息的真实性。
图4 可验证凭证示意图
(4)凭证更新及作废
认证机构响应用户凭证更新或作废请求时,认证机构可以向区块链分布式数字身份平台发送凭证更新及作废请求。凭证更新或作废后,原凭证无法通过平台校验通过。凭证更新后,用户可通过区块链平台可查询最新凭证状态。
4.2
特点及优势
基于区块链的分布式数字身份体系,在原有分布式数字身份的基础上,通过区块链多中心化、去信任等方式,让用户享有身份数据主权。区块链分布式数字身份有以下优势:
(1)用户身份数据由用户掌握和授权。用户掌握实际身份数据,验证时仅需出示数字身份标识和必要凭证,最大程度降低隐私泄露的风险。基于区块链技术,在用户掌握身份数据的控制权前提下,增强个人数据的控制权。数据需要授权使用时,用户使用私钥对数据使用进行授权并签发授权凭证,可以较大程度上规范数据确权使用。
(2)身份数据防篡改和跨机构身份认证。基于区块链多中心化、安全不可篡改等特性,在认证机构和验证机构之间搭建可信联盟链,链上机构无需第三方信任即可完成用户数字身份验证,能够有效避免身份数据被中心化机构控制,也可以避免认证机构的单点故障。同时,利用链式区块结构和共识算法等方式可保障数字身份标识数据不被随意篡改。
4.3
应用场景分析
以日常生活工作中的证书互认场景为例,人们经常会出示各式各样的证书,比如职业资格证书、技能认定证书、学历证书等。传统的证书验证方法是通过不同的证书验证网站上去进行证书验证,进而证明用户拥有真实的证书文件。而基于区块链分布式数字身份,用户仅需要对每一次证书申请一次数字身份凭证,并将其与数字身份标识绑定,需要验证时向验证方进行展示数字身份及证书凭证,验证方通过数字身份区块链平台对其进行验证,既保护了用户隐私,又方便了验证者进行快速验证。
图5 证书互认数字身份平台示意图
4.4
风险与挑战
(1)密钥和身份信息管理风险。
每个用户的数字身份标识对应有公私钥对,同时每一份可验证凭证都对应有相应的明文信息。用户需要对密钥对和身份明文数据需要进行管理、备份等,存在数据丢失的风险。若采用比特币BIP-32和BIP-39规范生成HD钱包来进行密钥管理,可以降低密钥管理的复杂度,但其仍依赖钱包维护机构的可靠性。而若采用托管的方式保存用户数字身份凭证信息,将导致用户数据可能被云运营商所掌握。
(2)身份信息泄露的风险。
区块链分布式数字身份可以较大程度上控制验证方能看到的身份数据,但该过程中用户难免需要出示凭证明文,而明文数据及其摘要通常是固定不变的。随着数字身份凭证的不断验证,在一定程度上会导致用户身份数据的逐步暴露。如果结合零知识证明等技术,实现数据可用不可见,将能进一步保护用户数字身份安全。
总结
基于区块链的分布式数字身份,可以帮助企业联盟构建以用户为核心的身份认证体系,摆脱单一注册机构依赖,实现多机构数字身份互认和有效避免单点故障。由用户掌握数字身份标识秘钥,保证用户的数字身份数据所有权。用户数字身份数据验证过程中可以实现最小化披露,保证用户数据隐私。未来基于区块链分布式数字身份平台还可以进一步搭建跨机构的可信数据流通体系。该体系在数据使用过程中,可以由用户基于数字身份进行数据使用授权,而认证企业仅需根据用户要求认证数据真实性,可以有效解决数据要素流转过程中的数据授权和数据真实性问题,增进企业联盟间的数据联系。
作者 | 吕 坤
视觉 | 王朋玉
统筹 | 祖德光