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

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

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.xdnf.cn/news/142147.html

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

相关文章

Elasticsearch 集群时的内部结构是怎样的?

Apache Lucene : Flush, Commit Elasticsearch 是一个基于 Apache Lucene 构建的搜索引擎。 它利用 Lucene 的倒排索引、查询处理和返回搜索结果等功能来执行搜索。 它还扩展了 Lucene 的功能,添加分布式处理功能以支持大型数据集的搜索。 让我们看一下 Apache Luc…

Learn Prompt- Midjourney Prompt:Prompt 提示语

基础结构​ 一个基本的提示可以简单到一个单词、短语或表情符号。非常短的提示将在很大程度上依赖于 Midjourney 的默认样式。 完整 prompt:可以包括一个或多个图像链接、多个文本短语或单词,以及一个或多个后缀参数 Image Prompts: 可以将图像 URL 添加…

比特币的蒙提霍尔问题

把钱放在嘴边 我们在比特币上建立了蒙提霍尔问题模拟。 如果您知道概率谜题的正确答案,不仅炫耀您的数学技能,还会获得金钱奖励。 它完全无需信任地在链上运行。 蒙提霍尔问题 蒙提霍尔问题(三门问题)是一个以蒙提霍尔命名的概率…

数据一致性:核心概念与实现策略

在当今的信息时代,数据已经成为了企业的核心资产之一。然而,随着数据量的不断增长和应用场景的不断扩大,如何保证数据的一致性成为了一个重要的挑战。数据一致性不仅关系到系统的正确性和可靠性,也直接影响到用户的体验和企业的业…

图像绘制-线段、矩形、圆形、椭圆等

在实际运用中,我们会在图片上添加一些图形,比如目标检测时在物体周围画个矩形框,人脸识别中将人脸的关键点用点(圆形)标出来。 OpenCV常用的形状绘制方法: 线段的绘制 线段的绘制是使用cv2.line(img, pt…

C++QT day11

绘制时钟 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPaintEvent>//绘制事件类 #include <QDebug>//信息调试类 #include <QPainter>//画家类 #include <QTimer>//定时器类 #include <QTime> #include &…

积跬步致千里 || 可视化动图展示

可视化动图展示 目前只能在 jupyter notebook 中测试成功 %matplotlib notebook import numpy as np import matplotlib.pyplot as plt import timen 500 data np.random.normal(0,1,n)fig plt.figure() ax fig.add_subplot(111)fig.show() fig.canvas.draw()for i in ra…

网络编程-TCP协议(客户端和服务端)

需要了解UDP协议的&#xff0c;可以看往期文章 https://flypeppa.blog.csdn.net/article/details/133273416 TCP/IP参考模型 代码案例 服务端代码 package com.hidata.devops.paas.udp;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr…

Android之AMessage机制存/取原理(四十四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

Ribbon负载均衡器

两种&#xff1a; 1.1 集中式负载均衡&#xff0c;服务端负载均衡 硬件 nginx 轮询、负载、哈希、随机、权重 为什么要做负载均衡&#xff1f; 1.2 客户端负载均衡器 用客户端 负载均衡器 很多机制可以自定义 小知识&#xff1a;不想让别人调自己&#xff0c;只想用别人的…

似然和概率

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

C语言连接MySQL并执行SQL语句(hello world)

1.新建一个控制台项目 参考【VS2022 和 VS2010 C语言控制台输出 Hello World】VS2022 和 VS2010 C语言控制台输出 Hello World_vs2022源文件在哪_西晋的no1的博客-CSDN博客 2.安装MySQL 参考【MySQL 8.0.34安装教程】MySQL 8.0.34安装教程_西晋的no1的博客-CSDN博客 3.复制MySQ…

Unity Bolt模块间通信

使用Bolt无代码设计开发的时候&#xff0c;我们不能简单的认为只需要一个FlowMachine就可以完成所有流程的开发。我们需要不同的模块进行拆分&#xff0c;以便更好的管理和协作。这就需要不同模块之间的通信处理。经过研究与使用&#xff0c;将常用的通信方式总结如下&#xff…

基于微信小程序的校园餐饮配送系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言学生微信小程序端的主要功能有&#xff1a;配送员微信小程序端的主要功能有&#xff1a;商家微信小程序端的主要功能有&#xff1a;管理员的主要功能有&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&am…

自定义类型

目录 1.结构体 1.结构体声明 1.1结构的基础知识 1.2结构的声明 1.3特殊的声明 1.4结构的自引用 1.5结构体变量的定义和初始化 1.6结构体的内存对齐 1.7修改默认对齐数 1.8结构体传参 2.位段 2.1什么是位段 2.2位段的内存分配 2.3位段的跨平台问题 2.4位段的应用 …

YOLOv5、YOLOv8改进:CotNet Transformer

1.简介 京东AI研究院提出的一种新的注意力结构。将CoT Block代替了ResNet结构中的3x3卷积&#xff0c;在分类检测分割等任务效果都出类拔萃 论文地址&#xff1a;https://arxiv.org/pdf/2107.12292.pdf 源代码地址&#xff1a;https://github.com/JDAI-CV/CoTNet 具有自注意…

Android开发之状态栏的设置

Android页面开发通常是根据UI设计进行&#xff0c;真机会遇到顶部状态栏和页面背景色或背景图片不协调的情况&#xff0c;这时候需要对状态栏进行设置。默认状态栏是有固定高度和背景色的&#xff0c;基本上我们需要将状态栏背景色设置透明并且图标能够在页面显示&#xff0c;下…

【力扣-每日一题】LCP 06. 拿硬币

class Solution { public:int minCount(vector<int>& coins) {int res0;for(auto i:coins){resi/2;res(i%2)?1:0;}return res;} };

多数据源Pagehelper怎么配置

1.遇到的问题 若依增加多数据源&#xff0c;分页报错&#xff0c;查了下pagehelper也要修改配置。 官方配置&#xff1a; 官方文档&#xff1a;连接多数据源sqlServer使用分页的情况下报错&#xff0c;不使用分页时正常。 Issue #I3NJMR 若依/RuoYi - Gitee.com 我的配置&a…

HCIE-容器docker

1、安装配置操作系统&#xff0c;使用CentOS stream 8镜像 之前&#xff1a;RHEL 8.4 发布了&#xff0c;CentOS紧随其后&#xff0c;发布CentOS 8.4 之后&#xff1a;CentOS 走在前面&#xff0c;成为RHEL上游&#xff0c;再去发布RHEL 制作模板&#xff0c;模板配置要求&…