CN109981675A - 一种数字身份认证和属性加密的身份信息保护方法 - Google Patents
一种数字身份认证和属性加密的身份信息保护方法 Download PDFInfo
- Publication number
- CN109981675A CN109981675A CN201910272862.2A CN201910272862A CN109981675A CN 109981675 A CN109981675 A CN 109981675A CN 201910272862 A CN201910272862 A CN 201910272862A CN 109981675 A CN109981675 A CN 109981675A
- Authority
- CN
- China
- Prior art keywords
- user
- server
- identity information
- block chain
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明属于信息安全认证领域,涉及身份认证的安全,确切讲是一种数字身份认证和属性加密的身份信息保护方法,其特征是:至少包括:用户单元、用户本地服务器、用户服务商服务器和区块链CA4,用户单元通过用户本地服务器、用户服务商服务器和区块链CA4进行身份信息的访问和隐私保护。它提供了一种安全性好,使用维护方便的基于属性加密的身份信息保护方法。
Description
技术领域
本发明属于信息安全认证领域,涉及身份认证的安全,确切讲是一种数字身份认证和属性加密的身份信息保护方法。
背景技术
伴随着互联网的蓬勃发展,人们每天都在使用越来越多的互联网服务,而在服务商给用户提供服务之前,服务商需要对用户进行身份认证,往往需要用户完成身份的校验才能登陆服务系统。
目前,业内常用的身份认证技术如图1所示,包括:
1、注册阶段:用户和服务器之间建立应用层HTTPS连接,用户将自己的用户名ID和口令Password传输给服务器,服务器随机一个盐值Salt,将Password连接Salt之后进行哈希运算,得到哈希值Hash(Password+Salt),服务器将用户名ID,Hash值以及用户的Salt值存放在服务端的数据库中,完成注册。此外,服务端往往会要求用户完善自己的身份信息,如电话号码,真实姓名,家庭住址等个人信息才能完全对用户提供服务,如电商,社交服务。
注册阶段的说明,服务端不存储用户的口令Password是为了防止数据库数据泄露导致用户的口令被泄漏从而被“黑客”利用而发起“撞库攻击”,而在哈希前进行“加盐”操作是为了防止黑客根据哈希值发起“彩虹表”攻击。
2、校验阶段:用户和服务器建立HTTPS连接,用户将自己的用户名ID和口令Password传输给服务器,服务器根据ID取得用户的盐值,然后计算哈希值Hash(Password+Salt),将计算得到的哈希值与数据库中存储的哈希值进行对比,如果一致则校验通过,校验阶段完成。然后,服务器取出存储在数据库中的用户个人信息,对用户提供服务。
综上所述,现在最主流的身份认证的方法存在着中心化过强所带来的一系列效率,安全性,隐私性上的问题。分析如下,对于用户来说,用户需要为每一个服务商注册并记忆一个独特的身份,比如需要建立各不相同的“用户名-口令”组合。这种过于繁琐的认证方式不但给人们带来了越来越大的记忆负担,由于人们更加倾向于在不同的服务商使用相同的口令,这就导致一旦用户泄漏了口令,比如在某个安全性较低的服务提供商处由于认证方案的实现不够完善而泄漏了口令,就可能遭受一系列隐私的身份信息泄漏以及巨大的经济损失风险。对于服务商来说,服务商需要为每个用户建立一个巨大的信息储存仓库用于存放用户的认证凭证和隐私信息,一旦用户量增大,维护服务器高可用性的成本以及安全性的成本将会非常高。对于诚实的服务商们来说,数字身份在服务端的存储是极度冗余的,大多数服务商处存放的用户个人信息是重复的,不光是用户需要重复的填写信息,服务商也需要为存储以及保护这些重复信息付出巨大的成本。而对于一个不诚实的服务商来说,出卖用户的隐私信息可以轻易地获得巨大的收益而几乎不需要付出多少代价。此外,作为整个服务中心节点的服务提供商来说,他可以轻易地妨碍用户使用部分服务乃至禁止用户使用服务,甚至可以任意地删除用户在互联网上完善了多年的数字身份信息,其中可能包含着用户多年来收集的信息,如文章,商品,维护的社会关系,如好友列表等等,而用户对自己的数字身份信息没有掌控权,无法将本属于自己的身份信息在不同的服务商之间进行主动地转移。
发明内容
本发明的目的是提供一种安全性好,使用维护方便的基于属性加密的身份信息保护方法。
本发明是这样实现的,一种数字身份认证和属性加密的身份信息保护方法,其特征是:至少包括:用户单元1、用户本地服务器2、用户服务商服务器3和区块链CA4,
1)用户单元1在用户本地服务器2建立产生在区块链CA4中的地址;
2)将步骤1)建立产生在区块链CA4中的地址通过用户本地服务器2和用户服务商服务器3在区块链CA4上注册数字身份;
3)用户服务商服务器3借助区块链CA4完成对用户身份的校验;
4)用户单元1转移确认的数字身份到区块链CA上;
5)用户单元1通过用户本地服务器2、用户服务商服务器3和区块链CA4进行身份信息的访问和隐私保护。
所述的步骤(1)包括如下具体步骤:
用户单元1在用户本地服务器2建立产生在区块链CA4中的地址;
(1a)用户单元1使用伪随机数生成器(CSPRNG)生成一个32字节的密码数,然后通过指定KeyPairGenerator类的参数获取椭圆曲线类型的密钥对生成器,使用ECGenParameterSpec类指定椭圆曲线的类型为secp256k1,计算得到符合X.509标准的公钥,以及符合PKCS#8的私钥;
(1b)使用椭圆曲线加密算法(ECDSA-secp256k1)计算私钥所对应的非压缩公钥PubKey,建立公私钥对完成;
(1c)对公钥进行SHA256哈希计算得到256bit的哈希值表示用户身份在区块链CA4中的地址。
所述的步骤(2)中,将步骤1)建立用户的身份信息通过用户本地服务器2和用户服务商服务器3在区块链CA4上形成数字身份包括以下步骤:
(2a)用户单元1通过区块链CA4向用户服务商服务器3广播发送用户单元1的身份信息索引信息,实际使用中以JSON格式完成序列化后传输。现用图表形式表示如下:
(2b)区块链CA4中用户服务商服务器3收到用户发送的上述注册身份信息之后,对信息进行判断处理,当用户为第一次注册,置PrevID和PrevPubkey的值为空;由于没有PrevPubkey,置Signature也为空;用户服务商服务器3将自己收到的身份信息添加ID,然后打包形成区块链CA4中的打包信息;区块链CA4中的打包信息如下:
(2c)调用节点运行共识算法,对共识算法的结果进行处理,如果本轮由此节点打包区块,则将节点的“出块权”依据和区块信息简单表示如下:
(2d)节点之间使用“泛洪算法”,将新出的块进行检查验证区块发布者的合法性,验证通过的话节点进行同步更新;
(2e)当区块链CA4在全网大多数节点之间同步完成之后,链上数据可以看作是公开且不可篡改的,此时身份信息视为完成注册,节点向用户单元1返回身份信息在区块链CA4上的ID。
如图4所示,所述的步骤(3)用户服务商服务器3借助区块链CA4完成对用户身份的校验包括以下步骤:
(3a)用户单元1通过用户本地服务器2及网络请求用户服务商服务器3服务,建立用户单元1和用户服务商服务器3的HTTPS连接,然后向用户服务商服务器3发送自己的身份依据(ID,pubKey),请求登陆;
(3b)用户服务商服务器3根据用户的ID,查询到区块链CA4上的数字身份信息;如果用户的数字身份成功注册在区块链CA4上,则用户服务商服务器3查询得到数字身份信息的Hash和身份信息数据库地址URL;
(3c)用户服务商服务器3进行校验运算,判断SHA256(pubKey)是否等于链上的Hash值;如果没通过,则向用户返回“查询失败”信息;
(3d)如果通过校验,用户服务商服务器3则根据URL找到存放着具体的数字身份信息的数据库5;用户服务商服务器3得到身份信息的密文;
(3e)根据用户服务商服务器3自身的属性,进行基于属性的解密,查询到允许得到的身份信息;
(3f)用户单元1通过用户本地服务器2及网络请求用户服务商服务器3服务。
所述的步骤(4)用户单元1转移确认的数字身份到区块链CA上包括以下步骤:
(4a)用户单元1生成一对新的公私钥,生成新的身份公钥的哈希,然后得到新的身份信息索引信息;
(4b)用户本地服务器2节点通过用户服务商服务器3广播发送新的身份信息索引信息到其它节点;
(4c)调用节点运行共识算法,根据共识算法的结果,如果本轮由此节点打包区块,则将自己的“出块权”依据和区块信息打包,然后进行广播;
(4d)节点之间使用“泛洪算法”,将新出的块进行检查验证区块发布者的合法性,验证通过的话节点进行同步更新;
(4e)当区块链CA4在系统节点之间同步完成之后,链上数据可以看作是公开且不可篡改的,此时身份信息视为完成更新过程;系统其它节点向用户单元1返回新的身份信息标识在链上的ID。
所述的步骤(5)用户单元1通过用户本地服务器2、用户服务商服务器3和区块链CA4进行身份信息的访问和隐私保护包括以下步骤:
(5a)用户单元1与各用户服务商服务器3建立属性列表{A1,A2,A3…},把各用户服务商服务器3类型作为系统的用户记为{S1,S2,S3…};例如,属性可以为“需要知道地址的”,“需要知道年龄的”,“需要知道兴趣爱好的”等等;
(5b)用户单元1生成系统的主密钥和公钥;为系统用户{S1,S2,S3…}分发私钥;
(5c)用户单元1根据系统的属性设定访问结构,然后将自己的身份信息进行加密;
(5d)若系统的用户服务商服务器3的属性集满足访问结构,则可以用从用户处请求到的私钥进行解密,得到允许获得的身份信息的明文;从用户是系统主用户单元1交易对像;
(5e)用户单元1需要修改自己的身份信息的时候,需要对自己的身份信息重新进行加密。
本发明的优点及积极效果为:
本发明利用区块链的去中心化一致性特点和链上信息的不可篡改特性,建立了去中心化的公钥基础设施DPKI,为用户的数字身份标识建立了去中心化的认证机构CA,使得用户身份的认证不再依赖于中心,从而能够摆脱大量记忆“用户名-口令”组合的负担。因为用户的身份不再存储在某些服务商处,用户在使用新的服务的时候也可以不再重新填写新的身份信息,而是可以基于服务商的类型给服务商分发对应的隐私级别的密钥,使得服务商仅能获得用户允许其获得的部分隐私,并且服务商之间不能对隐私信息完成“共谋攻击”以获得更多的隐私信息。从而做到了对隐私更好的保护的同时还提高了系统的易用性。本发明具体描述了数字身份注册,身份校验的时序流程图。实现了用户数字身份的安全性,认证的便捷性,同时还减少了服务商对于用户隐私的滥用,对于服务商来说,服务商也摆脱了大量存储并且保护用户的数字身份信息的高昂成本,将隐私数据重新归还给了用户。实现了用户,服务商与认证机构三方的“解耦合”。通过对数字身份转移的设计,本发明还为将来可能会产生的“量子攻击”做好了准备,能够使得用户的链上信息实现“抗量子攻击”特性。
以下结合实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
附图说明
图1是现有的用于客户端和服务端之间身份认证方式的时序图;
图2是本发明系统构架图;
图3用户服务商服务器借助区块链CA4完成对用户身份的校验流程图;
图4是数字身份校验流程图。
图中,1、用户单元;2、用户本地服务器;3、用户服务商服务器;4、区块链CA。
具体实施方式
如图2和图3所示,一种数字身份认证和属性加密的身份信息保护方法,它至少包括:用户单元1、用户本地服务器2、用户服务商服务器3和区块链CA4,
1)用户单元1在用户本地服务器2建立产生在区块链CA4中的地址;
2)将步骤1)建立产生在区块链CA4中的地址通过用户本地服
务器2和用户服务商服务器3在区块链CA4上注册数字身份;
3)用户服务商服务器3借助区块链CA4完成对用户身份的校验;
4)用户单元1转移确认的数字身份到区块链CA上;
5)用户单元1通过用户本地服务器2、用户服务商服务器3和
区块链CA4进行身份信息的访问和隐私保护。
所述的步骤(1)包括如下具体步骤:
用户单元1在用户本地服务器2建立产生在区块链CA4中的地址;
(1a)用户单元1使用伪随机数生成器(CSPRNG)生成一个32字节的密码数,然后通过指定KeyPairGenerator类的参数获取椭圆曲线类型的密钥对生成器,使用ECGenParameterSpec类指定椭圆曲线的类型为secp256k1,计算得到符合X.509标准的公钥,以及符合PKCS#8的私钥;
(1b)使用椭圆曲线加密算法(ECDSA-secp256k1)计算私钥所对应的非压缩公钥PubKey,建立公私钥对完成;
(1c)对公钥进行SHA256哈希计算得到256bit的哈希值表示用户身份在区块链CA4中的地址。
所述的步骤(2)中,将步骤1)建立用户的身份信息通过用户本地服务器2和用户服务商服务器3在区块链CA4上形成数字身份包括以下步骤:
(2a)用户单元1通过区块链CA4向用户服务商服务器3广播发送用户单元1的身份信息索引信息,实际使用中以JSON格式完成序列化后传输。现用图表形式表示如下:
(2b)区块链CA4中用户服务商服务器3收到用户发送的上述注册身份信息之后,对信息进行判断处理,当用户为第一次注册,置PrevID和PrevPubkey的值为空;由于没有PrevPubkey,置Signature也为空;用户服务商服务器3将自己收到的身份信息添加ID,然后打包形成区块链CA4中的打包信息;区块链CA4中的打包信息如下:
(2c)调用节点运行共识算法,对共识算法的结果进行处理,如果本轮由此节点打包区块,则将节点的“出块权”依据和区块信息简单表示如下:
(2d)节点之间使用“泛洪算法”,将新出的块进行检查验证区块发布者的合法性,验证通过的话节点进行同步更新;
(2e)当区块链CA4在全网大多数节点之间同步完成之后,链上数据可以看作是公开且不可篡改的,此时身份信息视为完成注册,节点向用户单元1返回身份信息在区块链CA4上的ID。
如图4所示,所述的步骤(3)用户服务商服务器3借助区块链CA4完成对用户身份的校验包括以下步骤:
(3a)用户单元1通过用户本地服务器2及网络请求用户服务商服务器3服务,建立用户单元1和用户服务商服务器3的HTTPS连接,然后向用户服务商服务器3发送自己的身份依据(ID,pubKey),请求登陆;
(3b)用户服务商服务器3根据用户的ID,查询到区块链CA4上的数字身份信息;如果用户的数字身份成功注册在区块链CA4上,则用户服务商服务器3查询得到数字身份信息的Hash和身份信息数据库地址URL;
(3c)用户服务商服务器3进行校验运算,判断SHA256(pubKey)是否等于链上的Hash值;如果没通过,则向用户返回“查询失败”信息;
(3d)如果通过校验,用户服务商服务器3则根据URL找到存放着具体的数字身份信息的数据库5;用户服务商服务器3得到身份信息的密文;
(3e)根据用户服务商服务器3自身的属性,进行基于属性的解密,查询到允许得到的身份信息;
(3f)用户单元1通过用户本地服务器2及网络请求用户服务商服务器3服务。
所述的步骤(4)用户单元1转移确认的数字身份到区块链CA上包括以下步骤:
(4a)用户单元1生成一对新的公私钥,生成新的身份公钥的哈希,然后得到新的身份信息索引信息;
(4b)用户本地服务器2节点通过用户服务商服务器3广播发送新的身份信息索引信息到其它节点;
(4c)调用节点运行共识算法,根据共识算法的结果,如果本轮由此节点打包区块,则将自己的“出块权”依据和区块信息打包,然后进行广播;
(4d)节点之间使用“泛洪算法”,将新出的块进行检查验证区块发布者的合法性,验证通过的话节点进行同步更新;
(4e)当区块链CA4在系统节点之间同步完成之后,链上数据可以看作是公开且不可篡改的,此时身份信息视为完成更新过程;系统其它节点向用户单元1返回新的身份信息标识在链上的ID。
所述的步骤(5)用户单元1通过用户本地服务器2、用户服务商服务器3和区块链CA4进行身份信息的访问和隐私保护包括以下步骤:
(5a)用户单元1与各用户服务商服务器3建立属性列表{A1,A2,A3…},把各用户服务商服务器3类型作为系统的用户记为{S1,S2,S3…};例如,属性可以为“需要知道地址的”,“需要知道年龄的”,“需要知道兴趣爱好的”等等;
(5b)用户单元1生成系统的主密钥和公钥;为系统用户{S1,S2,S3…}分发私钥;
(5c)用户单元1根据系统的属性设定访问结构,然后将自己的身份信息进行加密;
(5d)若系统的用户服务商服务器3的属性集满足访问结构,则可以用从用户处请求到的私钥进行解密,得到允许获得的身份信息的明文;从用户是系统主用户单元1交易对像;
(5e)用户单元1需要修改自己的身份信息的时候,需要对自己的身份信息重新进行加密。
下面结合具体分析对本发明作进一步描述:
使用Java自带的符合密码学安全标准的随机数生成器SecureRandom类生成32字节安全随机数如下:7a1a52eb46e1635f28ba82fa0192bc934ef9da84c70c3758f286c5ea1aa8c439,随机数的长度为:64位十六进制数,即长度为32字节。
使用密钥对生成器keyPairGenerator生成一对公私钥,使用X509EncodedKeySpec用于构建公钥规范,PKCS8EncodedKeySpec用于构建私钥规范,说明:X509EncodedKeySpec使用X.509标准作为密钥规范管理的编码格式。PKCS8EncodedKeySpec使用PKCS#8标准作为密钥规范管理的编码格式。将公私钥对转化为十六进制数打印出来,便于查看和分析。
注册时生成的公钥数据publicKey:3056301006072a8648ce3d020106052b8104000a034200040268956f6c10bb6d85096d7c57a4d3579b739c5ee0edada73fec61f988e9043452161776ac823ef47acfdc72731de10adba37b438310d2a0bb9f81b2aa551af4;
公钥长度:176位十六进制数,其中48位十六进制数是X.509标准要求的其他信息,128位十六进制数代表公钥本身的信息。
注册时生成的私钥数据privateKey:303e020100301006072a8648ce3d020106052b8104000a04273025020101042032de935ad32a325e371a228ff717a0f195ad4ed42872009e2bdf2c08dc438a8d
私钥长度:128位十六进制数,其中64位十六进制数是PKCS#8标准要求的其他信息,64位十六进制数代表私钥本身,即256位二进制数的私钥长度。
公钥的SHA256哈希值(publickeyHash):557f862ed6a49cd83a040691a88a09d9216f2907b88eff7e2126b92317825ec4
SHA256哈希值长度:64位十六进制数,即256位二进制数长度。
此时我们就拥有了注册时所需要的全部的数字身份信息,我们用表格表示注册身份信息,以及实际传输中的使用的JSON格式表示数字身份信息,如下:
用户注册完成之后可以得知自己的身份信息在链上的id是1,id信息将在之后更新数字身份信息的时候以prevId被使用。
下面演示更新数字身份信息时生成的身份信息。
更新数字身份的公钥数据:3056301006072a8648ce3d020106052b8104000a03420004074b96cddefc7acb933176ac8328254b1b86f2e1707ff34ffd0624cbe359c2343cbb70eab96b4bf6707de907fbd5526108ea97a93f707e4bbdc459ce187d151b
公钥长度:同上注册时所用的公钥信息。
此时我们就拥有了更新时所需要的全部的数字身份信息,我们用表格表示注册身份信息,以及实际传输中的使用的JSON格式表示数字身份信息,如下:
JSON字符串的形式:
其中签名信息signature是由JDK自带的SHA256withECDSA算法进行的签名,具体是使用注册时用户生成并自己保存的私钥信息来对身份信息的以下部分进行签名:
签名算法可以得到如下的签名结果:
jdkecdsasig2:30450220467985682322aa468d13862a72f9e279b9f1dff3b1da84e2d7d53bd141927309022100e794c85e87dbb4db1effaabee31c2208cfa2580335013efdd69b9030a7db6d2b
签名的长度为:142位十六进制数或者140位十六进制数都有可能,这是由算法本身决定的,本文不对此处进行过多的讨论。
服务提供商可以根据身份更新信息中提供的PrevPubkey来对新的数字身份信息JSON字符串中的数字签名Signature进行验证签名。
结果返回为true。则验证通过,数字身份更新成功。
数字身份删除的流程和更新的流程基本一致,除了不需要停工新的数字身份信息,将新的公钥信息置为空即可。此处不再赘述。
需要说明的是:本发明中一些述语采用了行业内通用语法或词语,一便本行业内容易理解。
本发明解决了现有问题,其优点在于:
互联网本身是去中心化的,人人都可以连接互联网,发布信息以及获取信息,但互联网是没有身份的,它只能将信息从某个IP传递到另一个IP,至于是谁在使用这些IP,互联网是不知道的。而服务本身是强中心化的,大量的用户都会依赖于某个中心节点,即服务提供商才能享受服务,而许多服务是强身份相关的,只有知道身份信息才能提供对应的服务。我们在之前的分析中可以看到,用户因为自己的数字身份因为需要依赖中心化的认证而失去了安全性,可移动性,隐私性以及掌控能力。服务商也因为需要为了用户大量存储以及保护冗余的身份信息而付出巨大的成本。这些能力原本就是应该属于用户的。只是因为技术的限制才进入了“双输”的局面。这个问题解决的意义是很大的,一方面将数字身份的控制权重新还给了用户,用户重新能够掌握自己的数字身份信息,不需要将它重复地存放到不同的服务商处任服务商处置;另一方面,服务商将数字身份还给用户之后,不需要为用户的数字身份的安全存储付出巨大的成本。实现了“双赢”。
难点一:与服务器的身份认证方式相比,服务商的身份是由CA认证的,依赖于中心化的DNS解析,用户才能根据域名精准地找到互联网中的特定的服务商的服务器。用户在与服务商建立安全的连接的过程中,服务商会提供自己的数字证书,上面有CA的签名用于证明自己的确是经过认证的服务提供商。CA认证的成本是非常高的,普通用户根本无法承担,CA机构也无力为每个用户进行身份认证并且发放证书,而DNS解析是将特定的服务商的域名绑定到特定的IP地址上,用户的IP地址是变动的,身份与IP绑定也是不现实的。
难点二、用户的数字身份存储问题。在中心化的数字身份使用场景下,用户的数字身份存储在中心化的服务器的数据库中,所以用户是不具备对数字身份信息的控制权的,用户的身份也无法在各个服务商之间转移。要实现用户对数字身份信息的完全掌握,意味着用户具备选择是否使用数字身份,更新数字身份,以及删除数字身份的能力。此外,对于不同的服务提供商,用户可以选择提供足够使用服务的部分数字身份信息,而非所有的数字身份信息。
难点三、后量子时代即将到来,用户不能长时间的暴露自己的公钥信息,因为量子计算机具备从公钥信息反推得到私钥信息的能力。本发明需要解决用户既能证明自己身份,又不会长时间地暴露自己的公钥信息,从而能够防止被量子计算攻击。
在本发明中,针对难点一,我们首先需要建立一条区块链,再利用区块链建立了去中心化的公钥基础设施DPKI,区块链上的数据具有不可篡改的特性,用户使用椭圆曲线算法(ECC),使用参数为Secp256k1的椭圆曲线生成一对公私钥(PK,SK),然后将公钥信息用SHA256哈希算法进行哈希计算,将哈希值与数字身份的URL绑定之后作为凭证存储到区块链上。针对难点二,用户的数字身份信息,需要用户进行基于属性的加密ABE,然后将密文存放在第三方的云存储设施中,或者存放在自己个人的服务器中。当不同的服务商需要访问数字身份信息的时候,根据服务商所拥有的属性,服务商可以获得不同的访问权限,从而使得具有不同的属性的服务商可以获得隐私程度不同的身份信息。
针对难点三,我们将公钥的哈希值而非公钥本身放在区块链上存储,使得敌手即使拥有量子计算机也无法找到公钥然后从公钥中反向计算出私钥。每次认证的时候,本系统需要用户向服务商出示自己的公钥,认证完成后,用户将自己的数字身份从一个已经暴露了公钥的身份地址指向新的公钥未暴露的身份地址,从而使得自己的公钥信息只有在认证的时候为人所知,其余时候都不会暴露而受到量子攻击的风险。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种数字身份认证和属性加密的身份信息保护方法,其特征是:至少包括:用户单元、用户本地服务器、用户服务商服务器和区块链CA,
1)用户单元在用户本地服务器建立产生在区块链CA中的地址;
2)将步骤1)建立产生在区块链CA4中的地址通过用户本地服务器和用户服务商服务器在区块链CA上注册数字身份;
3)用户服务商服务器借助区块链CA完成对用户身份的校验;
4)用户单元转移确认的数字身份到区块链CA上;
5)用户单元通过用户本地服务器、用户服务商服务器和区块链CA进行身份信息的访问和隐私保护。
2.根据权利要求1所述的一种数字身份认证和属性加密的身份信息保护方法,其特征是:所述的步骤(1)包括如下具体步骤:
(1a)用户单元使用伪随机数生成器生成一个32字节的密码数,然后通过指定KeyPairGenerator类的参数获取椭圆曲线类型的密钥对生成器,使用ECGenParameterSpec类指定椭圆曲线的类型为secp256k1,计算得到符合X.509标准的公钥,以及符合PKCS#8的私钥;
(1b)使用椭圆曲线加密算法(ECDSA-secp256k1)计算私钥所对应的非压缩公钥PubKey,建立公私钥对完成;
(1c)对公钥进行SHA256哈希计算得到256bit的哈希值表示用户身份在区块链CA4中的地址。
3.根据权利要求1所述的一种数字身份认证和属性加密的身份信息保护方法,其特征是:所述的步骤(2)中,将步骤1)建立用户的身份信息通过用户本地服务器和用户服务商服务器在区块链CA4上形成数字身份包括以下步骤:
(2a)用户单元通过区块链CA向用户服务商服务器广播发送用户单元的身份信息索引信息;
(2b)区块链CA中用户服务商服务器收到用户发送的上述注册身份信息之后,对信息进行判断处理,当用户为第一次注册,置PrevID和PrevPubkey的值为空;由于没有PrevPubkey,置Signature也为空;用户服务商服务器将自己收到的身份信息添加ID,然后打包形成区块链CA中的打包信息;区块链CA中的打包信息如下:
(2c)调用节点运行共识算法,对共识算法的结果进行处理,如果本轮由此节点打包区块,则将节点的“出块权”依据和区块信息简单表示如下:
(2d)节点之间使用“泛洪算法”,将新出的块进行检查验证区块发布者的合法性,验证通过的话节点进行同步更新;
(2e)当区块链CA在全网大多数节点之间同步完成之后,链上数据可以看作是公开且不可篡改的,此时身份信息视为完成注册,节点向用户单元返回身份信息在区块链CA上的ID。
4.根据权利要求1所述的一种数字身份认证和属性加密的身份信息保护方法,其特征是:所述的步骤(3)用户服务商服务器借助区块链CA4完成对用户身份的校验包括以下步骤:
(3a)用户单元通过用户本地服务器及网络请求用户服务商服务器服务,建立用户单元和用户服务商服务器的HTTPS连接,然后向用户服务商服务器发送自己的身份依据,请求登陆;
(3b)用户服务商服务器根据用户的ID,查询到区块链CA上的数字身份信息;如果用户的数字身份成功注册在区块链CA上,则用户服务商服务器查询得到数字身份信息的Hash和身份信息数据库地址URL;
(3c)用户服务商服务器进行校验运算,判断SHA256是否等于链上的Hash值;如果没通过,则向用户返回“查询失败”信息;
(3d)如果通过校验,用户服务商服务器则根据URL找到存放着具体的数字身份信息的数据库;用户服务商服务器得到身份信息的密文;
(3e)根据用户服务商服务器自身的属性,进行基于属性的解密,查询到允许得到的身份信息;
(3f)用户单元通过用户本地服务器及网络请求用户服务商服务器服务。
5.根据权利要求1所述的一种数字身份认证和属性加密的身份信息保护方法,其特征是:所述的步骤(4)用户单元转移确认的数字身份到区块链CA上包括以下步骤:
(4a)用户单元生成一对新的公私钥,生成新的身份公钥的哈希,然后得到新的身份信息索引信息;
(4b)用户本地服务器节点通过用户服务商服务器广播发送新的身份信息索引信息到其它节点;
(4c)调用节点运行共识算法,根据共识算法的结果,如果本轮由此节点打包区块,则将自己的“出块权”依据和区块信息打包,然后进行广播;
(4d)节点之间使用“泛洪算法”,将新出的块进行检查验证区块发布者的合法性,验证通过的话节点进行同步更新;
(4e)当区块链CA在系统节点之间同步完成之后,链上数据可以看作是公开且不可篡改的,此时身份信息视为完成更新过程;系统其它节点向用户单元返回新的身份信息标识在链上的ID。
6.根据权利要求1所述的一种数字身份认证和属性加密的身份信息保护方法,其特征是:所述的步骤(5)用户单元通过用户本地服务器、用户服务商服务器和区块链CA进行身份信息的访问和隐私保护包括以下步骤:
(5a)用户单元与各用户服务商服务器建立属性列表{A1,A2,A3…},把各用户服务商服务器类型作为系统的用户记为{S1,S2,S3…};例如,属性可以为“需要知道地址的”,“需要知道年龄的”,“需要知道兴趣爱好的”等等;
(5b)用户单元生成系统的主密钥和公钥;为系统用户{S1,S2,S3…}分发私钥;
(5c)用户单元根据系统的属性设定访问结构,然后将自己的身份信息进行加密;
(5d)若系统的用户服务商服务器的属性集满足访问结构,则可以用从用户处请求到的私钥进行解密,得到允许获得的身份信息的明文;从用户是系统主用户单元交易对像;
(5e)用户单元需要修改自己的身份信息的时候,需要对自己的身份信息重新进行加密。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910272862.2A CN109981675B (zh) | 2019-04-04 | 2019-04-04 | 一种数字身份认证和属性加密的身份信息保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910272862.2A CN109981675B (zh) | 2019-04-04 | 2019-04-04 | 一种数字身份认证和属性加密的身份信息保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109981675A true CN109981675A (zh) | 2019-07-05 |
CN109981675B CN109981675B (zh) | 2021-10-26 |
Family
ID=67083169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910272862.2A Active CN109981675B (zh) | 2019-04-04 | 2019-04-04 | 一种数字身份认证和属性加密的身份信息保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109981675B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110781419A (zh) * | 2020-01-02 | 2020-02-11 | 成都四方伟业软件股份有限公司 | 一种基于区块链的多系统配合使用的方法 |
CN111131259A (zh) * | 2019-12-26 | 2020-05-08 | 罗碧霞 | 一种基于多方合营项目管理模式的账目共享系统 |
CN111199036A (zh) * | 2020-01-06 | 2020-05-26 | 北京三快在线科技有限公司 | 身份验证方法、装置及系统 |
CN111859348A (zh) * | 2020-07-31 | 2020-10-30 | 上海微位网络科技有限公司 | 一种基于用户识别模块及区块链技术的身份认证方法及装置 |
CN112383401A (zh) * | 2020-11-10 | 2021-02-19 | 中国科学院大学 | 一种提供身份鉴别服务的用户名生成方法及系统 |
CN112866242A (zh) * | 2021-01-15 | 2021-05-28 | 迅鳐成都科技有限公司 | 一种基于区块链的数字身份验证方法、设备及存储介质 |
CN112866241A (zh) * | 2021-01-15 | 2021-05-28 | 迅鳐成都科技有限公司 | 一种基于区块链的数字身份更新方法、设备及存储介质 |
CN114202427A (zh) * | 2022-02-18 | 2022-03-18 | 深圳市金斧子网络科技有限公司 | 一种基于区块链的私募基金变更方法、系统及存储介质 |
CN114389903A (zh) * | 2022-03-24 | 2022-04-22 | 深圳百胜扬工业电子商务平台发展有限公司 | 一种数字身份信息加密和认证方法 |
CN114500030A (zh) * | 2022-01-21 | 2022-05-13 | 黎鸿 | 基于数字地址的弹性链方法 |
CN114826654A (zh) * | 2022-03-11 | 2022-07-29 | 中国互联网络信息中心 | 一种基于域名系统命名的客户端认证方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106779716A (zh) * | 2016-11-21 | 2017-05-31 | 江苏通付盾科技有限公司 | 基于区块链账户地址的认证方法、装置及系统 |
US20170257358A1 (en) * | 2016-03-04 | 2017-09-07 | ShoCard, Inc. | Method and System for Authenticated Login Using Static or Dynamic Codes |
CN107181765A (zh) * | 2017-07-25 | 2017-09-19 | 光载无限(北京)科技有限公司 | 基于区块链技术的网络数字身份认证方法 |
CN107196966A (zh) * | 2017-07-05 | 2017-09-22 | 北京信任度科技有限公司 | 基于区块链的多方信任的身份认证方法和系统 |
CN107257336A (zh) * | 2017-06-15 | 2017-10-17 | 北京汇通金财信息科技有限公司 | 一种用户认证方法及系统 |
CN107483198A (zh) * | 2017-09-25 | 2017-12-15 | 中国科学院信息工程研究所 | 一种可监管的区块链系统及方法 |
CN108599954A (zh) * | 2018-03-16 | 2018-09-28 | 西安电子科技大学 | 基于分布式账本的身份验证方法 |
CN108702622A (zh) * | 2017-11-30 | 2018-10-23 | 深圳前海达闼云端智能科技有限公司 | 移动网络接入认证方法、装置、存储介质及区块链节点 |
EP3396612A1 (en) * | 2017-04-24 | 2018-10-31 | BlockSettle AB | Method and system for creating a user identity |
-
2019
- 2019-04-04 CN CN201910272862.2A patent/CN109981675B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170257358A1 (en) * | 2016-03-04 | 2017-09-07 | ShoCard, Inc. | Method and System for Authenticated Login Using Static or Dynamic Codes |
CN106779716A (zh) * | 2016-11-21 | 2017-05-31 | 江苏通付盾科技有限公司 | 基于区块链账户地址的认证方法、装置及系统 |
EP3396612A1 (en) * | 2017-04-24 | 2018-10-31 | BlockSettle AB | Method and system for creating a user identity |
CN107257336A (zh) * | 2017-06-15 | 2017-10-17 | 北京汇通金财信息科技有限公司 | 一种用户认证方法及系统 |
CN107196966A (zh) * | 2017-07-05 | 2017-09-22 | 北京信任度科技有限公司 | 基于区块链的多方信任的身份认证方法和系统 |
CN107181765A (zh) * | 2017-07-25 | 2017-09-19 | 光载无限(北京)科技有限公司 | 基于区块链技术的网络数字身份认证方法 |
CN107483198A (zh) * | 2017-09-25 | 2017-12-15 | 中国科学院信息工程研究所 | 一种可监管的区块链系统及方法 |
CN108702622A (zh) * | 2017-11-30 | 2018-10-23 | 深圳前海达闼云端智能科技有限公司 | 移动网络接入认证方法、装置、存储介质及区块链节点 |
CN108599954A (zh) * | 2018-03-16 | 2018-09-28 | 西安电子科技大学 | 基于分布式账本的身份验证方法 |
Non-Patent Citations (1)
Title |
---|
宋文斌: "《中国优秀硕士学位论文全文数据库 信息科技辑》", 15 February 2019 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131259A (zh) * | 2019-12-26 | 2020-05-08 | 罗碧霞 | 一种基于多方合营项目管理模式的账目共享系统 |
CN111131259B (zh) * | 2019-12-26 | 2023-12-22 | 北京亿邦德利智能科技有限公司 | 一种基于多方合营项目管理模式的账目共享系统 |
CN110781419B (zh) * | 2020-01-02 | 2020-04-28 | 成都四方伟业软件股份有限公司 | 一种基于区块链的多系统配合使用的方法 |
CN110781419A (zh) * | 2020-01-02 | 2020-02-11 | 成都四方伟业软件股份有限公司 | 一种基于区块链的多系统配合使用的方法 |
CN111199036B (zh) * | 2020-01-06 | 2022-06-07 | 北京三快在线科技有限公司 | 身份验证方法、装置及系统 |
CN111199036A (zh) * | 2020-01-06 | 2020-05-26 | 北京三快在线科技有限公司 | 身份验证方法、装置及系统 |
CN111859348A (zh) * | 2020-07-31 | 2020-10-30 | 上海微位网络科技有限公司 | 一种基于用户识别模块及区块链技术的身份认证方法及装置 |
CN111859348B (zh) * | 2020-07-31 | 2022-07-19 | 上海微位网络科技有限公司 | 一种基于用户识别模块及区块链技术的身份认证方法及装置 |
CN112383401A (zh) * | 2020-11-10 | 2021-02-19 | 中国科学院大学 | 一种提供身份鉴别服务的用户名生成方法及系统 |
CN112866241A (zh) * | 2021-01-15 | 2021-05-28 | 迅鳐成都科技有限公司 | 一种基于区块链的数字身份更新方法、设备及存储介质 |
CN112866242A (zh) * | 2021-01-15 | 2021-05-28 | 迅鳐成都科技有限公司 | 一种基于区块链的数字身份验证方法、设备及存储介质 |
CN112866242B (zh) * | 2021-01-15 | 2023-03-14 | 迅鳐成都科技有限公司 | 一种基于区块链的数字身份验证方法、设备及存储介质 |
CN114500030A (zh) * | 2022-01-21 | 2022-05-13 | 黎鸿 | 基于数字地址的弹性链方法 |
CN114500030B (zh) * | 2022-01-21 | 2023-06-20 | 黎鸿 | 基于数字地址的弹性链方法 |
CN114202427A (zh) * | 2022-02-18 | 2022-03-18 | 深圳市金斧子网络科技有限公司 | 一种基于区块链的私募基金变更方法、系统及存储介质 |
CN114202427B (zh) * | 2022-02-18 | 2022-06-03 | 深圳市金斧子网络科技有限公司 | 一种基于区块链的私募基金变更方法、系统及存储介质 |
CN114826654A (zh) * | 2022-03-11 | 2022-07-29 | 中国互联网络信息中心 | 一种基于域名系统命名的客户端认证方法及系统 |
CN114826654B (zh) * | 2022-03-11 | 2023-09-12 | 中国互联网络信息中心 | 一种基于域名系统命名的客户端认证方法及系统 |
CN114389903A (zh) * | 2022-03-24 | 2022-04-22 | 深圳百胜扬工业电子商务平台发展有限公司 | 一种数字身份信息加密和认证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109981675B (zh) | 2021-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109981675A (zh) | 一种数字身份认证和属性加密的身份信息保护方法 | |
CN106254374B (zh) | 一种具备去重功能的云数据公开审计方法 | |
Horn et al. | Authentication protocols for mobile network environment value-added services | |
CN104811450B (zh) | 云计算中一种基于身份的数据存储方法及完整性验证方法 | |
CN114186248B (zh) | 基于区块链智能合约的零知识证明可验证凭证数字身份管理系统及方法 | |
CN110022217B (zh) | 一种基于区块链的广告传媒业务数据可信存证系统 | |
CN102647461B (zh) | 基于超文本传输协议的通信方法、服务器、终端 | |
CN110138560B (zh) | 一种基于标识密码和联盟链的双代理跨域认证方法 | |
CN104811300B (zh) | 云存储的密钥更新方法及云数据审计系统的实现方法 | |
US7194765B2 (en) | Challenge-response user authentication | |
JP4639084B2 (ja) | セキュア認証の暗号方法および暗号装置 | |
CN108270571A (zh) | 基于区块链的物联网身份认证系统及其方法 | |
CN109889497A (zh) | 一种去信任的数据完整性验证方法 | |
CN105681470B (zh) | 基于超文本传输协议的通信方法、服务器、终端 | |
CN109286490A (zh) | 支持密态数据去重和完整性验证方法及系统 | |
CN111526023A (zh) | 一种基于ipk的区块链上链数据安全认证方法与系统 | |
CN114255034A (zh) | 一种基于区块链的可验证公平性的电子投票方法 | |
CN110457928B (zh) | 基于区块链的医企协作互联网医院数据安全保障方法 | |
CN112565294B (zh) | 一种基于区块链电子签名的身份认证方法 | |
CN110365469A (zh) | 一种支持数据隐私保护的云存储中数据完整性验证方法 | |
McCorry et al. | Authenticated key exchange over bitcoin | |
CN108599944A (zh) | 一种基于手机身份的验证码短信透明加密方法 | |
CN104901804A (zh) | 一种基于用户自主的标识认证实现方法 | |
CN106790045A (zh) | 一种基于云环境分布式虚拟机代理架构及数据完整性保障方法 | |
CN109831458A (zh) | 一种iot电子行为记录管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |