一种基于区块链的身份认证方法技术

技术编号:34919433 阅读:23 留言:0更新日期:2022-09-15 07:10
本发明专利技术提供了一种基于区块链的身份认证方法,在区块链技术框架之中创建基于Hyperledger Fabric模型的身份认证方法。将身份认证技术中所包含的传统密码学理论融入到该模型中,采用框架中组织与通道隔离的概念,对云环境下的组织结构进行抽象,形成包含云服务提供商组织和云数据中心组织的网络拓扑;利用密码理论,将JSON Web Token作为用户唯一的身份凭证,设计生成用户身份接入申请和验证用户身份接入申请协议;本发明专利技术在保证用户身份信息安全的基础上,可以实现分布式、透明性和可监管性的认证过程。监管性的认证过程。监管性的认证过程。

【技术实现步骤摘要】
一种基于区块链的身份认证方法


[0001]本专利技术属于区块链
,具体涉及一种基于区块链的身份认证方法。

技术介绍

[0002]随着云环境的发展与普及,识别用户身份的方法变得越来越数字化。很多互联网公司为了便利,采用最传统的口令认证方式。在保证安全的前提下,用户需在不同的应用下使用不同的用户名和密码,由于应用服务数量的快速增长,用户所需记忆的用户名和口令的数量也随之增长,对于那些安全意识比较薄弱的用户,可能采用通用的口令或者某个易于记忆的口令来解决这个问题,但是这种口令的安全性非常脆弱,很容易被破解。为此云服务提供商在应用服务开发层增加口令的限制,比如强制要求口令中有大小写字母、特殊字符等。但这种方式让口令更加的复杂化,在造成不良用户体验的同时更增加了撞库的风险。
[0003]针对目前云环境下应用服务多样化造成用户口令复杂化的问题,云服务提供商提供了基于Token的认证方式,在该认证方式中涉及到三种角色:云用户、CSP、IDM(IdentityManagement),其中IDM担当可信第三方的角色,向CSP证明一个合法用户的身份。云环境下通过IDM实现身份认证具体流程如下:
[0004](1)云用户首先利用注册过的账户和口令向IDM证明身份;
[0005](2)云用户向CSP发起访问资源的请求;
[0006](3)CSP向云用户请求Token;
[0007](4)云用户向IDM发起Token的请求;
[0008](5)IDM产生Token,然后把Token分别传输给云用户和CSP;
[0009](6)云用户将从IDM获得的Token传递给CSP;
[0010](7)CSP对比IDM和云用户发送的Token;
[0011]待验证通过后,向云用户返回可以访问的消息。如上所述的身份认证过程,可以看出IDM在整个认证过程的核心地位,它是CSP和云用户之间的信任桥梁。因此云环境下传统的身份认证有以下三个问题:
[0012]1)中心化认证单点故障问题:
[0013]在传统的云环境身份认证中,IDM一般是经过CA签发的,并且将用户身份凭证(口令、生物特征模板等)存储在服务端进行集中式管理,一旦服务端遭受攻击,所有用户凭证都存在泄露的风险,容易形成大规模的攻击威胁。此外,如果服务端出现自身故障,还存在整个系统无法使用的风险,造成恶劣影响。
[0014]2)身份信息安全与隐私问题:
[0015]传统云环境身份认证模型还存在用户隐私信息被泄漏滥用的风险。由于数字身份信息通常和用户真实身份绑定,非法用户通过中间人攻击将用户的真实身份信息挖掘出来,造成隐私和信息泄漏甚至被非法交易。另外,用户的隐私信息存在被身份服务提供方或应用服务方滥用。
[0016]3)身份数据的价值问题:
[0017]传统的云环境身份认证中,用户对身份信息不具有控制权。通常在云环境下用户对数据的控制入口是云服务提供商提供的数字身份,传统数字身份的属性限定了用户和服务商仅为租赁关系,云服务提供商对用户的数字身份具有决定权和管理权。

技术实现思路

[0018]为了解决现有技术中存在的上述问题,本专利技术提供一种基于区块链的身份认证方法。本专利技术要解决的技术问题通过以下技术方案实现:
[0019]本专利技术提供的一种基于区块链的身份认证方法,应用于云环境下基于身份认证的网络拓扑中,网络拓扑位于区块链中,网络拓扑包括已经授权的云用户端、云服务提供商CSP以及云数据中心CDC,身份认证方法包括:
[0020]云用户端,用于在注册过程中根据用户操作产生注册请求发送至CSP;
[0021]CSP,用于在自身账本中查找云用户端是否存在,如果不存在则将注册请发送至CDC;
[0022]CDC,用于响应注册请求,生成用户的唯一身份凭证;将唯一身份凭证经过秘密密钥加密后,连同秘密密钥作为区块链信息一并进行存储,并将加密过的唯一身份凭证再进行Base64编码后通过CSP返回至云用户端;
[0023]云用户端,用于将接收的响应信息,通过用户私钥对其秘密密钥解密,再通过解编码以及秘密密钥解密文后,得到唯一身份凭证;并在验证过程中将唯一身份凭证通过秘密密钥加密以及编码,并根据编码的唯一身份凭证以及用户身份信息生成登录请求发送至CSP;
[0024]CSP,用于判断登录请求中的用户身份信息是否在自身存储,如果存在,则将登录请求发送至CDC;
[0025]CDC,用于在自身查询用户身份信息,确定用户的区块链信息;将区块链信息中的唯一身份凭证通过秘密密钥解密,得到明文唯一身份凭证;将登录请求中编码的唯一身份凭证与明文唯一身份凭证进行比对确定是否相同,如果相同则向云用户端发送响应信息并更新用户访问区块链信息的时间。
[0026]可选的,注册请求中包括:用户在区块链中的账户ID、用户基础信息以及避免重放攻击的时间戳;自身账本中存储有账号ID、用户基础信息以及账号ID对应的第一区块链信息,该第一区块链信息包括:用户经过Base64编码的公钥,用户注册时间的时间,用户登录时间以及登录成功与否的记录。
[0027]可选的,CSP,用于在自身账本中查找云用户端是否存在,如果不存在则将注册请发送至CDC包括:
[0028]CSP,用于自身账本中查找发送注册请求的账号ID是否存在,如果存在,则向云用户端告知;如果不存在,则调用cdc相关接口将用户在区块链中的账号ID以及用户基础信息作为接口参数传入至CDC中。
[0029]可选的,CDC,用于响应注册请求,生成用户的唯一身份凭证;将唯一身份凭证经过秘密密钥加密后,连同秘密密钥作为区块链信息一并进行存储,并将加密过的唯一身份凭证再进行Base64编码后通过CSP返回至云用户端包括:
[0030]CDC,用于响应于注册请求,生成用户的唯一身份凭证JWT;
[0031]截取唯一身份凭证中的Payload作为该用户的认证凭证JWT_P;
[0032]对认证凭证JWT_P使用秘密密钥Kcdc进行加密,得到结果C1;
[0033]使用Base64对加密结果C1编码得到结果C2;
[0034]使用公钥PKuser对秘密密钥Kcdc加密得到结果K`;
[0035]将秘密密钥Kcdc以及结果K`作为第二区块链信息进行存储;
[0036]将加密结果K`以及结果C2通过CSP反馈至云用户端。
[0037]可选的,在通过CSP返回至云用户端之前,身份认证方法还包括:
[0038]CSP,用于将加密结果K`、结果C2以及避免重放攻击的时间戳反馈至云用户端,并将用户在区块链中的账户ID、用户基础信息以及其他注册信息进行存储。
[0039]可选的,用于将接收的响应信息,通过用户私钥对其秘密密钥解密,再通过解编码以及秘密密钥解密文后,得到唯一身份凭证;并在验证过程中将唯一身份凭证通过秘密密钥加密以及编码,并根据编码的唯一身份凭证以及用户身份信息本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的身份认证方法,应用于云环境下基于身份认证的网络拓扑中,其特征在于,所述网络拓扑位于区块链中,所述网络拓扑包括已经授权的云用户端、云服务提供商CSP以及云数据中心CDC,所述身份认证方法包括:云用户端,用于在注册过程中根据用户操作产生注册请求发送至CSP;CSP,用于在自身账本中查找所述云用户端是否存在,如果不存在则将所述注册请发送至CDC;CDC,用于响应所述注册请求,生成用户的唯一身份凭证;将所述唯一身份凭证经过秘密密钥加密后,连同秘密密钥作为区块链信息一并进行存储,并将加密过的唯一身份凭证再进行Base64编码后通过CSP返回至云用户端;所述云用户端,用于将接收的响应信息,通过用户私钥对其秘密密钥解密,再通过解编码以及秘密密钥解密文后,得到唯一身份凭证;并在验证过程中将所述唯一身份凭证通过秘密密钥加密以及编码,并根据编码的唯一身份凭证以及用户身份信息生成登录请求发送至CSP;所述CSP,用于判断登录请求中的用户身份信息是否在自身存储,如果存在,则将所述登录请求发送至所述CDC;CDC,用于在自身查询用户身份信息,确定用户的区块链信息;将区块链信息中的唯一身份凭证通过秘密密钥解密,得到明文唯一身份凭证;将登录请求中编码的唯一身份凭证与明文唯一身份凭证进行比对确定是否相同,如果相同则向云用户端发送响应信息并更新用户访问区块链信息的时间。2.根据权利要求1所述的基于区块链的身份认证方法,其特征在于,所述注册请求中包括:用户在区块链中的账户ID、用户基础信息以及避免重放攻击的时间戳;所述自身账本中存储有账号ID、用户基础信息以及账号ID对应的第一区块链信息,该第一区块链信息包括:用户经过Base64编码的公钥,用户注册时间的时间,用户登录时间以及登录成功与否的记录。3.根据权利要求2所述的基于区块链的身份认证方法,其特征在于,所述CSP,用于在自身账本中查找所述云用户端是否存在,如果不存在则将所述注册请发送至CDC包括:CSP,用于自身账本中查找发送注册请求的账号ID是否存在,如果存在,则向云用户端告知;如果不存在,则调用cdc相关接口将用户在区块链中的账号ID以及用户基础信息作为接口参数传入至CDC中。4.根据权利要求3所述的基于区块链的身份认证方法,其特征在于,所述CDC,用于响应所述注册请求,生成用户的唯一身份凭证;将所述唯一身份凭证经过秘密密钥加密后,连同秘密密钥作为区块链信息一并进行存储,并将加密过的唯一身份凭证再进行Base64编码后通过CSP返回至云用户端包括:所述CDC,用于响应于所述注册请求,生成用户的唯一身份凭证JWT;截取所述唯一身份凭证中的Payload作为该用户的认证凭证JWT_P;对所述认证凭证JWT_P使用秘密密钥Kcdc进行加密,得到结果C1;使用Base64对加密结果C1编码得到结果C2;使用公钥PKuser对秘密密钥Kcdc加密得到结果K`;将秘密密钥Kcdc以及结果K`作为第二区块链信息进行存储;
将加密结果K`以及结果C2通过CSP反馈至云用户端。5.根据权利要求4所述的基于区块链的身份认证方法,其特征在于,在通过CSP返回至云用户端之前,所述身份认证方法还包括:CSP,用于将加密结果K`、结果C2以及避免重放攻击的时间戳反馈至云用户端,并将用户在区块链中的账户ID、用户基础信息以及其他注册信息进行存储。6.根据权利要求4所述的基于区块链的身份认...

【专利技术属性】
技术研发人员:容晓峰田晨光折宇超曹子建蒋文隆刁振军周行行
申请(专利权)人:西安工业大学
类型:发明
国别省市:

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

1