一种在区块链中进行双向身份认证方法技术

技术编号:19390962 阅读:34 留言:0更新日期:2018-11-10 02:48
本发明专利技术涉及一种在区块链中进行双向身份认证的方法,对需要进行数据交互的双方进行双向认证,并通过存在性证明的方法记录到区块链网络中。本发明专利技术属于区块链和隐私保护创新领域。本发明专利技术设计出的在区块链中的双向方法,可应用于在需要进行隐私保护的数据应用环境,同时实现方式简单,易于操作。

A bidirectional identity authentication method in block chain

The invention relates to a method of bidirectional identity authentication in a block chain, which can authenticate two parties that need data interaction and record them in a block chain network by means of existence proof. The invention belongs to the field of block chain and privacy protection innovation. The bidirectional method in the block chain designed by the invention can be applied to the data application environment requiring privacy protection, and the realization method is simple and easy to operate.

【技术实现步骤摘要】
一种在区块链中进行双向身份认证方法
本专利技术涉及区块链
及身份认证技术,主要是一种在区块链中进行双向身份认证方法。
技术介绍
区块链是一种分布式账本技术,账本内的交易按照密码学签名和哈希算法保证不可篡改,且所有交易在账本中可追溯。在公有区块链中,用户的账户信息和交易内容都是公开的,仅仅通过“伪匿名”的方式保护用户隐私。但在数据作为资产的情况下,一方面用户并不希望所有的数据资源都开放给公共的网络环境,另一方面服务商业不希望数据在一次授权后就被其他用户无限次使用,因此有必要使用加密技术来保护数据隐私,同时又要保证授权的服务商能够查看数据,以保证大数据应用的正常使用。这就需要灵活的访问控制策略来实现对不同用户访问权限的控制。
技术实现思路
本专利技术的目的在于克服现有技术存在的不足,而提供一种在区块链中进行双向身份认证方法。本专利技术的目的是针对现有互联网环境下,用户一旦提交数据,则无法再对数据进行管理的弊端,通过身份认证和数据加密的方法,在大数据环境下保护用户隐私,具体来说是通过区块链技术将用户与服务器之间的交互通过双向的身份认证进行保护。该方法适用于用户和服务商之间的数据交互环节形成身份识别并利于数据在公开的区块链网络上存储。本专利技术的目的是通过如下技术方案来完成的。这种在区块链中进行双向认证的方法,将用户对服务器以及服务器对用户进行双向认证,并且将用户的认证信息保留在区块链中作为存在性证明,同时还保留了用户认证信息的转移的权利;具体包括如下步骤:S1:用户注册:步骤1:终端用户(U)通过加密信道向服务器(S)注册应用,向服务器(S)发送AU、K、Mix信息;其中,AU为终端用户(U)的数字交易地址,为终端用户(U)的标识,K为终端用户(U)和服务器(S)间交互信息加密的对称秘钥,Mix为注册日期信息以及终端用户(U)添加的其他说明信息;步骤2:服务器(S)生成校验码CV=MSEx(hash(AU||K||Mix)),其中,MSEx()表示校验码截取前x位;“||”表示将前后两个字节流串接,并通过加密信道将CV发送给终端用户(U);S2:打包交易信息到区块链网络上:步骤3:终端用户(U)使用UID、CV、AU形成ID=hash(AU||CV||UID),并用私钥sU对ID签名,其中UID为终端用户(U)注册名或其他信息;使能将终端用户的CV不在区块链网络上以明文形式存在,并且通过签名证明该CV为终端用户(U)所拥有;步骤4:打包一个区块链网络上的标准交易信息,将以上得到的ID以及签名嵌入到标准消息中;此时,交易的发起方和接收方均为AU,以保证需要的时候可以将该认证信息发送给其他用户;S3:终端用户(U)向服务器(S)认证;S4:终端用户(U)对服务器(S)认证。作为优选,终端用户(U)向服务器(S)认证的具体流程为:终端用户(U)将自身的CV、AU发送给服务器(S),并保留此次验证时间为Tb,首先服务器(S)查找区块链网络中是否存在终端用户(U)签名的ID是否存在,即采用用户公钥pU验证ID的正确性,如证明存在,则进行下一步,否则退出验证;服务器(S)查找与之对应的堆成秘钥K、Mix信息,计算CV‘=MSEx(hash(AU||K||Mix)),比比较CV=CV’是否成立,若成立,则用户验证成功。作为优选,终端用户(U)对服务器(S)认证:服务器(S)验证了终端用户(U)的合法性后,采用私钥sS对当前时间信息Tn和上述ID组成的信息ID||Tn进行签名,通过互联网发送给终端用户(U),终端用户采用服务器提供的公钥pS验证签名的真实性,若签名真实,则进行下一步,若不真实,则退出验证;同时比较给出的Tn>Tb是否成立,若成立,则证明该服务器为真实注册过的服务器(S),若不正确,则退出验证。作为优选,在步骤2中,其中Hash函数hash()采用SHA-1、SHA-256、SHA-512、Whirlpool、RIPEMD-160算法。作为优选,在步骤4中,要保证消息的合法性既不能违背标准消息格式,也要保证该交易的有效性,需要加上对区块链网络奖励的代币。S3:终端用户(U)向服务器(S)认证。本专利技术的有益效果为:依据上述方法可以在将终端用户(U)和服务器(S)之间的对称秘钥和公开秘钥进行交互,形成验证信息,并且在区块链网络上通过存在性证明该验证信息属于终端用户(U)。同时通过交易发送给终端用户(U)的方式保证了该存在证明可以被交易给其他用户。附图说明图1为双向认证的主要流程图。图2为终端用户(U)和服务器(S)以及区块链网络之间的关系以及数据交互示意图。具体实施方式下面结合附图和具体实施例,进一步阐明本专利技术,应理解这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的各种等价形式的修改均落后于本申请所附权利要求所限定的范围。如图2所示,终端用户(U)与服务器(S)之间的隐私保护通过第三方的区块链网络来实现。在区块链网络上的每个用户至少设置一对公/私钥,其中终端用户(U)具有公私钥对pU/sU,服务端(S)具有公私钥对ps/ss。并通过以上公钥p通过约定的区块链网络形成交易数字地址A(p),其中A表示形成地址的算法,输入为公钥p,该地址在此区块链网络上具有唯一性。在本专利技术实施例中,本专利技术提供了一种双向认证方法,并在区块链网络上形成存在性证明。如图1所示:S1:用户注册:步骤1:终端用户(U)通过加密信道向服务器(S)注册应用,向服务器(S)发送AU、K、Mix信息。其中,AU为终端用户(U)的数字交易地址,为终端用户(U)的标识,K为终端用户(U)和服务器(S)间交互信息加密的对称秘钥,Mix为注册日期信息以及终端用户(U)添加的其他说明信息。步骤2:服务器(S)生成校验码CV=MSEx(hash(AU||K||Mix)),其中,Hash函数hash()可以采用SHA-1、SHA-256、SHA-512、Whirlpool、RIPEMD-160等算法,为了与区块链技术取得统一,推荐使用SHA-256算法;MSEx()表示校验码截取前x位;“||”表示将前后两个字节流串接。并通过加密信道将CV发送给终端用户(U)。S2:打包交易信息到区块链网络上。步骤3:终端用户(U)使用UID、CV、AU形成ID=hash(AU||CV||UID),并用私钥sU对ID签名。其中UID为终端用户(U)注册名或其他信息。该步骤的目的是将终端用户的CV不在区块链网络上以明文形式存在,并且通过签名证明该CV为终端用户(U)所拥有。步骤4:打包一个区块链网络上的标准交易信息,将以上得到的ID以及签名嵌入到标准消息中。此时,交易的发起方和接收方均为AU,以保证需要的时候可以将该认证信息发送给其他用户。在此过程中要保证消息的合法性既不能违背标准消息格式,也要保证该交易的有效性。因此需要加上对区块链网络奖励的代币(在此区块链上产生、流通的货币),例如,在已经成熟的比特币网络中,有一种标准的交易格式,该交易消息的输出部分操作码是OP_RETURN,作为打包该笔交易的矿工的奖励;若该笔交易没有被成功打包且过了存在的有效时间,则重新构造该交易信息,加大交易奖励,即加大给矿工的费用,来获得更大的本文档来自技高网...

【技术保护点】
1.一种在区块链中进行双向认证的方法,其特征在于:将用户对服务器以及服务器对用户进行双向认证,并且将用户的认证信息保留在区块链中作为存在性证明,同时还保留了用户认证信息的转移的权利;具体包括如下步骤:S1:用户注册:步骤1:终端用户(U)通过加密信道向服务器(S)注册应用,向服务器(S)发送AU、K、Mix信息;其中,AU为终端用户(U)的数字交易地址,为终端用户(U)的标识,K为终端用户(U)和服务器(S)间交互信息加密的对称秘钥,Mix为注册日期信息以及终端用户(U)添加的其他说明信息;步骤2:服务器(S)生成校验码CV=MSEx(hash(AU||K||Mix)),其中,MSEx()表示校验码截取前x位;“||”表示将前后两个字节流串接,并通过加密信道将CV发送给终端用户(U);S2:打包交易信息到区块链网络上:步骤3:终端用户(U)使用UID、CV、AU形成ID=hash(AU||CV||UID),并用私钥sU对ID签名,其中UID为终端用户(U)注册名或其他信息;使能将终端用户的CV不在区块链网络上以明文形式存在,并且通过签名证明该CV为终端用户(U)所拥有;步骤4:打包一个区块链网络上的标准交易信息,将以上得到的ID以及签名嵌入到标准消息中;此时,交易的发起方和接收方均为AU,以保证需要的时候可以将该认证信息发送给其他用户;S3:终端用户(U)向服务器(S)认证;S4:终端用户(U)对服务器(S)认证。...

【技术特征摘要】
1.一种在区块链中进行双向认证的方法,其特征在于:将用户对服务器以及服务器对用户进行双向认证,并且将用户的认证信息保留在区块链中作为存在性证明,同时还保留了用户认证信息的转移的权利;具体包括如下步骤:S1:用户注册:步骤1:终端用户(U)通过加密信道向服务器(S)注册应用,向服务器(S)发送AU、K、Mix信息;其中,AU为终端用户(U)的数字交易地址,为终端用户(U)的标识,K为终端用户(U)和服务器(S)间交互信息加密的对称秘钥,Mix为注册日期信息以及终端用户(U)添加的其他说明信息;步骤2:服务器(S)生成校验码CV=MSEx(hash(AU||K||Mix)),其中,MSEx()表示校验码截取前x位;“||”表示将前后两个字节流串接,并通过加密信道将CV发送给终端用户(U);S2:打包交易信息到区块链网络上:步骤3:终端用户(U)使用UID、CV、AU形成ID=hash(AU||CV||UID),并用私钥sU对ID签名,其中UID为终端用户(U)注册名或其他信息;使能将终端用户的CV不在区块链网络上以明文形式存在,并且通过签名证明该CV为终端用户(U)所拥有;步骤4:打包一个区块链网络上的标准交易信息,将以上得到的ID以及签名嵌入到标准消息中;此时,交易的发起方和接收方均为AU,以保证需要的时候可以将该认证信息发送给其他用户;S3:终端用户(U)向服务器(S)认证;S4:终端用户(U)对服务器(S)认证。2.根据权利要求1所述的在区块链中进行双向认证的方法,...

【专利技术属性】
技术研发人员:徐劲松严军荣
申请(专利权)人:三维通信股份有限公司
类型:发明
国别省市:浙江,33

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

1