网络匿名⇒账号ID登录⇒授权一键登录⇒分布式数字身份
实现一个用户能自主创建、完全去中心化的身份管理。而区块链的出现,恰恰解决了 DID 去中心化的问题。
中心化身份 => 联盟身份 => 中心化身份(DID)一开始的数字认证始是中心化的,比如ICANN管理的域名与IP地址分配,以及PKI(Public Key Infrastructure)系统中的CA(Certificate Authority)证书机构管理的数字证书.中心化身份系统的本质就是,中央集权化的权威机构掌握着身份数据,因为围绕数据进行的认证、授权等也都由中心化的机构来决定。
身份不是由用户自己控制的。而且不同的中心化网站(比如淘宝、知乎、豆瓣等等)上有一套自己的身份系统,所以都需要你重新注册一个账户。而不同网站自己用的身份系统(及账户对应的数据)之间是不互通的。为了解决这个问题,不同的网站自己联合起来推出了联盟身份(这个概念是首先由微软在1999年提出的)。
在联盟身份体系下,用户的在线身份有了一定的可移植性。如今的不少网站注册都可以支持第三方登录,比如微信、QQ、新浪微博等。在联盟身份提出后,身份系统就开始走向去中心化了。期间也有很多去中心化的标准、方案出现,比如OpenID。其实就算是一些网站支持的微信、QQ第三方登录,其用户体验也不是很好,而且往往还是需要你用手机号 + 验证码进行注册的。
综上所述,中心化身份主要的问题就是两个,一是个人并不是真正意义上拥有自己的身份,二是身份无法互通。
分布式数字身份包括:分布式数字身份标识符和数字身份凭证(声明集合)两部分:
是一种去中心化的可验证的数字标识符,具有分布式、自主可控、跨链复用等特点
DID本质上是一个全球唯一的地址标识符URL,指向写有与用户身份关联的属性信息的DID文档
是指与身份关联的属性信息。声明可以由身份所有者自己发出也可以由发行人发出,其中由发行人发出的为可验证声明
往往是个人或机构对自己身份的声称和主张,例如“我叫麦金塔,1984 年 1 月 24 日出生。”
DID持有者可以通过可验证声明,向其他实体(个人、组织、具体事物等)证明自己的某些属性是可信的
与DID标识符形成键值对,描述引导与标识的实体进行密码可验证的交互所必需的公用密钥,身份验证协议和服务端点。
DID文档描述的是与被识别对象进行密码验证交互所必须的DID主体标识、公钥、验证协议、服务端点等,JSON-LD格式,LD(Linked Data),VC的格式也是JSON-LD,该格式可以将文档转换为结构化的数据
W3C的DID标准
DID的URL标识符
DID方法标识符
DID方法中特定的的标识符:在整个DID方法命名空间是唯一的
DID方法规范作用:如何在特定的区块链或者系统创建、解析、管理DID和DID文档,DID规范要包含:Create,Read,Update,Delete
以bid方法为例——中国信息通信研究院(中国信通院)
经过椭圆曲线加密和SM2,输出公钥,并对公钥进行hash处理
BID身份描述对象
{
"@context": " https://www.w3.org/2019/did/v1",//@context是数据链接的词汇,这个特定的实例引用了URL
"id": "did:bid:3acdafe161ef702033bdf895",//标识一个did主体
"name":"shiweijun",//名称:设置昵称以提高出价标识符的可用性。
"publicKey": [{//公钥用于身份认证
"id": "did:bid:3acdafe161ef702033bdf895#keys-1",
"type": "RsaVerificationKey2018",
"controller": "did:bid:3acdafe161ef702033bdf895",
"authorizations": ["all"],
"bid": "did:bid: 3acdafe161ef702033bdf895
}, {
"id": "did:bid:3acdafe161ef702033bdf895#keys-3",
"type": "Ieee2410VerificationKey2018",
"controller": "did:bid:3acdafe161ef702033bdf895",
"bid": "did:bid: 3acdafe161ef702033bdf895"
}],
"authentication": [{//身份验证:一个列表,其中包含用户的身份验证身份属性信息
"type": "ED25519SigningAuthentication",
"publicKey": "did:bid:3acdafe161ef702033bdf895#keys-1",
"proofId":"c1cb770ac94000d946e583d13ea310"
}],
"service": [{//服务:每个服务都用属性ID标识。
"id": "did:bid: 3acdafe161ef702033bdf895#home_page ",
"type": "DIDResolve",
"serviceEndpoint": "http://www.caict.ac.cn"
}
],
"proof": {证明:用于证明DDO文档的内容完整性和源可靠性。
"type": "RsaSignature2018",
"created": "2017-10-24T05:33:31Z",
"creator": "did:bid: 3acdafe161ef702033bdf895#keys-1",
"signatureValue": "eyiOiJJ0eXAK...EjXkgFWFO"
},
"Extra":"abc123",
"isEnable":true,
"createTime":1561945638,
"updateTime":1561945638
}
Create
管理私钥的两种方式:
Update:通过调用API进行
Read:可以通过查询BID或BID的昵称来获取BID文档以及对所有人公开的详细信息。以JSON格式反馈以响应查询
Delete:通过调用API完成
身份验证
静态和动态两种方法:静态方法时使用私钥对DID文档进行签名,这可以证明在DID文档注册前的私钥控制权;若DID文档未被签名,则可以用文档中关于公钥信息来动态证明
什么是CA: CA是认证中心的英文Certification Authority的缩写。 CA中心,又称为数字证书认证中心。CA中心作为电子交易中受信任的第三方
CA是干什么的:负责为电子商务环境中各个实体颁发数字证书,以证明各实体身份的真实性,并负责在交易中检验和管理证书。概括的说,CA的核心功能就是发放和管理数字证书。概括地说,CA认证中心的功能主要有:证书发放、证书更新、证书撤销和证书验证。
涉及的流程内容:
验证过程
用户申请注册DID,由用户自己管理
验证用户DID(用户与DID是否对应),用户出示VC凭证,
验证者验证VC是由发行者发行的,通过VC中URL找到用户的DID文档,用过DID文档中的公钥再验证用户DID标识
此信任模型与其他信任模型的区别在于:
为了使用零知识可验证凭证,发行者必须以一种使持有人 能够以增强隐私的方式将信息提供给验证者的方式来发行可验证凭证。这意味着持有人可以证明发行人签名的有效性, 而无需透露已签名的值,或者仅透露某些选定的值。标准做法是通过证明签名知识而不公开签名本身来做到这一点。
DID作为代表实体身份的全球唯一分布式标识符应该如何存储和提供访问,即人们如何访问它们——区块链
分布式数字身份体系并不局限于区块链技术,更不绑定到唯一区块链平台上,其系统模块可能基于不同的区块链平台实现,甚至是非区块链的其他分布式账本实现
解决方案及流程
优势:
去中心化身份(DID)利用区块链技术实现让数字身份真正为用户所拥有并支配,就像我们把身份证、护照、户口本这些纸质文件放在自己家里小心保存,只有在需要的时候再拿出来一样,不再有任何中间人(即使是 DID 技术供应商)接触拥有控制用户的身份和数据。
去中心化+用户自己管理
DID文档中没有任何和个人真实信息相关的内容,比如你的真实姓名、地址、手机号等。因此光靠DID规范是无法验证一个人的身份的,必须要靠DID应用层中的可声明验证(VC)
可验证声明结合数字签名和零知识证明等密码学技术,可以使得声明更加安全可信,并进一步保障用户隐私不被侵犯
在DID系统中,用户对自己的身份拥有绝对的 控 制 权 , 用 户 根 据 实 际 需 要 自 主 选 择 使 用 哪些 个 人 身 份 信 息 来 进 行 身 份 验 证 , 并 将 身 份 信息的哈希值 存 储 在 区 块 链 上 , 供 其 他 人 验 证 。
在数字领域,我们的身份由拥有我们在线帐户的众多平台管理。每当您注册一项新服务时,该公司实际上就已经拥有了您的数字身份的很大一部分。当您使用Facebook或Gmail访问在线服务时,这种情况会放大。在这些情况下,您无法控制或了解共享了多少数据以及如何处理数据。为了在线参与,您必须放弃对个人数据的控制。
DID 技术实现的去中心化身份的体验和用途与传统的数字身份截然不同:首先,你将不只有一个 DID,而是依据身份场合需要的不同拥有无数不同的 DID,每一个 DID 都给你一个单独的终生加密的私密渠道与其他个人、组织或事物交互沟通,因此更好的选择你的身份来交流,更好的保护你的隐私,传统互联网的“人肉”现象将不会再发生;DID 将不仅用来证明的身份,而且可用来交换可验证的数字证书;最棒的是,每个 DID 直接登记在区块链或分布式网络上,无需向中心化注册机构申请。
用户去标识符注册机构注册DID,用户拿到DID和VC凭证,由用户自己管理
验证用户DID(用户与DID是否对应),用户出示VC凭证,
验证者验证VC是由发行者发行的,通过VC中URL找到用户的DID文档,用过DID文档中的公钥再验证用户DID标识
UUID的作用
应用:
它能保证每个节点所生成的标识都不会重复,并且随着WEB服务等整合技术的发展,UUID的优势将更加明显。根据使用的特定机制,UUID不仅需要保证是彼此不相同的,或者最少也是与公元3400年之前其他任何生成的通用唯一标识符有非常大的区别。UUID最少在3000+年内不会重复。
URI,URL,URN