掌桥专利:专业的专利平台
掌桥专利
首页

一种区块链数字身份服务系统与方法

文献发布时间:2024-04-18 19:59:31


一种区块链数字身份服务系统与方法

技术领域

本发明属于计算机安全技术领域,尤其涉及一种区块链数字身份服务系统与方法。

背景技术

数字身份是网络中的标识,其核心是通过提供和验证身份信息来证明自己,其主要环节包括身份注册、身份签发、身份验证以及对身份信息和数据的管理,都需要经过密码学算法来实现,当前主流的身份认证和管理系统PKI是以数字证书为核心。

目前基于区块链技术实现的联盟链应用中,加入联盟链的各个组织间在通信时就是通过前面所述的数字证书来认证各自的身份,各个组织会构建自己的私有CA服务来提供身份认证能力,每个组织都需要将其他组织的CA根证书加入自己的信任证书列表。

在联盟链场景下使用数字证书来认证身份存在CA根证书预埋工作繁杂易错、暴露客户信息的问题:1.数字证书由不同组织的私有CA各自发布,在搭建区块链时,需要各个组织预先埋入所有其他组织的CA根证书,组织数量越多,CA根证书的预埋工作就越繁杂易错,工作成本会随着组织数量呈指数级上升;2.数字证书中存储了个人客户的相关信息,认证身份时会暴露证书中的全部个人信息;因此,亟需一种能够解决上述技术问题的区块链数字身份服务方法及系统。

发明内容

本发明的目的在于:为了解决数字证书中存储了个人客户的相关信息,认证身份时会暴露证书中的全部个人信息的问题,而提出的一种区块链数字身份服务系统与方法。

为了实现上述目的,本发明采用了如下技术方案:

一种区块链数字身份服务方法,具体包括以下步骤:

S1、配置初始信息,联盟链生成时参与组织自建CA服务,并生成各个组织的发证账户公私钥,同时生成数字身份凭证专用公私钥;

S2、用户通过DAPP申请数字身份后,DAPP使用初始配置的本组织发证账户私钥,以本组织发证账户ID为主体内容生成数字签名,附加用户身份信息向数字身份服务发送申请数字身份请求;

S3、验证申请信息,数字身份服务收到这个请求时,根据传入的发证账户ID在初始配置信息中查询对应的发证账户公钥对签名进行验签,确认这是一个合法的请求,如果无法验签,说明申请信息有误,则返回“非法数字身份请求”信息;

S4、获取数字证书,数字身份服务根据传入的发证账户ID在初始配置信息中查询出DAPP所属组织的CA服务信息和发证账户公钥,向该CA服务提交用户身份注册请求、并完成证书登记,获取该用户的数字证书;

S5、生成数字身份凭证,数字身份服务获取该用户数字证书后,生成数字身份凭证,返回给DAPP;

S6、DAPP调用智能合约时携带数字身份凭证,用户通过DAPP申请到数字身份凭证后,DAPP在调用智能合约时会携带数字身份凭证,所述用户数字身份凭证为前述用户通过DAPP申请获得的数字身份凭证;

S7、区块链执行合约前通过数字身份服务验证凭证,区块链接收到智能合约调用请求时,会取出数字身份凭证,并向数字身份服务请求认证该凭证并获得其权限配置,数字身份服务接收到该认证请求,使用初始配置的数字身份凭证专用公钥对数字身份凭证进行验签;

S8、验证通过和合约执行,区块链获得认证结果,确认身份无误且权限校验通过后,执行合约。

作为上述技术方案的进一步描述:

所述数字身份服务管理所有组织的CA服务信息、发证账户公钥、发证账户ID和数字身份凭证专用公私钥。

作为上述技术方案的进一步描述:

所述S2中用户身份信息包括:发证账户ID、用户名(ID_NAME)、密码(ID_SECRET)、用户类型(ID_TYPE)和用户属性(ID_ATTRIBUTE);

所述发证账户ID为DAPP所在组织CA的发证账户ID,数字身份服务内部管理着所有组织的信息,根据DAPP提交的发证账户ID可以验证是否合法请求;

所述用户类型(ID_TYPE)的标准配置有peer,orderer,admin,client等,在数字身份服务中主要使用client类型;

所述用户属性(ID_ATTRIBUTE)可以根据业务需要自定义属性,通过json数组的形式存储于数字证书中,用户属性中通常包含业务自定义的权限信息在后续用户调用智能合约时,需要获取权限信息用于权限校验。

作为上述技术方案的进一步描述:

所述S5中生产数字身份凭证的方法包括:使用“发证账户ID+账户ID”作为key,以该用户的数字证书为value,将该key-value对上传区块链保存;

将“发证账户ID+账户ID+账户名”作为主体,使用初始配置的数字身份凭证专用私钥签名。

作为上述技术方案的进一步描述:

所述S7中验签的方法具体包括:解出“发证账户ID+账户ID+账户名”,确认这是一个合法的请求;继续使用解出的“发证账户ID+账户ID”作为条件查询区块链,获取用户的数字证书,则能验证该数字身份的合法性,并获取数字证书中的权限信息,如果不能验签或者区块链查询无数据说明无法验证该数字身份,则返回“无法验证该数字身份”信息。

作为上述技术方案的进一步描述:

一种区块链数字身份服务系统,包括数字身份服务、CA服务系统和区块链系统;

所述数字身份服务包括组织与CA管理模块、发证账户管理模块和身份证书管理模块;

所述组织与CA管理模块用于参与使用数字身份服务的组织信息以及对应的CA信息的管理;

所述发证账户管理模块用于管理各组织的发证账户ID和公钥信息;

所述身份证书管理模块用于身份证书的生成、验证和吊销管理措施;

所述CA服务系统用于数字证书的发行和管理;

所述区块链系统用于数字证书的区块链可信存储。

作为上述技术方案的进一步描述:

所述组织与CA管理模块的CA信息包括组织名称以及CA连接方式。

作为上述技术方案的进一步描述:

一种区块链数字身份服务系统的部署方法,包括三个不同组织服务器、一个可信第三方服务器,以及一个区块链虚拟网络;

三个组织服务器内都部署了区块链系统和CA服务;

所述可信第三方服务器内部署了区块链数字身份服务;

所述区块链虚拟网络用于所有三个组织的区块链系统之间的通信,通过各组织在防火墙开通固定端口,允许区块链虚拟网络内区块链节点互相访问。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1、本发明中,在各个组织的私有CA之上,提供一个统一管理CA与数字证书、并提供隐私计算功能的服务,同时该服务支持分布式部署以及身份数据即数字证书的上链,从而在解决预埋工作繁杂易错、暴露客户信息问题的同时,依然保证去中心化与防篡改,通过对各组织CA的统一管理,使得各组织只需要在数字身份服务这里录入一次自己的CA地址,而无须再预埋其他组织的CA根证书,从而降低了工作复杂度。

2、本发明中,数字身份凭证提供的隐私计算机制保护了用户个人信息不被暴露,区块链执行智能合约时只能获取到权限信息。

附图说明

图1是本发明一种区块链数字身份服务系统的架构示意图。

图2是本发明一种区块链数字身份服务系统的部署示意图。

图3是本发明一种区块链数字身份服务方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1-3,本发明提供一种技术方案:

一种区块链数字身份服务方法,具体包括以下步骤:

1.配置初始信息

联盟参与组织自建CA服务;

线下使用工具(SM2Util.generateKeyPair())生成各个组织的发证账户公私钥;

线下使用工具(SM2Util.generateKeyPair())生成数字身份凭证专用公私钥;

数字身份服务管理所有组织的CA服务信息、发证账户公钥、发证账户ID、数字身份凭证专用公私钥;

各个组织无须再分别预埋其他组织的CA根证书,只需要在数字身份服务这里录入本组织的CA服务地址即可,即预埋CA根证书的复杂度从“组织数×(组织数-1)”降低到了“组织数”;

2.申请数字身份

用户通过DAPP申请数字身份后,DAPP使用初始配置的本组织发证账户私钥,以本组织发证账户ID为主体内容生成数字签名,附加用户身份信息向数字身份服务发送申请数字身份请求;

其中,DAPP即Decentralizedapplication,分散式应用或去中心化应用,意思是区块链的成员组织可以自主开发/运行的应用程序,通过智能合约在去中心化的区块链系统上执行相关业务逻辑;

所述用户身份信息包括:发证账户ID、用户名(ID_NAME)、密码(ID_SECRET)、用户类型(ID_TYPE)、用户属性(ID_ATTRIBUTE)等。

所述发证账户ID为DAPP所在组织CA的发证账户ID,数字身份服务内部管理着所有组织的信息,根据DAPP提交的发证账户ID可以验证是否合法请求。

所述用户类型(ID_TYPE)的标准配置有peer,orderer,admin,client等,在数字身份服务中主要使用client类型。

所述用户属性(ID_ATTRIBUTE)可以根据业务需要自定义属性,通过json数组的形式存储于数字证书中。用户属性中通常包含业务自定义的权限信息,如角色ID等。在后续用户调用智能合约时,需要获取权限信息用于权限校验。但同时不能读取其他个人信息,以确保个人信息不暴露。

3.验证申请信息

数字身份服务收到这个请求时,根据传入的发证账户ID在初始配置信息中查询对应的发证账户公钥对签名进行验签,确认这是一个合法的请求。如果无法验签,说明申请信息有误,则返回“非法数字身份请求”信息;

4.获取数字证书

数字身份服务根据传入的发证账户ID在初始配置信息中查询出DAPP所属组织的CA服务信息和发证账户公钥,向该CA服务提交用户身份注册请求、并完成证书登记,获取该用户的数字证书;

5.生成数字身份凭证

数字身份服务获取该用户数字证书后,使用“发证账户ID+账户ID”作为key,以该用户的数字证书为value,将该key-value对上传区块链保存;然后将“发证账户ID+账户ID+账户名”作为主体,使用初始配置的数字身份凭证专用私钥签名,生成数字身份凭证,返回给DAPP;

6.DAPP调用智能合约时携带数字身份凭证

用户通过DAPP申请到数字身份凭证后,DAPP在调用智能合约时会携带数字身份凭证。

所述用户数字身份凭证为前述用户通过DAPP申请获得的数字身份凭证。

7.区块链执行合约前通过数字身份服务验证凭证

区块链接收到智能合约调用请求时,会取出数字身份凭证,并向数字身份服务请求认证该凭证并获得其权限配置,数字身份服务接收到该认证请求,使用初始配置的数字身份凭证专用公钥对数字身份凭证进行验签,解出“发证账户ID+账户ID+账户名”,确认这是一个合法的请求;继续使用解出的“发证账户ID+账户ID”作为条件查询区块链,获取用户的数字证书,则能验证该数字身份的合法性,并获取数字证书中的权限信息(只返回权限信息,从而确保个人信息不暴露)。如果不能验签或者区块链查询无数据说明无法验证该数字身份,则返回“无法验证该数字身份”信息。

8.验证通过、合约执行

区块链获得认证结果,确认身份无误且权限校验通过后,执行合约。

综上所述,本发明通过统一的CA与数字证书管理服务使得CA根证书预埋工作变得简单(复杂度从“组织数*(组织数-1)”降低为“组织数”);

同时,数字身份凭证提供的隐私计算机制保护了用户个人信息不被暴露(区块链执行智能合约时只能获取到权限信息)。

进一步的,本申请实施例还提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例所述的一种区块链数字身份服务方法。

进一步的,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如上述实施例所述的一种区块链数字身份服务方法。

本发明更适合采用软件形式实现,但也可用硬件或软硬件结合的形式实现。本发明也可被实现为计算机可读媒体上的可被计算机读取的代码。所述计算机可读媒体是任何可以保存能够被计算机系统读取的数据的数据存储装置。计算机可读媒体的实例包括只读存储器,随机存取存储器,CD光盘(CD-ROM),数字化视频光盘(DVD),磁带,光学数据存储装置,以及载波。所述计算机可读媒体也可分布在通过网络相连的多台计算机系统中,这样所述可被计算机读取的代码将以分布式的方式存储和运行。

在本发明中,术语“第一”、“第二”仅用于描述的目的,而不能理解为指示或暗示相对重要性;术语“多个”则指两个或两个以上,除非另有明确的限定。术语“安装”、“相连”、“连接”、“固定”等术语均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;“相连”可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

相关技术
  • 一种气凝胶涂料、气凝胶涂层及由气凝胶涂料制备气凝胶涂层的方法
  • 一种MOF诱导氧化铁纺锤体复合金纳米颗粒气敏材料的制备方法
  • 一种摩擦纳米发电机用蚕丝蛋白气凝胶及其制备方法和摩擦纳米发电机
  • 一种基于多级孔结构石墨烯气凝胶的高效电催化剂复合材料及其制备方法和应用
  • 一种羧基化碳纳米管/石墨烯气凝胶/泡沫镍复合电极材料的制备方法
  • 一种多功能化的纳米孔MOF除菌气凝胶及其制备方法
  • 一种多功能化的纳米孔MOF除菌气凝胶及其制备方法
技术分类

06120116522728