一种基于智能合约的无证书联盟链上身份认证方法及系统技术方案

技术编号:35904346 阅读:6 留言:0更新日期:2022-12-10 10:41
本发明专利技术涉及联盟链技术领域,具体为一种基于智能合约的无证书联盟链上身份认证方法,包括以下步骤:用户在用户侧离线生成非对称密钥对,并自己保存用户私钥;用户把自己离线生成的密钥对中的公钥发送给区块链业务应用,区块链业务应用计算用户公钥的哈希值,并使用成员组织admin账户对哈希值进行签名,签名放到区块链业务应用的业务库的用户表中,用户公钥的哈希值为用户的用户ID,完成用户的注册;有益效果为:本发明专利技术提出的基于智能合约的无证书联盟链上身份认证方法及系统提供更加安全的用户身份体系,相对于联盟链默认账户在链上生成,并由区块链上的CA把公钥签发证书之后,再发送给用户。发送给用户。发送给用户。

【技术实现步骤摘要】
一种基于智能合约的无证书联盟链上身份认证方法及系统


[0001]本专利技术涉及联盟链
,具体为一种基于智能合约的无证书联盟链上身份认证方法及系统。

技术介绍

[0002]联盟链是一种有准入控制机制的区块链。准入控制是联盟链对要加入链的节点的身份审核和验证,通过准入控制部分实现对节点的入链管理,同时链上的普通用户的身份也是通过准入控制入链。这种准入控制的实现一般是通过CA(Certification Authority)中心来实现的,联盟链的每个成员组织通常都会有属于自己的CA,成员组织加入到联盟链时,会把成员组织CA的根证书写入配置区块中。
[0003]现有技术中,这种基于证书身份的需要经过CA来签发,CA签发的用户通常分为admin账户和普通用户两种,一般来说一个成员组织中的所有普通用户在联盟链中所有智能合约中都与相同的操作权限,没法对用户进行更细的权限区分。
[0004]但是,一个联盟链中一般会对接多个业务应用,每个业务应用都会有属于自己的用户群,这些用户不应该能够操作和访问别的业务应用在联盟链上的数据。当前的CA签发的用户体系,想要支撑这种多业务应用的场景,就需要创建更多的成员组织,每个成员组织提供自己的区块链节点,再申请加入到联盟链中,每个业务应用中的用户都由单独的成员组织CA进行签发,这种方式过于繁琐,也会造成很大的资源浪费。

技术实现思路

[0005]本专利技术的目的在于提供一种基于智能合约的无证书联盟链上身份认证方法及系统,以解决上述
技术介绍
中提出的问题。
[0006]为实现上述目的,本专利技术提供如下技术方案:一种基于智能合约的无证书联盟链上身份认证方法,所述基于智能合约的无证书联盟链上身份认证方法包括以下步骤:
[0007]用户在用户侧离线生成非对称密钥对,并自己保存用户私钥;
[0008]用户把自己离线生成的密钥对中的公钥发送给区块链业务应用,区块链业务应用计算用户公钥的哈希值,并使用成员组织admin账户对哈希值进行签名,签名放到区块链业务应用的业务库的用户表中,用户公钥的哈希值为用户的用户ID,完成用户的注册;
[0009]用户使用自己的用户私钥签发交易提案,交易提案中包括提案请求参数、用户私钥对请求参数哈希的签名、用户公钥,交易提案发送给认证智能合约进行认证。
[0010]优选的,用户在用户侧离线生成非对称密钥对时,
[0011]区块链业务应用中保存成员组织的admin账户的私钥,把成员组织admin账户的公钥写入认证智能合约中。
[0012]优选的,用户注册时,
[0013]用户把自己的公钥发送给区块链应用进行注册;
[0014]区块链应用的身份认证模块使用短信验证等技术确定用户的真实身份,确认用户
真实身份之后进入下一步;
[0015]区块链应用使用国密SM3算法计算用户公钥的哈希值;
[0016]区块链应用使用成员组织的admin账户的私钥对用户公钥的哈希值进行签发;没有直接对用户的私钥进行签发,可以减少签发后身份占用的字节数,同时也可以直接使用公钥的哈希作为用户的在业务应用中的唯一标识ID,赋予其业务含义;
[0017]admin账户对用户公钥的哈希完成签发之后,把用户公钥哈希作为用户的唯一标识,用户在业务应用数据库的用户表中的属性还包括用户的公钥、admin账户对用户公钥哈希的签名,以及用户其他标识如手机号、身份证号等;另外,用户的私钥是不包含在业务系统中,用户私钥只有用户自己保密存储。
[0018]优选的,用户认证时,智能合约从交易提案中提取用户公钥,计算公钥的哈希,从用户库中获得成员组织admin账号私钥对用户公钥哈希的签名,使用成员组织admin账户的公钥进行验签,通过验签,用户认证通过。
[0019]优选的,用户认证时,使用交易提案中用户证书对用户签发的交易提案进行校验,校验通过,就可以进入智能合约的具体业务处理阶段,来处理具体的业务逻辑。
[0020]一种基于智能合约的无证书联盟链上身份认证系统,该系统由离线生成模块、用户注册模块以及用户认证模块构成;
[0021]离线生成模块,用于用户在用户侧离线生成非对称密钥对,并自己保存用户私钥;
[0022]用户注册模块,用于用户把自己离线生成的密钥对中的公钥发送给区块链业务应用,区块链业务应用计算用户公钥的哈希值,并使用成员组织admin账户对哈希值进行签名,签名放到区块链业务应用的业务库的用户表中,用户公钥的哈希值为用户的用户ID,完成用户的注册;
[0023]用户认证模块,用于用户使用自己的用户私钥签发交易提案,交易提案中包括提案请求参数、用户私钥对请求参数哈希的签名、用户公钥,交易提案发送给认证智能合约进行认证。
[0024]优选的,所述离线生成模块中,区块链业务应用中保存成员组织的admin账户的私钥,把成员组织admin账户的公钥写入认证智能合约中。
[0025]优选的,所述用户注册模块中,用户把自己的公钥发送给区块链应用进行注册;
[0026]区块链应用的身份认证模块使用短信验证等技术确定用户的真实身份,确认用户真实身份之后进入下一步;
[0027]区块链应用使用国密SM3算法计算用户公钥的哈希值;
[0028]区块链应用使用成员组织的admin账户的私钥对用户公钥的哈希值进行签发;没有直接对用户的私钥进行签发,可以减少签发后身份占用的字节数,同时也可以直接使用公钥的哈希作为用户的在业务应用中的唯一标识ID,赋予其业务含义;
[0029]admin账户对用户公钥的哈希完成签发之后,把用户公钥哈希作为用户的唯一标识,用户在业务应用数据库的用户表中的属性还包括用户的公钥、admin账户对用户公钥哈希的签名,以及用户其他标识如手机号、身份证号等;另外,用户的私钥是不包含在业务系统中,用户私钥只有用户自己保密存储。
[0030]优选的,所述用户注册模块中,智能合约从交易提案中提取用户公钥,计算公钥的哈希,从用户库中获得成员组织admin账号私钥对用户公钥哈希的签名,使用成员组织
admin账户的公钥进行验签,通过验签,用户认证通过。
[0031]优选的,所述用户注册模块中,使用交易提案中用户证书对用户签发的交易提案进行校验,校验通过,就可以进入智能合约的具体业务处理阶段,来处理具体的业务逻辑。
[0032]与现有技术相比,本专利技术的有益效果是:
[0033]本专利技术提出的基于智能合约的无证书联盟链上身份认证方法及系统提供更加安全的用户身份体系,相对于联盟链默认账户在链上生成,并由区块链上的CA把公钥签发证书之后,再发送给用户。使用无证书的公钥可以在用户侧直接生成密钥对,密钥对的私钥只有用户自己持有,不会在网络中传输,用户的私钥一直在用户自己手中,交易提案的签名在用户侧实现,不需要把用户私钥托管到区块链应用的数据库中,提高私钥的安全性;
[0034]链上用户的访问范围粒度更细。联盟链上原生的用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于智能合约的无证书联盟链上身份认证方法,其特征在于:所述基于智能合约的无证书联盟链上身份认证方法包括以下步骤:用户在用户侧离线生成非对称密钥对,并自己保存用户私钥;用户把自己离线生成的密钥对中的公钥发送给区块链业务应用,区块链业务应用计算用户公钥的哈希值,并使用成员组织admin账户对哈希值进行签名,签名放到区块链业务应用的业务库的用户表中,用户公钥的哈希值为用户的用户ID,完成用户的注册;用户使用自己的用户私钥签发交易提案,交易提案中包括提案请求参数、用户私钥对请求参数哈希的签名、用户公钥,交易提案发送给认证智能合约进行认证。2.根据权利要求1所述的一种基于智能合约的无证书联盟链上身份认证方法及系统,其特征在于:用户在用户侧离线生成非对称密钥对时,区块链业务应用中保存成员组织的admin账户的私钥,把成员组织admin账户的公钥写入认证智能合约中。3.根据权利要求2所述的一种基于智能合约的无证书联盟链上身份认证方法及系统,其特征在于:用户注册时,用户把自己的公钥发送给区块链应用进行注册;区块链应用的身份认证模块使用短信验证等技术确定用户的真实身份,确认用户真实身份之后进入下一步;区块链应用使用国密SM3算法计算用户公钥的哈希值;区块链应用使用成员组织的admin账户的私钥对用户公钥的哈希值进行签发;没有直接对用户的私钥进行签发,可以减少签发后身份占用的字节数,同时也可以直接使用公钥的哈希作为用户的在业务应用中的唯一标识ID,赋予其业务含义;admin账户对用户公钥的哈希完成签发之后,把用户公钥哈希作为用户的唯一标识,用户在业务应用数据库的用户表中的属性还包括用户的公钥、admin账户对用户公钥哈希的签名,以及用户其他标识如手机号、身份证号等;另外,用户的私钥是不包含在业务系统中,用户私钥只有用户自己保密存储。4.根据权利要求3所述的一种基于智能合约的无证书联盟链上身份认证方法及系统,其特征在于:用户认证时,智能合约从交易提案中提取用户公钥,计算公钥的哈希,从用户库中获得成员组织admin账号私钥对用户公钥哈希的签名,使用成员组织admin账户的公钥进行验签,通过验签,用户认证通过。5.根据权利要求4所述的一种基于智能合约的无证书联盟链上身份认证方法及系统,其特征在于:用户认证时,使用交易提案中用户证书对用户签发的交易提案进行校验,校验通过,就可以进入智能合约的具体业务处理阶段,来处理具体的业务逻辑。6.一种如上述权利要求1

5任意一项...

【专利技术属性】
技术研发人员:宋明明张立勇
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1