一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链技术的用户身份认证方法与流程

2022-05-27 02:39:56 来源:中国专利 TAG:


1.本发明涉及计算机技术领域和身份认证领域,具体涉及一种基于区块链技术的用户身份认证的方法。


背景技术:

2.用户身份认证一般是指确认用户登录或用户身份鉴别,身份认证技术是在计算机网络中确认操作者身份的过程而产生的有效解决方法。计算机网络世界中一切信息包括用户的身份信息都是用一组特定的数据来表示的,计算机只能识别用户的数字身份,所有对用户的授权也是针对用户数字身份的授权。如何保证以数字身份进行操作的操作者就是这个数字身份合法拥有者,也就是说保证操作者的物理身份与数字身份相对应,身份认证技术就是为了解决这个问题,作为防护网络资产的第一道关口,身份认证有着举足轻重的作用。
3.当前身份认证方式主要为:基于共享密钥的身份验证是指服务器端和用户共同拥有一个或一组密码。当用户需要进行身份验证时,用户通过输入或通过保管有密码的设备提交由用户和身份认证服务器共同拥有的密码。身份认证服务器在收到用户提交的密码后,检查用户所提交的密码是否与身份认证服务器端保存的密码一致,如果一致,就判断用户为合法用户。如果用户提交的密码与身份认证服务器端所保存的密码不一致时,则判定身份验证失败。使用基于共享密钥的身份验证的服务有很多,如:绝大多数的网络接入服务、绝大多数的bbs和维基百科等都是使用基于共享密钥的身份验证进行登录。还有基于生物学特征的身份验证是指基于每个人身体上独一无二的特征,如指纹、虹膜等等。除此之外,基于公开密钥加密算法的身份验证也被广泛使用,该方法是指通信中的双方分别持有公开密钥和私有密钥,由其中的一方采用私有密钥对特定数据进行签名,而对方采用公开密钥对数据进行验签,如果验签成功,就认为用户是合法用户,否则就认为是身份验证失败。上述方法存在验证过程繁琐、安全性差等问题,为解决上述问题,本发明提出了基于区块链技术的用户身份认证方法来实现用户身份认证与登录,本发明的应用改变了传统身份认证方式,增强用户身份认证的安全性,区分信息泄露责任,同时与扫码方式结合,使得用户操作简单,附加使用成本小。


技术实现要素:

4.本发明使用基于区块链钱包的非对称加密算法进行身份认证目的是为了改变当前用户的中心化认证方式,增强用户身份认证的安全性,能够区分登录泄密的责任,同时降低用户身份认证登录的难度。用户只有用自己绑定的钱包地址才可以扫码登录,增加了访问的安全性。该方法需要将钱包地址与用户的账户进行绑定,支持同一区块链钱包绑定多个账户,使用户更安全更方便的进行用户身份认证。
5.一种基于区块链技术的用户身份认证方法,其包括以下步骤:
6.s11、用户使用客户端创建区块链钱包w,并将区块链钱包地址a和其对应的非压缩
公钥pk与用户的账户ua进行绑定;
7.s12、身份认证服务器生成唯一标识的用户账户第一字符串c1,将第一字符串c1转换为二维码元数据,并将二维码元数据发送到第三方应用或客户端,第三方应用或客户端根据二维码元数据生成二维码q;
8.s13、用户使用客户端扫描步骤s12生成的二维码q,解析出二维码q中的第一字符串c1,选择需要认证账户ua,并基于用户账户ua对应的唯一私钥kr使用非对称加密方式获取签名信息sign,将加密数据一起传送给身份认证服务器;
9.s14、身份认证服务器接收步骤s13的加密数据,基于用户账户ua对应的公钥pk使用非对称加密方式对签名信息sign进行认证,通过则身份认证成功,进行用户账户登录。
10.可优选的是,所述步骤s11中将区块链钱包地址a和其对应的非压缩公钥pk与用户的账户ua进行绑定,具体过程:
11.s21、首先,需要输入用户账户名、用户密码和区块链钱包密码进行认证,或着借助面部识别,指纹识别、扫码其他认证用户身份的方式来确认绑定关系;
12.s22、其次,区块链钱包w认证通过推送身份认证数据,包括钱包地址a、钱包公钥pk和用户账户ua到身份认证服务器;
13.s23、最后,身份认证服务器接收到身份认证数据对用户账户ua进行身份校验,校验通过则区块链钱包地址a和其对应的非压缩公钥pk与用户的账户ua绑定成功。
14.可优选的是,所述步骤s12中生成唯一标识的用户账户第一字符串c1是用于登录时认证唯一标识的有效性,唯一标识字符串随机生成,不能重复;将其放入身份认证服务器的缓存中,使用时将其转换为二维码使用。
15.可优选的是,所述步骤s13中基于区块链钱包w对应的唯一私钥kr使用非对称加密方式获取签名信息sign,具体过程为:
16.s31、首先,用户使用客户端扫描并解析出二维码q中的信息,获得用于进行认证的第一字符串c1;
17.s32、然后,客户端将绑定的用户名账户ua和第一字符串c1按照顺序排列组合,形成第二字符串c2;
18.s33、其次,客户端基于区块链钱包的唯一私钥kr使用非对称加密算法对第二字符串c2进行签名,获得签名信息sign;
19.s34、最后,将用户名账户ua、第一字符串c1和签名信息sign加密数据一起传送到身份认证服务器。
20.可优选的是,所述步骤s14中身份认证服务器接收加密数据并分析:身份认证服务器接收加密数据,使用用户名获取绑定的公钥pk,通过公钥pk对接收的签名信息sign进行验证;如果签名信息sign正确,并且第一字符串c1在缓存中没有失效,则通过对用户的身份认证。
21.可优选的是,所述方法应用于第三方应用的去中心化认证场景,具体步骤如下:
22.s41、第三方应用发起用户身份认证请求,身份认证服务器接收第三方应用请求,并判断缓存中的第三方应用属性标识p、认证标识r和签名信息sign是否有效,有效则通过身份认证,执行步骤s45;无效则执行步骤s42;
23.s42、身份认证服务器推送一个含有认证信息v的二维码q给第三方应用或者将认
证信息v直接推送给具有唯一私钥kr的客户端,第三方应用将认证的信息v展示给用户,作为用户进行认证的信息;
24.s43、用户使用客户端扫描二维码q进行认证,或收到身份认证服务器推送来的第三方认证信息v,使用客户端分析认证信息v;
25.s44、如果认证的结果允许第三方应用获得用户认证授权,则将第三方应用的属性标识p和认证标识r,使用应用程序中区块链钱包w、唯一私钥kr和签名信息sign推送给身份认证服务器,身份认证服务器再对签名信息sign进行验证,通过用户身份认证;
26.s45、完成用户身份认证,身份认证服务器缓存第三方应用程序的属性标识p,认证标识r和签名信息sign。
27.可优选的是,所述步骤s41中第三方应用的属性标识p和认证标识r,具体为:
28.所述的第三方应用的属性标识p包括设备标识和第三方应用的客户端ip信息;
29.所述的认证标识r包括用户账号信息、用户的认证有效性签名和认证的有效时间。
30.可优选的是,所述步骤s42中获取验证信息,具体为:用户使用客户端扫描或接收来自身份认证服务器的第三方认证信息v,如果确认允许这个第三方应用通过认证,则将发送过来的第三方应用的属性信息,授权时间和用户账号信息使用唯一的私钥kr进行签名,将第三方应用的属性标识p,认证标识r和签名信息sign一起发送给身份认证服务器。
31.可优选的是,所述步骤s45中保持验证信息,具体为:通过身份认证后,身份认证服务器的认证缓存中需要缓存第三方应用的属性标识p,认证标识r和签名信息sign。
32.与现有技术相比,本发明的有益效果在于:
33.(1)本发明使用基于区块链钱包的非对称加密算法进行身份认证,通过非压缩公钥和唯一私钥改变了当前用户的中心化认证方式,增强用户身份认证的安全性,能够区分登录泄密的责任,同时降低用户身份认证登录的难度;
34.(2)本发明通过第三方应用或客户端扫码方式进行数据信息传递,完成用户的登录系统服务;用户通过使用区块链钱包密钥很方便的管理账户,并且支持同一钱包绑定多个账户,使用户更安全更方便的进行用户身份认证。
附图说明
35.图1为本发明实施例的逻辑流程图;
36.图2为本发明实施例的钱包绑定账户示意图;
37.图3为本发明实施例的用户身份认证示意图;
38.图4为本发明实施例的第三方应用身份认证示意图。
具体实施方式
39.为更好的理解本发明的技术方案,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
40.本发明提出了区块链技术的用户身份认证方法,如图1所示为实现本方法实施例的逻辑流程图,方法主要包括以下步骤:s11、用户使用客户端创建区块链钱包w,并将区块链钱包地址a和其对应的非压缩公钥pk与用户的账户ua进行绑定;s12、身份认证服务器生
成唯一标识的用户账户第一字符串c1,将第一字符串c1转换为二维码元数据,并将二维码元数据发送到第三方应用或客户端,第三方应用或客户端根据二维码元数据生成二维码q;s13、用户使用客户端扫描步骤s12生成的二维码q,解析出二维码q中的第一字符串c1,选择需要认证账户ua,并基于用户账户ua对应的唯一私钥kr使用非对称加密方式获取签名信息sign,将加密数据一起传送给身份认证服务器;s14、身份认证服务器接收步骤s13的加密数据,基于用户账户ua对应的公钥pk使用非对称加密方式对签名信息sign进行认证,通过则身份认证成功,进行用户账户登录。
41.针对不同的应用场景,本发明采用了不同的具体实现步骤,下面分别进行详细的说明。
42.实施例一
43.一种基于区块链技术的用户身份认证方法,下面参照附图来说明本实施例的具体步骤,包括:
44.s11、用户使用客户端创建区块链钱包w,并将区块链钱包地址和其对应的非压缩公钥pk与用户的账户ua进行绑定。
45.钱包与账户绑定关系:如图2所示为钱包和用户绑定关系的示意图,使用钱包地址与账户进行绑定,按照一对多的关系进行绑定,即一个钱包可绑定多个账户,绑定过程中将钱包地址对应的非压缩公钥一起记录,为以后的加解密或认证证签名使用。绑定中需要用户输入用户名和密码来验证绑定关系由用户本人操作,同时需要输入钱包的唯一私钥密码,以确保用户可以正常使用钱包。
46.提供身份认证服务系统,需要提供钱包新增和账户服务绑定功能。如3为示意图,并且可以通过账户名称做区分。例如:新建钱包地址192bf14d0892c16fda5ba3c60012ee8866e71af2提供身份认证服务,绑定平台上的用户abc,或邮箱标识用户aaa@example.com,bbb@example.com。可以使用钱包地址选择登录abc,aaa@example.com或bbb@example.com的账户系统。
47.s12、身份认证web服务器生成唯一标识的用户账户第一字符串c1,将第一字符串c1转换为二维码元数据,并将二维码元数据发送到第三方应用或客户端,第三方应用或客户端根据二维码元数据生成二维码q。
48.身份认证服务器生成唯一标识第一字符串c1,并将用户名和第一字符串c1按照指定格式生成二维码元数据信息。例如:身份认证服务器生成token值为5d7d67ds7ad8ds8adsadsa,则二维码元数据信息为user_login:token=5d7d67ds7ad8ds8adsadsa,客户端根据此二维码元数据信息生成二维码q。
49.s13、用户使用客户端扫描步骤s12生成的二维码q,解析出二维码q中的第一字符串c1,选择需要认证账户ua,并基于用户账户ua对应的唯一私钥kr使用非对称加密方式获取签名信息sign,将加密数据一起传送给身份认证服务器。
50.通过支持身份认证服务的app扫描二维码,分析二维码信息是否以user_login:开始,并获取token值,使用钱包唯一私钥利用非对称加密算法进行数据签名,将签名、账户、token值用json格式推送到身份认证服务器。例如:s12步骤中token值5d7d67ds7ad8ds8adsadsa与账户aaa@exampl.com利用椭圆曲线算法(钱包类型决定使用哪种非对称密钥算法)生成签名为
51.meqciej 0b0sm9l2o3gz0sjmtcpka5bsnvdudlbnn/uurzgmaiarcmop 1ark/99arglxtsxqemsxcrfgvlnruja4szc3q\u003d\u003d。则将数据以json格式推送至身份认证服务器,数据格式为:
52.{"sign":"meqciej 0b0sm9l2o3gz0sjmtcpka5bsnvdudlbnn/uurzgmaiarcmop 1ark/99arglxtsxqemsxcrfgvlnruja4szc3q\u003d\u003d","user":"aaa@example.com","token":"5d7d67ds7ad8ds8adsadsa"}。
53.s14、身份认证服务器接收步骤s13的json格式的数据,基于用户账户ua对应的公钥pk使用非对称加密方式对签名信息sign进行验证,通过则身份认证成功,进行用户账户登录。
54.在本步骤获取s13步骤中的user信息,并取出绑定的钱包地址和非压缩公钥。利用非压缩公钥通过指定算法验证签名信息sign是否有效,验证通过后登录成功。
55.实施例二
56.一种基于区块链技术的用户身份认证方法,应用于第三方应用的去中心化认证场景。下面参照附图4实施例中第三方应用身份认证示意图,来说明本实施例的具体步骤,如下:
57.s41、第三方应用发起用户身份认证请求,身份认证服务器接收第三方应用请求,并判断缓存中的第三方应用属性标识p、认证标识r和签名信息sign是否有效,有效则通过身份认证,执行步骤s45;无效则执行步骤s42;
58.举例:以邮箱客户端接收邮件为例:邮箱客户端发起接收邮件的指令,附带认证信息是指用户名、密码、协议、地址。例如:客户端应用标识:miyouclient-c60012ee88,用户名aaa@example.com,密码passport,通过imap或pop3请求身份认证服务器地址mail.example.com,客户端的请求ip为192.168.1.100。
59.邮件身份认证服务器收到请求后,检验身份认证服务器的缓存中是否有这个第三方应用的认证信息,如果有应用标识miyouclient-c60012ee88,客户端请求ip 192.168.1.100,认证标识中用户为aaa@example.com,验证时间:2022-01-0110:25:22,认证的签名信息:meqciej 0b0sm9l2o3gz0sjmtcpka5bsnvdudlbnn/uurzgmaiarcmop 1ark/99arglxtsxqemsxcrfgvlnruja4szc3q\u003d\u003d,如果有,并且在有效验证时间内(有效时间由身份认证服务器决定,或由用户决定),如1小时,则通过认证。举例中包含了用户密码信息是为了和原有协议兼容,同时也是为了增加附加验证方式。
60.s42、身份认证服务器推送一个含有认证信息v的二维码q给第三方应用或者将认证信息v直接推送给具有唯一私钥kr的第三方应用,第三方应用将认证的信息v展示给用户,作为用户进行认证的信息;
61.如果身份认证服务器端没有这个第三方应用的认证标识或者认证标识已经过期,则推送一封含有验证二维码的邮件到客户端,例如:请求标识miyouclient-c60012ee88,ip为192.168.1.200,aaa@example.com,不在收取邮件的列表内,则发送邮件的二维码内容为receive-check:email=aaa@example.com&ip=192.168.1.200。
62.s43、用户使用客户端扫描二维码q进行认证,或收到身份认证服务器推送来的第三方认证信息v,使用客户端分析认证信息v;
63.举例:用户使用miyou手机app扫描二维码或接收到相关的请求信息,分析信息是
否以receive-check:开始,并获取用户邮箱、客户端标识和ip值,使用钱包私钥利用椭圆曲线算法进行数据签名,将签名、客户端标识、邮箱账户和ip值用json格式推送到身份认证服务器。
64.文本提示信息为:您启用了加强验证方式,接收邮件需要手机端密钥签名验证,请使用miyou手机app扫描二维码确认相关信息。
65.也可以将这个认证信息直接推送到miyou手机app,提示:用户aaa@example.com,客户端标识:miyouclient-c60012ee88,ip为192.168.1.200,申请接收邮件,请确认。
66.如果第三方应用不能传递应用标识,也可以直接使用ip标识,这样安全性会有所下降。
67.s44、如果认证的结果允许第三方应用获得用户认证授权,则将第三方应用的属性标识p和认证标识r,使用应用程序中区块链钱包w、唯一私钥kr和签名信息sign推送给身份认证服务器,身份认证服务器再对签名信息sign进行认证,通过用户身份认证;
68.例如:s43步骤中客户端标识miyouclient-c60012ee88,ip值192.168.1.200与邮箱aaa@exampl.com利用椭圆曲线算法生成的签名为
69.meqciej 0b0sm9l2o3gz0sjmtcpka5bsnvdudlbnn/uurzgmaiarcmop 1ark/99arglxtsxqemsxcrfgvlnruja4szc3q\u003d\u003d。则将数据以json格式推送至邮箱身份认证服务器,邮箱数据格式为:
70.{"sign":"meqciej 0b0sm9l2o3gz0sjmtcpka5bsnvdudlbnn/uurzgmaiarcmop 1ark/99arglxtsxqemsxcrfgvlnruja4szc3q\u003d\u003d","email":"aaa@example.com","client":"miyouclient-c60012ee88","ip":"192.168.1.200"},身份认证服务器端收到这个信息,在缓存中缓存相关的认证信息。
71.s45、完成用户身份认证,身份认证服务器缓存第三方应用程序的属性标识p,认证标识r和签名信息sign。
72.综上,本案例基于区块链技术的用户身份认证方法的具有很好的应用效果。
73.(1)本发明通过实施例说明了基于区块链钱包的非对称加密算法进行身份认证的优势,通过非压缩公钥和唯一私钥改变了传统身份认证方式,增强用户身份认证的安全性,降低了用户身份认证登录的难度;
74.(2)本发明通过实施例中的miyou手机app扫码方式进行数据信息传递,完成用户的登录系统服务功能;用户通过使用区块链钱包密钥很方便的管理账户,并且支持同一钱包绑定多个账户,使用户更安全更方便的进行用户身份认证。
75.最后应说明的是:以上所述的各实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献