基于哈希链的线上快速身份验证方法

文档序号:29915185发布日期:2022-05-06 04:00阅读:来源:国知局

技术特征:
1.一种基于哈希链的线上快速身份验证方法,包括注册和认证,其特征在于:(1)在开始哈希链注册之前,对线上快速认证协议fido中的认证器特定模块、uaf客户端和用户代理的完整性进行校验;(2)对校验通过的认证器特定模块、用户代理和uaf客户端进行哈希链的注册:2a)uaf客户端生成两个随机数n1和n2,初始化两个计数器i=1,j=1,uaf客户端重新请求计数器k
uc
=0,初始化哈希链次数l,uaf客户端最大重新请求次数k;2b)将uaf客户端标识callerid分别与两个随机数n1和n2连接,作为认证器特定模块的哈希链种子x
asm
和用户代理的哈希链种子x
ua
;2c)分别对认证器特定模块的哈希链种子x
asm
和用户代理的哈希链种子x
ua
进行l次哈希运算,得到认证器特定模块的初始哈希链信息h1和用户代理的初始哈希链信息h2;2d)设置哈希链注册标志为req,并发送消息(req,h1,k)给认证器特定模块,发送消息(req,h2,k)给用户代理;2e)认证器特定模块收到注册哈希链的消息后,将初始哈希链信息h1分别保存为初始哈希链信息h和哈希链验证信息h’,将uaf客户端最大重新请求次数k保存为认证器特定模块最大重新请求次数k’;初始化计数器i’=0,认证器特定模块重新请求计数器k
asm
=0;2f)用户代理收到注册哈希链的消息后将初始哈希链信息h2分别保存为初始哈希链信息h和哈希链验证信息h’,将最大重新请求次数k保存为用户代理最大重新请求次数k’;初始化计数器j’=0,用户代理重新请求计数器k
ua
=0;(3)运行fido协议,在注册过程和认证过程中进行数据处理和基于哈希链对uaf客户端和认证器特定模块的认证:3a)根据fido协议流程,依次在服务器端、用户代理、uaf客户端之间进行数据的初始化、数据传输及简单运算处理;3b)uaf客户端向认证器特定模块发送数据处理后的原本fido协议数据,同时发起哈希链认证请求;3c)认证器特定模块对uaf客户端进行哈希链认证,认证成功后,继续执行fido协议流程,认证器特定模块对原本fido协议数据进行简单运算,并发送运算后的数据给认证器;认证器对部分数据进行处理,同时对用户进行本地身份校验,校验成功后将处理后的消息返回给认证器特定模块;3d)认证器特定模块向uaf客户端转发认证器处理后的原本fido协议数据,同时发起哈希链认证请求;3e)uaf客户端对认证器特定模块进行哈希链认证,认证成功后,向用户代理转发认证器特定模块发来的原本fido协议数据,同时发起哈希链认证请求;3f)用户代理对uaf客户端进行哈希链认证,认证成功后,继续执行fido协议流程,直至服务器端对返回的fido协议数据校验完毕,若校验通过,则线上快速验证协议对用户的身份注册或身份认证成功。2.根据权利要求1所述的方法,其中3b)中uaf客户端向认证器特定模块发起哈希链认证请求,是由uaf客户端先将认证器特定模块哈希链种子x
asm
进行l-i次的哈希运算,生成哈希校验值h
asm
,再将计数器i的值向上增1,生成一个随机数n和一个时间戳time
ca
,并将该随机数n、时间戳time
ca
和哈希校验值h
asm
一起发送给认证器特定模块。
3.根据权利要求1所述的方法,其中3c)中认证器特定模块对uaf客户端进行哈希链认证,实现如下:3c1)在认证器特定模块收到哈希校验值h
asm
后,先进行一次哈希运算得到哈希值h

asm
,再将h

asm
与2e)存储的哈希链验证信息h’进行比较,判断uaf客户端是否通过认证:如果h

asm
=h’,则认证器特定模块对uaf客户端认证成功,保存随机数n的值,将计数器i’值向上增1,并将哈希链验证信息h’更新为哈希校验值h
asm
;如果h

asm
≠h’,则认证器特定模块对uaf客户端认证失败,则执行3c2);3c2)认证器特定模块将对uaf客户端进行重新请求:3c21)认证器特定模块先将认证器特定模块重新请求计数器k
asm
向上增1,再生成一个时间戳time
asm
,将时间戳time
asm
与计数器i’的值发送给uaf客户端;3c22)uaf客户端收到重新请求信息,验证时间戳time
asm
是否在邻近范围内:如果不在,则不予处理;如果在,则验证通过,先将计数器i的值更新为i’+1,再将认证器特定模块哈希链种子x
asm
进行l-i次的哈希运算,将哈希运算的结果赋给哈希校验值h
asm
,同时生成新的随机数n’,更新时间戳time
ca
,并将n’赋给n,将哈希校验值h
asm
,随机数n’和时间戳time
ca
发送给认证器特定模块;3c23)认证器特定模块验证时间戳time
ca
:若uaf客户端发来的时间戳time
ca
所表示的时间位于步骤3c21)认证器特定模块生成的时间戳time
asm
之前,则不予处理;若uaf客户端发来的时间戳time
ca
所表示的时间位于步骤3c21)认证器特定模块生成的时间戳time
asm
之后,则将收到的哈希校验值h
asm
进行一次哈希运算得到哈希值h

asm
,执行3c3);3c3)将哈希值h

asm
与哈希链验证信息h’进行比较,判断uaf客户端是否通过重新请求认证:如果h

asm
=h’,则重新请求认证通过,认证器特定模块对uaf客户端认证成功,认证器特定模块将n’保存为随机数n,将计数器i’值向上增1,并将哈希链验证信息h’的值更新为哈希校验值h
asm
;如果h

asm
≠h’,则重新请求认证失败,认证器特定模块对认证器特定模块重新请求计数器k
asm
的值进行判断:若认证器特定模块重新请求计数器k
asm
的值小于认证器特定模块最大重新请求次数k’,则返回至3c21);若认证器特定模块重新请求计数器k
asm
的值大于等于认证器特定模块最大重新请求次数k’,则认为正常流程中出现恶意的uaf客户端实体,终止本次fido协议运行。4.根据权利要求1所述的方法,其中3d)中认证器特定模块向uaf客户端发起哈希链认证请求,是由认证器特定模块先将2e)存储的初始哈希链信息h与随机数n作连接,将得到的字符串进行一次哈希运算得到哈希校验值h
uc
,生成时间戳time
ac
,再将时间戳time
ac
与哈希校验值h
uc
同时发送给uaf客户端。5.根据权利要求1所述的方法,其中3e)中uaf客户端对认证器特定模块进行哈希链认证,实现如下:
3e1)uaf客户端将认证器特定模块的初始哈希链信息h1与随机数n连接,并对其进行一次哈希运算得到哈希校验值h

uc
,再将h

uc
与认证器特定模块发来的哈希校验值h
uc
进行比较,判断认证器特定模块是否通过认证:如果h
uc
=h

uc
,则uaf客户端对认证器特定模块认证成功;如果h
uc
≠h

uc
,则uaf客户端对认证器特定模块认证失败,执行3e2);3e2)认证器特定模块请求uaf客户端进行重新认证:3e21)uaf客户端先将uaf客户端重新请求计数器k
uc
向上增1,再生成一个时间戳time
uc
和一个新的随机数n’,并将该新的随机数n’赋给随机数n,将时间戳time
uc
和新的随机数n’发送给认证器特定模块;3e22)认证器特定模块验证时间戳time
uc
是否在邻近范围内:如果不在,则不予处理;如果在,则验证通过,即将随机数n的值更新为n’,将初始哈希链信息h与随机数n作连接,并对其进行一次哈希运算,将哈希运算的结果赋给哈希校验值h
uc
,更新时间戳time
ac
,再将哈希校验值h
uc
和更新后的时间戳time
ac
发送给uaf客户端;3e23)uaf客户端验证时间戳time
ac
:若认证器特定模块发来的时间戳time
ac
位于步骤3e21)uaf客户端生成的时间戳time
uc
之前,则不予处理;若认证器特定模块发来的时间戳time
ac
位于步骤3e21)uaf客户端生成的时间戳time
uc
之后,则将认证器特定模块的初始哈希链信息h1与随机数n作连接,再对其进行一次哈希运算得到哈希校验值h

uc
,执行3e3);3e3)比较h
uc
与h

uc
,判断认证器特定模块是否通过重新请求认证:如果h
uc
=h

uc
,则重新请求认证通过,uaf客户端对认证器特定模块认证成功;如果h
uc
≠h

uc
,则重新请求认证失败,uaf客户端对uaf客户端重新请求计数器k
uc
的值进行判断:若uaf客户端重新请求计数器k
uc
的值小于uaf客户端最大重新请求次数k,则返回至3e21);若uaf客户端重新请求计数器k
uc
的值大于等于uaf客户端最大重新请求次数k,则认为正常流程中出现恶意的认证器特定模块,终止本次fido协议运行。6.根据权利要求1所述的方法,其中3e)中uaf客户端向用户代理发起哈希链认证请求,是由uaf客户端先将用户代理哈希链种子x
ua
进行l-j次的哈希运算,生成哈希校验值h
ua
,再将计数器j的值向上增1,生成一个时间戳time
cu
,再将时间戳time
cu
与哈希校验值h
ua
发送给用户代理。7.根据权利要求1所述的方法,其中3f)用户代理对uaf客户端进行哈希链认证,实现如下:3f1)在用户代理收到哈希校验值h
ua
后,先进行一次哈希运算得到哈希值h

ua
,再将h

ua
与2f)存储的哈希链验证信息h’进行比较,判断uaf客户端是否通过认证:如果h

ua
=h’,则用户代理对uaf客户端认证成功,将计数器j’值向上增1,并将哈希链验证信息h’更新为哈希校验值h
ua
;如果h

ua
≠h’,则用户代理对uaf客户端认证失败,执行3f2);
3f2)uaf客户端请求用户代理进行重新认证:3f21)用户代理先将用户代理重新请求计数器k
ua
向上增1,再生成一个时间戳time
ua
,将时间戳time
ua
与计数器j’的值发送给uaf客户端;3f22)uaf客户端验证时间戳time
ua
是否在邻近范围内:如果不在,则不予处理;如果在,则验证通过,先将计数器j的值更新为j’+1,再将用户代理哈希链种子x
ua
进行l-i次的哈希运算,将哈希运算的结果赋给哈希校验值h
ua
,更新时间戳time
cu
,将哈希校验值h
ua
和时间戳time
cu
发送给用户代理;3f23)用户代理验证时间戳time
cu
:若uaf客户端发来的时间戳time
cu
所表示的时间位于步骤3f21)用户代理生成的时间戳time
ua
之前,则不予处理;若uaf客户端发来的时间戳time
cu
所表示的时间位于步骤3f21)用户代理生成的时间戳time
ua
之后,将收到的哈希校验值h
ua
进行一次哈希运算得到哈希值h

ua
,执行3f3);3f3)将哈希值h

ua
与哈希链验证信息h’进行比较,判断uaf客户端是否通过重新请求认证:如果h

ua
=h’,则重新请求认证通过,用户代理对uaf客户端认证成功,用户代理将计数器j’向上增1,并将哈希链验证信息h’的值更新为哈希校验值h
ua
;如果h

ua
≠h’,则重新请求认证失败,用户代理对用户代理重新请求计数器k
ua
的值进行判断:若用户代理重新请求计数器k
ua
的值小于用户代理最大重新请求次数k’,则返回至3f21);若用户代理重新请求计数器k
ua
的值大于等于用户代理最大重新请求次数k’,则认为正常流程中出现恶意的uaf客户端实体,终止本次fido协议运行。

技术总结
本发明公开了一种基于哈希链的线上快速身份认证方法,主要解决现有的线上快速身份认证协议FIDO在诚实实体进行正常的注册或认证流程中可能出现恶意UAF客户端、恶意认证器特定模块从而泄露消息,影响协议机密性,导致恶意登录的问题。其实现方案是:初始化FIDO协议各相关实体;调用本地安全环境指令验证实体的完整性;进行哈希链注册;运行FIDO协议,在保证协议正常运行的前提下,基于哈希链实现认证器特定模块、用户代理对UAF客户端的校验以及UAF客户端对认证器特定模块的校验,增强协议的安全性,实现用户在在线服务中的身份注册和认证。本发明安全性强,速度快、开销小,可用于在线服务的远程登录、身份认证及交易认证。身份认证及交易认证。身份认证及交易认证。


技术研发人员:孙聪 高玉堃 马建峰
受保护的技术使用者:西安电子科技大学
技术研发日:2022.01.02
技术公布日:2022/5/5
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1