一种面向区块链应用的移动端身份验证方法与流程

文档序号:11236587阅读:778来源:国知局
一种面向区块链应用的移动端身份验证方法与流程

本发明涉及面向去中心化的区块链账本技术应用和移动端本地身份验证方法,尤其涉及一种一种面向区块链应用的移动端身份验证方法。



背景技术:

区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,用于存储区块链网络上所有用户的余额,公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。

拥有中心服务器的传统app在用户输入账号密码后点击登录时候,发送网络请求,请求后台的登录接口,后台服务器程序检查数据库中密码和账户名与用户通过网络请求发送的密码和账户名是否一致,将检查后的登录信息返回给app客户端,成功则改变用户登录状态。

很明显,这一过程过于繁琐,并且将与自身利益密切相关的账户名和密码交给第三方中心服务器代为保管,甚至将用户自身的隐私信息一并公开在第三方中心服务器上,用户需要完全自主地管理隐私信息,因此我们引入一种面向区块链应用的移动端身份验证方法,简化验证流程并保证用户能够自由使用区块链应用。



技术实现要素:

本发明的目的是针对现有技术的不足以及用户隐私信息保护的迫切需求,提供一种面向区块链应用的移动端身份验证方法。

本发明的目的是通过以下技术方案来实现的:一种面向区块链应用的移动端身份验证方法,包括如下步骤:

(1)若用户首次使用,则在移动端本地随机生成唯一私钥;若用户非首次使用,则在移动端本地输入私钥;私钥的长度为32字节;移动端本地对私钥进行长度验证;若验证成功,则用户的私钥只会保存在移动端本地沙盒中并进入步骤(2),若验证失败,重新输入私钥;

(2)发起区块链网络请求时,用户必须在移动端本地,根据椭圆曲线签名算法,利用私钥生成长度为33字节的公钥,取低32字节作为最终的公钥,移动端使用私钥对公钥进行验证,若验证失败,重新回到步骤(1),若验证成功,则使用keccak算法对公钥进行哈希,散列大小选取256位,哈希结果从第13字节开始,取20字节的长度,作为用户在移动端本地生成的在网络中公开使用的地址;完成身份的验证。

进一步的,所述移动端本地使用伪随机算法生成私钥,能够保证用户私钥唯一。

本发明的有益效果是:本发明在移动端本地对使用区块链应用的用户进行身份验证,满足用户在移动端本地自主管理区块链移动端相关应用的私钥。对于拥有中心服务器的传统app在用户输入账号密码后点击登录时候,发送网络请求,请求后台的登录接口,后台服务器程序检查数据库中密码和账户名与用户通过网络请求发送的密码和账户名是否一致,将检查后的登录信息返回给app客户端,成功则改变用户登录状态,不可避免将与用户利益直接相关的隐私信息公开在第三方中心化服务器上,为保护用户的账户隐私本发明利用移动端本地身份验证方法,区块链网络对使用用户私钥的签名进行验证,无需用户的私钥,私钥始终不会公开在网络上,只是保存在移动端本地,用户能完全自主地管理私钥,保证用户能正常使用区块链应用的同时有效地解决了传统app的用户账户密码公开问题。

附图说明

图1是面向区块链应用的移动端用户首次使用生成私钥和地址的身份验证的过程图;

图2是面向区块链应用的移动端用户非首次使用的身份验证的过程图。

具体实施方式

下面根据附图和具体实施例详细描述本发明,本发明的目的和效果将变得更加明显。

如图1和图2所示,本发明面向区块链应用的移动端身份验证方法,在首次使用一个面向区块链的移动端app,用户无需向第三方中心服务器发送账户名和密码,在移动端本地自动生成私钥并且由用户自己进行管理;在进行身份验证时,使用用户提供的私钥得到能在区块链网络中公开的唯一标识用户的地址,具体步骤如下:

(1)首次使用时,在移动端本地随机生成长度为256位的数字串得到32字节的唯一私钥;移动端对本地生成的私钥进行长度验证;若验证失败,重新输入私钥;

(2)验证成功之后用户的私钥只会保存在移动端本地沙盒中,用户可以查看并以其他形式保存,供用户保存并在下次登录时使用将生成的私钥保存在移动端本地沙盒文件中,并提示用户保存;

(3)发起区块链网络请求时,用户必须在移动端本地,根据椭圆曲线签名算法,利用私钥生成长度为33字节的公钥,取低32字节作为最终的公钥,移动端使用私钥对公钥进行验证,验证成功之后使用keccak算法对公钥进行哈希,散列大小选取256位,哈希结果从第13字节开始,取20字节的长度,作为用户在移动端本地生成的在网络中公开使用的地址;

(4)非首次登录输入用户已拥有的私钥,在移动端本地自动进行长度验证,验证成功,生成公钥并使用用户输入的私钥继续对公钥进行验证,验证成功后即可正常使用区块链应用。

所述的步骤(1)中,用户首次使用app时在移动端本地使用伪随机算法生成长度为256位的16进制数字串作为用户的私钥,且该私钥可以作为用户在所有区块链项目中的私钥使用。

所述的步骤(3)中,椭圆曲线dsa保证了公钥无法逆向获得私钥。随机生成的私钥得到相应的32字节的公钥,keccak是一个加密杂凑算法,在移动端本地使用能够有效抵抗碰撞攻击、原象攻击以及第二原象攻击、长度扩展等常见的攻击方法的keccak算法对公钥进行哈希,散列大小选取256位,选取其中的20字节作为公开的地址。

下面用一个用户使用面向区块链移动端应用实例来说明验证方法具体实施:

模拟用户a使用面向区块链移动端应用在本地进行身份验证。

首先,如图1所示,若a首次使用面向区块链移动端应用,在移动端本地使用伪随机算法得到私钥,然后移动端本地使用生成的私钥同时对私钥进行长度验证,验证成功得到公钥,并使用私钥对公钥进行验证,验证成功后通过公钥得到地址,如图2所示,若a已经拥有面向区块链移动端应用的私钥,移动端得到a输入的私钥进行验证,公钥的验证从而实现在移动端本地进行对用户的身份验证。以上是一个完整的身份验证过程。



技术特征:

技术总结
本发明公开了一种面向区块链应用的移动端身份验证方法,在一个区块链网络上,用户必须拥有属于自己的私钥,首次使用时,在移动端生成私钥,再由私钥生成唯一标识用户本身的地址,地址在区块链网络中公开,身份验证的步骤具体为:唯一私钥钥生成;私钥存在移动端本地沙盒;当使用APP发送区块链网络请求时,通过私钥生成公开唯一地址;私钥生成后提示用户保存;非首次使用时,可以直接输入登录。本发明实现了面向区块链应用的移动端本地身份验证方法,解决了传统APP使用中暴露了用户不愿公开的隐私信息的问题,实现了对用户隐私保护的同时能够有效地进行身份验证功能。

技术研发人员:李启雷;梁秀波;李伟;邱炜伟;尹可挺
受保护的技术使用者:杭州趣链科技有限公司
技术研发日:2017.04.18
技术公布日:2017.09.12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1