【区块链 | DID】白话数字身份

news2024/11/23 16:55:10

《十四五数字经济发展规划》提出建立健全政务数据共享协调机制,加快数字身份统一认证和电子证照、电子签章、电子公文等互信互任,推进发票电子化改革,促进政务数据共享、流程优化和业务协同。在数字经济逐渐成形的背景下,推进数字政务进行数字化转型,数字身份承担着重要的任务。

1 身份与数字身份

1.1 身份

身份是一个人属于某一国家成员的法定身份的延伸,传统社会中的物理身份通常采用一系列的纸质材料来证明“我是我”。这些身份证明可以是证明法定身份的身份证,也可以是基于法定身份的延伸,如证明学历的毕业证等。

1.2 数字身份

随着互联网的出现和普及,身份有了另外一种表现形式,即数字身份。一般认为,数字身份的演进经历了三个阶段,分别是:中心化数字身份、联盟式数字身份、分布式数字身份。

(1)中心化数字身份:由单一的权威机构进行管理和控制的数字身份;

(2)联盟式数字身份:由多个权威机构或者联盟进行管理和控制的数字身份,用户的身份数据具备了一定程度的可移植性;

(3)分布式数字身份:由分布式基础设施改变应用厂商控制数字身份的模式,让用户控制和管理的数字身份,通过将数据所有权归还用户从根本上解决隐私问题。

从身份发展的全生命周期看,身份从诞生到使用包含四个阶段:注册、签发、认证和管理,以及三个参与方:身份所有方(用户)、身份提供方(签发机构)、身份依赖方(有身份验证需求)。

图片

图1 身份全生命周期流程图

(1)注册:用户向身份所有方发起身份认证请求;

(2)签发:身份提供方接收到用户发起的身份认证请求,成功记录并承认用户身份,给用户签发可识别的身份标识;

(3)验证:身份所有方在信赖身份提供机构的依赖方使用身份时,通过技术手段,验证身份的真实性、有效性;

(4)管理:对数字身份的管理,包括但不限于:身份的存储、更新、撤销、授权等。

2传统数字身份

2.1 概述

传统数字身份的实现方式多以中心化和联盟式为主,从互联网业务看,用户的身份和数据已实现了数字化和网络化,互联网公司具备一整套成熟的身份管理系统,从加密信任验证角度看,每个中心化管理机构充当信任根,并可能联合多机构实现身份信任背书。

2.2 痛点

伴随着传统数字身份多年的发展,其暴露了诸多问题。

(1) 身份数据分散、重复认证、多地认证问题

传统数字身份通常由一个或多个权威机构或联盟管理和控制,导致身份认证系统各不相同,需要重复认证。例如,在金融场景下,同一公民去不同的银行开户需要分别进行KYC(Know Your Customer, KYC),用户体验繁琐,身份数据相互重叠,数据可能存在差异甚至冲突。身份体系重复建设,在浪费资源的同时,也存在诸多数据共享和使用上的障碍,不同身份系统形成“身份孤岛”,阻碍了数字身份的发展。

(2) 身份数据隐私与安全问题

传统数字身份中心化控制、中心化管理的模式,导致用户身份信息散落在权威机构或联盟的身份认证者手中,不排除某些机构在未经用户授权的情况下使用用户身份数据。其次,用户身份信息在各家企业的服务器上存储,不同的企业对数据安全的重视程度和措施强度不同,使得用户的数据泄漏。

(3) 中心化认证效率和容错问题

传统的公钥基础设施(Public Key Infrastructure, PKI)系统,数字证书是认证的核心,它由相对权威的证书颁发机构(Certificate Authority, CA)签发的,容易引发性能问题和安全问题。性能问题:中心化签发过程涉及证书的所有操作,任务繁重,可能成为性能短板拖累效率,如庞大的已撤销证书列表的有效分发。安全问题:单中心的结构容易使其成为攻击的目标,一旦上级CA被攻破,则与之相关联的下级CA也会受到牵连,容易引发连锁反应。同时,由于CA也有民间团体,因此无法完全保证每个CA的信用。

3 分布式数字身份

分布式数字身份(Decentralized Identifiers, DID),在万维网联盟(World Wide Web Consortium, W3C)发布的分布式数字身份规范中,将DID定义为一种新的全球唯一标识符。这种标识符不仅可以用于人,也可以用于万事万物,包括一辆车、一只动物,甚至是一台机器。下面我们从技术实现和场景描述两个方面介绍DID技术。

3.1 技术实现

3.1.1 概述

DID技术的核心构成要素包括三个:DID、DID文档、可验证凭证和可验证表达。

图片

图2 分布式数字身份架构图

3.1.2 DID

DID标识是一个特定格式的字符串,用来代表一个实体的数字身份,这里的实体可以是人、机、物,DID标识的格式为:

图片

 图3 DID示例图

(1) Scheme:固定的表述方式,表示这个字符串是一个DID标识字符串。类似URL中的http,https,ftp等协议;

(2) DID Method:DID方法,标识整套DID标识采用的方法,该方法自定义完成后,注册到W3C,供同样采用W3C DID规范的分布式数字身份识别;

(3) DID Method Specific String:DID方法下的唯一标识字符串,整个DID方法命名空间是唯一的。

3.1.3 DID文档

DID文档(DID Document, DID Doc)包含着所有DID标识有关的信息,通过统一资源定位符(Uniform Resource Locator, 简称URL)与DID标识连接,是一个通用数据结构,通常是由DID controller负责数据写入和更改,文件内包含与DID标识验证相关的密钥信息和验证方法,提供一组使DID controller能够证明其对应DID标识控制的机制。DID controller可能是DID标识本人,也有可能是第三方机构,不同DID Method对DID Doc的权限管理有所区别。

图片

图4 DID Doc示例图

3.1.4 可验证的凭证

以用户为中心的身份与由公认机构发布的其他标识符的绑定称为可验证的凭证(Verifiable Credentials, VC),DID文档本身无法和用户的真实身份信息相关联,需要VC来实现,关联过程是整个系统的价值所在。VC类似于数字证书,是对用户身份的证明,同样也提供了一套类似于PKI的系统。

图片

 图5 分布式数字身份相关方关系图

(1) 发行者(Issuer):拥有用户数据并能开具VC的实体,即身份提供方;

(2) 持有者(Holder):向发行者请求、收到、持有VC的实体,即身份持有方;

(3) 验证者(Verifier):需要验证用户身份的应用,即身份依赖方;

(4) 身份注册机构(Identifier Registry):维护DID数据库的机构,存储DID标识和DID Doc,并可通过DID标识查询到对应的DID Doc。

3.1.5 可验证表达

可验证表达(Verifiable Presentation, VP)是VC持有者向验证者表明自己身份的数据。一般情况下,我们直接出示VC全文即可,但在某些情况下,出于隐私保护需要,并不希望出示完整的VC内容,只希望选择性披露某些属性,或者不披露任何属性,只需要证明某个断言即可。

3.2 场景描述

枯燥的概念让你了解DID的世界,场景描述带你真切感受DID的使用。小明(Holder)是刚毕业的应届毕业生,小明拿着学校(Issuer)颁发的毕业证去公司(Verifier)入职,其中一个环节是公司验证小明身份及小明毕业证,验证通过后,小明入职成功,具体流程如下:

(1) 小明生成身份DID标识和DID Doc:小明要想获得学校颁发的毕业证,必选要有自己的DID标识,通过数字身份相关APP,在手机中生成随机私钥和对应的公钥,并根据相应规范完成DID标识和DID Doc生成;

(2) 学校颁发毕业证给小明:学校本身也有自己的DID标识,学校是教育系统里面颁发的DID标识,所以DID Method和小明作为中国公民的DID Method不一样,所有认证过的高校的DID标识都是由高校认证管理DID创建的,所以这相当于传统的根CA,获得认证的正规学校根据小明的学习情况(入学时间、毕业时间、专业、是否结业等信息)以及小明的DID,为小明颁发毕业证,即VC;

(3) 小明提交学历证明给公司:小明来到新公司入职,入职当天需要提交学历证明给公司,但是小明为了个人隐私不想直接拿毕业证给公司看,于是小明基于生成的毕业证(VC)生成学历证明,即VP;

(4) 公司验证小明学历证明:公司收到小明提交的学历证明(VP)后,首先通过验证学历证明(VP)是小明提交的,且没有篡改,然后验证毕业证(VC)是学校颁发的,最后,验证学校DID是高校认证管理DID颁发的,所有验证通过后,小明成功入职!

3.3 国内情况

国内分布式数字身份方面,CTID(居民身份网络可信凭证)与eID(网络电子身份标识)共存,eID具有在线身份认证、签名验签和线下身份认证等功能。eID偏向于硬方案,CTID更偏向于软方案。

eID 是公安部第三研究所,以国产自主密码技术为基础、以智能安全芯片为载体的身份认证技术,不仅能在不泄露身份信息的前提下在线识别自然人主体,还能用于线下身份认证。目前,已与多家银行等合作发行加载eID的金融IC卡及SIMeID贴膜卡;与三大电信运营商进行技术对接并试点发行加载eID的SIM卡;与多家主流品牌手机厂商合作将eID加载于手机终端,并正在与其他手机厂商进行技术对接。

CTID是公安部第一研究所,对外提供真实身份核验、网证开通和管理、网证认证等三大功能,基于实体身份证、网证、居民身份信息、人像等多种认证因子,形成了从最简单的身份信息比对,到需要实体证件参与的多因子认证等多种身份认证模式。根据中盾安信官网显示,目前,CTID 平台已经形成面向全地域、全行业的互联网可信身份认证基础设施,其并发能力达到每秒2万+,响应时间平均0.5秒,数据数量高达50亿。

4 风险控制

DID从提出到现在已经有四年时间,经过各行业协会、互联网平台、基金会等的推动,W3C于2021年8月3日发布了DID 1.0版本白皮书,提出了更通用的身份标识架构及规范,众多协会、组织及企业基于W3C DID规范提出了众多DID Method,但距离DID技术真正落地应用还存在诸多风险和问题,以下将从DID落地过程的技术风险控制和业务风险控制两方面阐述。

4.1 技术风险控制

(1) 密码算法风险控制:不管是传统数字身份,还是分布式数字身份,其可信度主要依赖于密码算法,由于密钥是密码算法中的最高机密,窃取密钥往往是攻击者的首要目标,任何在密钥使用、保存、协商环节中出现的疏漏,都会使之功亏一篑。同时,密码算法从理论到实现过程存在周期长、复杂性高、性能差等问题;

(2) 身份信息泄漏风险控制:相比传统数字身份,分布式数字身份已经大大提升了身份信息的安全性,但在应用中仍有一定风险,例如当第三方刻意收集分析某个分布式数字身份数据时,存在通过海量数据逆向推理的可能性,从而推导出物理世界中的现实身份,造成身份信息泄露。

4.2 业务风险控制

(1) 合规性要求:传统数字身份发展早期只需通过用户名/密码实现平台身份验证,但为了满足合规性要求,增加了物理世界身份验证,这种方式设计虽然实现可追责、可追溯的网络信任体系,但造成了个人信息泄露。分布式数字身份一定程度上解决了这个问题,但对于分布式数字身份而言,仍存在合规问题,如是否需要通过国家身份基础设施进行实名认证等;

(2) 匿名风险控制:数字身份相比传统身份外的另一重要特征是具备匿名性,当前主流分布式数字身份技术给出的解决方案是:谁持有数字身份,谁就有权享受相关权益。这无疑带来了一定的监管风险和数字身份被盗取后的应用风险。目前有部分分布式数字身份给出的解决思路是通过将DID映射到中心化数据库,实现DID使用时的本人身份确认,但该种方案并不能从根本上解决匿名风险控制,反而给个人信息保护留下漏洞;

(3) 市场化应用风险控制:目前,技术规范已初步成型,但各类身份服务之间需要进一步地实现互联互通,不断提升标准在引导行业发展,促进产业布局方面的作用,实现标准规范行业发展,行业发展推进标准更新迭代的良性循环。

5 参考文献

[1] Decentralized Identifiers(DIDs) v1.0[R/OL].World Wide Web Consortium,2021.https://www.w3.org/TR/did-core/.

[2] 基于可信数字身份的区块链应用服务白皮书(1.0版)[R].可信区块链推进计划,2020.

[3] 袁煜明,黄怀澄,等.区块链数字身份:数字经济时代基础设施[R].火币研究院,2020.

[4] DIDA白皮书[R].分布式数字身份产业联盟,2020.

[5] eID数字身份体系白皮书[R].公安部第三研究所,2018.

[6] 数字身份证引领数字经济新时代[R].西部证券,2022.

[7] 深圳市标准化协会.T/SZAS 37-2021基于互联网的可信数字身份服务技术要求[S].深圳,2021.

[8] Lee G M, Jayasinghe U, Truong N B, et al. Features, Challenges and Technical Issues[C]//The Second Bright ICT Annual Workshop on Bright ICT 2016. 2016.

[9] 王普玉.DID:一种全新的身份标识技术[EB/OL].https://zhuanlan.zhihu.com/p/456469304,2022-01-12

[10] 曾毅.去中心化数字身份DID简介[EB/OL].https://www.cnblogs.com/studyzy/p/14189910.html,2020-12-25

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1041182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【RabbitMQ实战】05 RabbitMQ后台管理

一、多租户与权限 1.1 vhost的概念 每一个 RabbitMQ服务器都能创建虚拟的消息服务器,我们称之为虚拟主机(virtual host),简称为 vhost。每一个 vhost本质上是一个独立的小型RabbitMQ服务器,拥有自己独立的队列、交换器及绑定关系等,并且它拥…

高级时钟项目(2)Json文件解析学习---C语言版本

笔者来介绍一下json文件解析 1、背景介绍 笔者在获取天气数据的时候,是通过MCU的WIFI去获取,但是获取到的数据json数据,需要解析,C语言没那么解析库,所以就需要找一些开源的解析库。 笔者找到cjson这个适用于C语言…

洗衣行业在线预约小程序系统源码搭建 支持直播功能+在线预约下单+上门取件

目前,人们对生活品质的追求不断提高,但生活节奏却也不断加快。对品质的追求遇到了忙碌的生活节奏,人们更渴望以最简单、便捷的方式达到追求品质的目的。同时,由于线上支付的普及,大家更希望足不出户就可以解决自己生活…

基于规则架构-架构案例2019(三十九)

电子商务 某电子商务公司为了更好地管理用户,提升企业销售业绩,拟开发一套用户管理系统。该系统的基本功能是根据用户的消费级别、消费历史、信用情况等指标将用户划分为不同的等级,并针对不同等级的用户提供相应的折扣方案。在需求分析与架…

AGV小车、机械臂协同作业实战06-任务分配算法(图解蚁群算法)代码示例java

什么是蚁群算法? 蚁群系统(Ant System(AS)或Ant Colony System(ACS))是由意大利学者Dorigo、Maniezzo等人于20世纪90年代首先提出来的。他们在研究蚂蚁觅食的过程中,发现蚁群整体会体现一些智能的行为,例如蚁群可以在不同的环境下&#xff0c…

计算机竞赛 深度学习乳腺癌分类

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度,召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

【湖科大教书匠】计算机网络随堂笔记第5章(计算机网络运输层)

目录 5.1、运输层概述 概念 进程之间的通信 进程之间通信流程 总结 5.2、运输层端口号、复用与分用的概念 为什么用端口号 发送方的复用和接收方的分用 ​编辑 ​编辑 运输层传输流程 5.3、UDP和TCP的对比 概念 用户数据报协议UDP(User Datagram Protocol&#xf…

P2PNet-Soy原理梳理

前文总结了P2PNet源码以及P2PNet-Soy源码实现方法,相关链接如下: 人群计数P2PNet论文:[2107.12746] Rethinking Counting and Localization in Crowds:A Purely Point-Based Framework (arxiv.org) p2p人群计数源码:GitHub - Te…

商品秒杀系统整理

1、使用redis缓存商品信息 2、互斥锁解决缓存击穿问题,用缓存空值解决缓存穿透问题。 3、CAS乐观锁解决秒杀超卖的问题 4、使用redission实现一人一单。(分布式锁lua)脚本。 5、使用lua脚本进行秒杀资格判断(将库存和用户下单…

三维模型3DTile格式轻量化压缩在移动智能终端应用方面的重要性分析

三维模型3DTile格式轻量化压缩在移动智能终端应用方面的重要性分析 随着移动智能终端设备的不断发展和普及,如智能手机、平板电脑等,以及5G网络技术的推广应用,使得在这些设备上频繁使用三维地理空间数据成为可能。然而,由于这类数…

协议-TCP协议-基础概念02-TCP握手被拒绝-内核参数-指数退避原则-TCP窗口-TCP重传

协议-TCP协议-基础概念02-TCP握手被拒绝-TCP窗口 参考来源: 《极客专栏-网络排查案例课》 TCP连接都是TCP协议沟通的吗? 不是 如果服务端不想接受这次握手,它会怎么做呢? 内核参数中与TCP重试有关的参数(两个) -net.ipv4.tc…

umi+React项目引入字体文件

1. 在public下新建文件夹fonts,将字体文件复制到该文件夹下 2. 在public文件下新建font.css文件 font-face {font-family: YouSheBiaoTiHei;src: url(./fonts/YouSheBiaoTiHei-2.ttf); }3. 在app.ts里面加上导入语句即可引入该字体 import ../public/font.css;

似然和概率

前言 高斯在处理正态分布的首次提出似然,后来英国物理学家,费歇尔 概率是抛硬币之前,根据环境推断概率 似然则相反,根据结果推论环境 P是关于x的函数,比如x为正面朝上的结果,或者反面朝上的结果&#xf…

【计算机网络】基于UDP的简单通讯(服务端)

文章目录 流程代码实现加载库创建套接字绑定ip接收数据发送数据关闭套接字、卸载库 流程 我们UDP通讯就像是在做小买卖,主要就是进行收发数据 实现UDP协议的服务端需要经过五步操作: 加载库(Ws2_32.lib)创建套接字&#xff08…

vue组件的通信

文章目录 组件通信父传子父传子:通过prop来进行通信 子传父先在父组件用注册方法 , 在子组件触发使用 emit 函数 组件间通信-平行组件使用事件总线的方法,也就是把整个vue提出来,当为一个事件总线 其他组件通信父组件 provide来提供变量,然后再子组件中通过inject来注入变量 组…

Java之IO流概述

1.1 什么是IO 生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrls ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键…

FlashDuty Changelog 2023-09-21 | 自定义字段和开发者中心

FlashDuty:一站式告警响应平台,前往此地址免费体验! 自定义字段 FlashDuty 已支持接入大部分常见的告警系统,我们将推送内容中的大部分信息放到了 Lables 进行展示。尽管如此,我们用户还是会有一些扩展或定制性的需求…

【yolov5】detect.py

执行方法: 代码 # YOLOv5 🚀 by Ultralytics, AGPL-3.0 license """ Run YOLOv5 detection inference on images, videos, directories, globs, YouTube, webcam, streams, etc.Usage - sources:$ python detect.py --weights yolov5s.pt --source …

面经分享 | 某康安全开发工程师

本文由掌控安全学院 - sbhglqy 投稿 一、反射型XSS跟DOM型XSS的最大区别 DOM型xss和别的xss最大的区别就是它不经过服务器,仅仅是通过网页本身的JavaScript进行渲染触发的。 二、Oracle数据库了解多吗 平常用的多的是MySQL数据库,像Oracle数据库也有…

PHP脚本导出MySQL数据库

背景:有时候需要同步数据库的表结构和部分数据,同步全表数据非常大,也不适合。还有一个种办法是使用数据库的dump命令执行备份,无法进入服务器?没有权限怎么办? 这里只要能访问服务器中的 information_sch…