【技术实现步骤摘要】
基于哈希链的线上快速身份验证方法
[0001]本专利技术属于网络安全
,特别涉及一种线上快速身份验证方法,可用于在线服务的远程登录、身份认证、交易认证。
技术介绍
[0002]长久以来,口令一直作为身份验证的一个重要手段,输入用户名与密码进行校验一度成为所有在线网站的身份验证方式。在口令成为一个用户唯一身份认证标识时,口令的泄露无疑将带来很大危害。随着技术的发展,更多的身份验证手段出现,人们尝试使用独一无二的生物特征,如指纹、面容、虹膜等方式进行个人身份验证。生物识别手段在如今的生活中的应用愈加流行与成熟,但也存在诸多不足。2019年,生物科技公司Suprema被曝出泄漏超过100万人的面部和指纹信息的案件。由此可见,即使是快捷方便的生物识别手段仍然容易在各个环节产生数据泄露的风险,尤其是针对服务商数据库的攻击,将可能导致大规模数据的泄露。
[0003]2013年2月,快速在线身份认证FIDO联盟正式成立,最初的目的在于利用越来越成熟和流行的生物识别机制定义一套开放的、可扩展的、能互用的身份识别机制,减少用户在认证时对密码的依赖。其中通用认证框架UAF允许在线服务提供无密码和多因素安全性,用户通过选择本地身份验证机制,如轻扫手指、查看相机、对着麦克风说话、输入PIN等,将设备或原始密码注册到在线服务中。在注册过程中,验证器生成平台唯一的公私密钥对。私钥存储在本地的安全计算环境中,公钥则使用特定于设备型号的认证密钥进行签名。基于公私钥对的非对称加密体系,只在本地的可信执行环境中存储用户的生物特征信息,是F ...
【技术保护点】
【技术特征摘要】
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)存储的初始...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。