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

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

2022-05-06 10:00:15 来源:中国专利 TAG:


1.本发明属于网络安全技术领域,特别涉及一种线上快速身份验证方法,可用于在线服务的远程登录、身份认证、交易认证。


背景技术:

2.长久以来,口令一直作为身份验证的一个重要手段,输入用户名与密码进行校验一度成为所有在线网站的身份验证方式。在口令成为一个用户唯一身份认证标识时,口令的泄露无疑将带来很大危害。随着技术的发展,更多的身份验证手段出现,人们尝试使用独一无二的生物特征,如指纹、面容、虹膜等方式进行个人身份验证。生物识别手段在如今的生活中的应用愈加流行与成熟,但也存在诸多不足。2019年,生物科技公司suprema被曝出泄漏超过100万人的面部和指纹信息的案件。由此可见,即使是快捷方便的生物识别手段仍然容易在各个环节产生数据泄露的风险,尤其是针对服务商数据库的攻击,将可能导致大规模数据的泄露。
3.2013年2月,快速在线身份认证fido联盟正式成立,最初的目的在于利用越来越成熟和流行的生物识别机制定义一套开放的、可扩展的、能互用的身份识别机制,减少用户在认证时对密码的依赖。其中通用认证框架uaf允许在线服务提供无密码和多因素安全性,用户通过选择本地身份验证机制,如轻扫手指、查看相机、对着麦克风说话、输入pin等,将设备或原始密码注册到在线服务中。在注册过程中,验证器生成平台唯一的公私密钥对。私钥存储在本地的安全计算环境中,公钥则使用特定于设备型号的认证密钥进行签名。基于公私钥对的非对称加密体系,只在本地的可信执行环境中存储用户的生物特征信息,是fido相较于传统身份认证方式的两个重要不同点。
4.深圳市文鼎创数据科技有限公司在其申请号201910979088.9的专利文献中提出“基于fido设备的交易认证方法及fido设备”。其应用于服务器,在fido设备登录指令中的extension信息条目或其他现有条目或新增的条目中嵌入交易信息,采用这种嵌入方式既不与原有功能冲突,又能保证用户交易信息确认的安全功能,实现了国内外网上银行大金额交易的安全和应用要求。但该方法中提出的设置交易信息以及交易信息的确认机制仅用于信息确认,无法消除隐私数据泄露以及破坏登录的风险。
5.北京邮电大学冯皓楠在in network and distributed system security symposium(ndss),2021发表的论文“aformal analysis of the fido uaf protocol”中通过形式化验证工具proverif对fido uaf协议进行分析,指出如果存在恶意的uaf客户端设备,就会影响uaf协议的部分安全属性,产生认证器重绑定攻击、隐私泄露攻击和拒绝服务攻击,论文中提出一种解决办法,即认证器特定模块对uaf客户端的标识callerid建立可信列表。但其不足之处是uaf客户端的数量庞大,可信列表的维护将极为困难。


技术实现要素:

6.本发明的目的在于针对上述fido uaf协议存在的风险,提出一种基于哈希链的线
上快速身份验证方法,以避免注册和认证流程中出现恶意uaf客户端实体和恶意认证器特定模块,确保诚实实体的正常注册和认证,提高fido uaf协议的安全性,缩小攻击面。
7.实现本发明目的的具体思路是:通过初始化fido标准结构,在经过校验的安全环境下,由uaf客户端向认证器特定模块和用户代理进行哈希链的注册。通过在正常的fido协议注册和认证流程中增加验证哈希链的过程,实现认证器特定模块和用户代理对uaf客户端的认证以及uaf客户端对认证器特定模块的认证。同时通过提供一种可设置次数的重新请求机制,请求未通过验证的设备重新发送信息,避免恶意uaf客户端与认证器特定模块通信、恶意uaf客户端与用户代理通信、恶意认证器特定模块与uaf客户端通信这三大问题。通过利用哈希函数的单向性、碰撞约束以及较高的计算效率在uaf协议中提供诚实实体的验证,及时发现恶意实体并终止协议流程,有利于保障协议的机密性,缩小攻击面。
8.根据上述思路,本发明的实现步骤包括如下:
9.(1)在开始哈希链注册之前,对线上快速认证协议fido中的认证器特定模块、uaf客户端和用户代理的完整性进行校验;
10.(2)对校验通过的认证器特定模块、用户代理和uaf客户端进行哈希链的注册:
11.2a)uaf客户端生成两个随机数n1和n2,初始化计数器i=1,j=1及uaf客户端重新请求计数器k
uc
=0,初始化哈希链次数l,uaf客户端最大重新请求次数k;
12.2b)将uaf客户端标识callerid分别与两个随机数n1和n2连接,作为认证器特定模块的哈希链种子x
asm
和用户代理的哈希链种子x
ua

13.2c)分别对认证器特定模块的哈希链种子x
asm
和用户代理的哈希链种子x
ua
进行l次哈希运算,得到认证器特定模块的初始哈希链信息h1和用户代理的初始哈希链信息h2;
14.2d)设置哈希链注册标志为req,并发送消息(req,h1,k)给认证器特定模块,发送消息(req,h2,k)给用户代理;
15.2e)认证器特定模块收到注册哈希链的消息后,将初始哈希链信息h1分别保存为初始哈希链信息h和哈希链验证信息h’,将uaf客户端最大重新请求次数k保存为认证器特定模块最大重新请求次数k’;初始化计数器i’=0,认证器特定模块重新请求计数器k
asm
=0;
16.2f)用户代理收到注册哈希链的消息后将初始哈希链信息h2分别保存为初始哈希链信息h和哈希链验证信息h’,将最大重新请求次数k保存为用户代理最大重新请求次数k’;初始化计数器j’=0,用户代理重新请求计数器k
ua
=0;
17.(3)运行fido协议,在注册过程和认证过程中进行数据处理和基于哈希链对uaf客户端和认证器特定模块的认证:
18.3a)根据fido协议流程,依次在服务器端、用户代理、uaf客户端之间进行数据的初始化、数据传输及简单运算处理;
19.3b)uaf客户端向认证器特定模块发送数据处理后的原本fido协议数据,同时发起哈希链认证请求;
20.3c)认证器特定模块对uaf客户端进行哈希链认证,认证成功后,继续执行fido协议流程,认证器特定模块对原本fido协议数据进行简单运算,并发送运算后的数据给认证器;认证器对部分数据进行处理,同时对用户进行本地身份校验,校验成功后将处理后的消息返回给认证器特定模块;
21.3d)认证器特定模块向uaf客户端转发认证器处理后的原本fido协议数据,同时发起哈希链认证请求;
22.3e)uaf客户端对认证器特定模块进行哈希链认证,认证成功后,向用户代理转发认证器特定模块发来的原本fido协议数据,同时发起哈希链认证请求;
23.3f)用户代理对uaf客户端进行哈希链认证,认证成功后,继续执行fido协议流程,直至服务器端对返回的fido协议数据校验完毕,若校验通过,则线上快速验证协议对用户的身份注册或身份认证成功。
24.本发明与现有技术相比具有如下优点:
25.第一,本发明由于在现有fido协议的注册和认证过程中,增设基于哈希链实现的认证器特定模块、用户代理对uaf客户端以及uaf客户端对认证器特定模块的校验,解决了现有的fido协议在诚实实体进行正常的注册或认证流程中可能出现恶意uaf客户端、恶意认证器特定模块从而泄露消息,影响协议机密性,导致恶意登录的问题,在保证诚实实体能够正常运行fido协议的同时增强安全性,缩小了攻击面。
26.第二,由于本发明采用基于哈希链的校验是一种本地校验,相较其他远程校验方式可在确保安全性的同时提高校验速度,减少开销。
附图说明
27.图1是本发明的实现总流程图;
28.图2是本发明中进行哈希链注册的子流程图;
具体实施方式
29.为了更进一步阐述本发明达成预定发明目的所采取的技术手段及功效,以下结合附图对本发明的实施例作进一步详细描述。
30.本发明是对现有线上快速身份认证协议fido的改进,即通过在认证器特定模块、uaf客户端与用户代理之间添加哈希链的验证,在保证fido协议注册和认证两个过程正常执行的情况下,增加其安全性,减小协议攻击面,实现使用非传统文本密码线上快速身份认证。
31.参照图1,本实例的实现步骤如下:
32.步骤一,初始化fido各相关实体。
33.现有线上快速身份认证协议fido包括认证器、认证器特定模块、uaf客户端、用户代理以及服务器端,其中:
34.所述认证器,包含一个或多个身份验证器,用于支持使用fido协议对用户进行在线认证,身份验证器包括但不限于指纹验证器、面容验证器、语音验证器,该认证器生成并存储认证器标识符aaid,认证密钥sk
at
,对称密钥kw;
35.所述认证器特定模块,是认证器的抽象层,为上层提供统一的应用程序编程接口,当认证器特定模块第一次启动时,它会生成一个秘密tok;
36.所述uaf客户端,是实现uaf协议客户端逻辑的系统服务或应用程序,初始化时会生成一个uaf客户端标识callerid,即uaf客户端安卓应用程序包签名证书的哈希值,同时,认证器特定模块可以从操作系统中检索callerid;
37.所述用户代理,是指用户应用程序,其具有标识符facetid,通常由应用程序的统一资源标识符来标识,例如,当用户代理是浏览器时,facetid是触发uaf操作的网页的网址;当用户代理是安卓上的应用程序时,facetid是用户代理安卓应用程序包签名证书的哈希值;uaf客户端可以从操作系统中检索facetid;
38.所述服务器端,其包括一个web服务器和一个uaf服务器,该uaf服务器确保只能注册受信任的身份验证程序,管理身份验证程序与用户帐户的关联,并评估用户身份验证。
39.步骤二,调用本地安全环境指令验证几个实体的完整性。
40.根据本地运行的安全环境,调用安全环境中的指令来校验认证器特定模块、uaf客户端和用户代理的完整性,确保哈希链注册启动时这三个实体均为诚实实体。
41.步骤三,在诚实实体认证器特定模块、uaf客户端和用户代理间注册哈希链。
42.参照图2,本步骤的具体实现步骤如下:
43.3.1)uaf客户端生成两个随机数n1和n2,初始化计数器i=1,j=1及uaf客户端重新请求计数器k
uc
=0,初始化哈希链次数l,uaf客户端最大重新请求次数k;
44.3.2)将uaf客户端标识callerid分别与两个随机数n1和n2连接,作为认证器特定模块的哈希链种子x
asm
和用户代理的哈希链种子x
ua

45.3.3)分别对认证器特定模块的哈希链种子x
asm
和用户代理的哈希链种子x
ua
进行l次哈希运算,得到认证器特定模块的初始哈希链信息h1和用户代理的初始哈希链信息h2;
46.3.4)设置哈希链注册标志为req,并发送消息(req,h1,k)给认证器特定模块,发送消息(req,h2,k)给用户代理;
47.3.5)认证器特定模块收到注册哈希链的消息后,将初始哈希链信息h1分别保存为初始哈希链信息h和哈希链验证信息h’,将uaf客户端最大重新请求次数k保存为认证器特定模块最大重新请求次数k’;初始化计数器i’=0,认证器特定模块重新请求计数器k
asm
=0;
48.3.6)用户代理收到注册哈希链的消息后将初始哈希链信息h2分别保存为初始哈希链信息h和哈希链验证信息h’,将最大重新请求次数k保存为用户代理最大重新请求次数k’;初始化计数器j’=0,用户代理重新请求计数器k
ua
=0;
49.步骤四,运行fido协议,依次在服务器端、用户代理、uaf客户端之间进行数据的初始化、数据传输及简单的运算处理。
50.4.1)在服务器端进行数据的初始化,并发送给用户代理:
51.运行fido协议的注册过程与运行其认证过程,对其不同的过程分别进行初始化:
52.若运行fido协议注册过程,则在用户使用原始方式登录成功后,服务器端生成用户名uname,指向受信任用户代理url的列表appid,随机质询值chlg,会话标识符sdata,并将生成的uname、appid、sdata、chlg这四种注册请求消息发给用户代理;
53.若运行fido协议认证过程,则在收到在线用户身份认证请求后,服务器端生成随机质询值chlg,会话标识符sdata,指向受信任用户代理url的列表appid,添加和交易确认有关文本信息的可选参数[tr],根据请求中用户名uname查找对应的密钥标识keyid,并将生成的appid、keyid、sdata、chlg、[tr]这些认证请求消息发给用户代理;
[0054]
4.2)用户代理在fido协议注册过程和认证过程中均将服务器端发送的数据转发给uaf客户端;
[0055]
4.3)uaf客户端收到消息后,从appid中检索受信任的用户代理列表,并验证标识用户代理身份的facetid是否在列表中:
[0056]
若存在,则将sdata存储为xsdata,并计算tls通道信息tlsdata,将(appid,facetid,chlg,tlsdata)记为质询参数fcp;
[0057]
若不存在,则不予处理。
[0058]
步骤五,uaf客户端向认证器特定模块发送数据处理后的数据,同时发起哈希链认证请求。
[0059]
5.1)uaf客户端生成哈希链认证请求参数:
[0060]
uaf客户端先将认证器特定模块哈希链种子x
asm
进行l-i次的哈希运算,生成哈希校验值h
asm
,再将计数器i的值向上增1,生成一个随机数n和一个时间戳time
ca

[0061]
5.2)uaf客户端将处理后的数据及哈希链认证请求参数发送给认证器特定模块:
[0062]
在fido协议的注册过程和认证过程中,uaf客户端对不同的过程分别向认证器特定模块发送不同处理后的数据及哈希链认证请求参数:
[0063]
在fido协议注册过程中,uaf客户端将步骤4.1)中用户代理发来的用户名uname,步骤4.3)中得到的质询参数fcp与哈希校验值h
asm
,随机数n,时间戳time
ca
一并发送给认证器特定模块;
[0064]
在fido协议认证过程中,uaf客户端将4.1)中用户代理发来的密钥标识keyid,可选参数[tr],步骤4.3)中得到的质询参数fcp与哈希校验值h
asm
,随机数n,时间戳time
ca
一并发送给认证器特定模块。
[0065]
步骤六,认证器特定模块对uaf客户端进行哈希链验证。
[0066]
6.1)在认证器特定模块收到哈希校验值h
asm
后,先进行一次哈希运算得到哈希值h

asm
,再将h

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

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

[0068]
如果h

asm
≠h’,则认证器特定模块对uaf客户端认证失败,执行6.2);
[0069]
6.2)认证器特定模块将对uaf客户端进行重新请求:
[0070]
6.2a)认证器特定模块先将认证器特定模块重新请求计数器k
asm
向上增1,再生成一个时间戳time
asm
,将时间戳time
asm
与计数器i’的值发送给uaf客户端;
[0071]
6.2b)uaf客户端收到重新请求信息,验证时间戳time
asm
是否在邻近范围内:
[0072]
如果不在,则不予处理;
[0073]
如果在,则验证通过,先将计数器i的值更新为i’ 1,再将认证器特定模块哈希链种子x
asm
进行l-i次的哈希运算,将哈希运算的结果赋给哈希校验值h
asm
,同时生成新的随机数n’,更新时间戳time
ca
,并将n’赋给n,再将哈希校验值h
asm
、随机数n’和时间戳time
ca
发送给认证器特定模块;
[0074]
6.2c)认证器特定模块验证时间戳time
ca

[0075]
若uaf客户端发来的时间戳time
ca
所表示的时间位于步骤6.2a)认证器特定模块生成的时间戳time
asm
之前,则不予处理;
[0076]
若uaf客户端发来的时间戳time
ca
所表示的时间位于步骤6.2a)认证器特定模块生
成的时间戳time
asm
之后,则将收到的哈希校验值h
asm
进行一次哈希运算得到哈希值h

asm
,执行6.3);
[0077]
6.3)将哈希值h

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

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

[0079]
如果h

asm
≠h’,则重新请求认证失败,认证器特定模块对认证器特定模块重新请求计数器k
asm
的值进行判断:
[0080]
若认证器特定模块重新请求计数器k
asm
的值小于认证器特定模块最大重新请求次数k’,则返回6.2a);
[0081]
若认证器特定模块重新请求计数器k
asm
的值大于等于认证器特定模块最大重新请求次数k’,则认为正常流程中出现恶意的uaf客户端实体,终止本次fido协议运行。
[0082]
步骤七,认证器特定模块对uaf客户端认证成功后,进行数据处理并将处理过的数据发送给认证器。
[0083]
7.1)认证器特定模块对uaf客户端认证成功后,进行数据处理:
[0084]
在fido协议的注册过程和认证过程中,认证器特定模块对不同的过程分别进行数据处理:
[0085]
在fido协议注册过程中,认证器特定模块对质询参数fcp进行一次哈希运算,记为挑战值fc,将列表appid,秘密tok,uaf客户端标识callerid作连接再进行一次哈希运算,达到的值记为令牌ak;
[0086]
在fido协议认证过程中,认证器特定模块对质询参数fcp进行一次哈希运算,记为挑战值fc;将列表appid,秘密tok,uaf客户端标识callerid作连接再进行一次哈希运算,得到的值记为令牌ak;再以密钥标识keyid为索引找到对应的密文h;
[0087]
7.2)认证器特定模块将处理过的数据发送给认证器:
[0088]
在fido协议的注册过程和认证过程中,认证器特定模块对不同的过程分别发送数据:
[0089]
在fido协议注册过程中,认证器特定模块将uaf客户端发来的用户名uname,列表appid和处理得到的令牌ak,挑战值fc发送给认证器;
[0090]
在fido协议认证过程中,认证器特定模块将uaf客户端发来的密钥标识keyid,列表appid,可选参数[tr]和处理得到的令牌ak,挑战值fc,密文h发送给认证器。
[0091]
步骤八,在fido协议的注册过程和认证过程中,认证器对认证器特定模块发来的消息进行不同的处理。
[0092]
8.1)在fido协议注册过程中的处理:
[0093]
8.1a)认证器将收到的令牌ak与列表appid作连接再进行一次哈希运算,得到的值重新赋给令牌ak;
[0094]
8.1b)认证器触发内置的匹配器,对本地验证用户的生物信息,如指纹、面容、语音、虹膜进行验证,生成该用户账户的身份验证密钥对《sk
au
,pk
au
》,其中sk
au
是私钥,pk
au
是公钥;
[0095]
8.1c)生成一个随机keyid作为密钥标识,使用认证器内置的对称加密密钥kw对(sk
au
,ak,uname,keyid)进行加密,得到的密文记为h;
[0096]
8.1d)认证器生成随机签名计数器cntra,认证器使用认证密钥sk
at
对(aaid,fc,keyid,cntra,pk
au
)进行签名,签名记为s,其中,aaid为步骤1.1)认证器初始化时生成的认证器标识符,挑战值fc在步骤7.2)中由认证器特定模块发送给认证器;
[0097]
8.2)在fido协议认证过程中的处理:
[0098]
8.2a)认证器将收到的令牌ak与appid作连接再进行哈希运算,并将得到的值重新赋给令牌ak;
[0099]
8.2b)使用认证器内置的对称加密密钥kw对密文h进行解密,得到(sk
au
,xak,xuname,keyid);
[0100]
8.2c)校验解密得到的xak与认证器特定模块发送的ak是否相等:
[0101]
若不相等,则终止fido协议运行,用户身份认证失败;
[0102]
若相等,则将随机签名计数器cntra的值加1,并将结果存储为xcntra,生成随机数n;认证器使用私钥sk
au
对消息(aaid,n,fc,[htr],keyid,xcntra)进行签名,签名记为s,其中[htr]为可选参数,当可选参数[tr]不为空时,认证器展示tr中的文本内容,并将tr进行一次哈希运算,记为[htr]。
[0103]
步骤九,认证器向认证器特定模块发送消息。
[0104]
在fido协议的注册过程和认证过程中,认证器对不同的过程分别发送:
[0105]
对于fido协议的注册过程,认证器将消息(aaid,fc,keyid,h,cntra,pk
au
,s)发送给认证器特定模块;其中,aaid为步骤1.1)认证器初始化时生成的认证器标识符,挑战值fc在步骤7.2)中由认证器特定模块发送给认证器,其余参数为步骤八中认证器生成;
[0106]
对于fido协议的认证过程,认证器将消息(aaid,n,fc,[htr],keyid,xcntra,s)发送给认证器特定模块;其中,aaid为步骤1.1)认证器初始化时生成的认证器标识符;挑战值fc在步骤7.2)中由认证器特定模块发送给认证器,其余参数为步骤八中认证器生成。
[0107]
步骤十,认证器特定模块向uaf客户端转发认证器处理后的数据,同时发起哈希链认证请求。
[0108]
10.1)认证器特定模块生成哈希链认证请求参数:
[0109]
认证器特定模块先将3.6)存储的初始哈希链信息h与随机数n作连接,将得到的字符串进行一次哈希运算得到哈希校验值h
uc
,再生成时间戳time
ac

[0110]
10.2)认证器特定模块存储部分数据并向uaf客户端转发认证器处理后的数据,同时发送哈希链认证请求参数:
[0111]
在fido协议注册过程中,认证器特定模块先存储(callerid,appid,h,keyid),其中,callerid由操作系统中检索得到,appid包含在5.2)中uaf客户端发送的fcp参数中,其余参数包括在步骤九认证器向认证器特定模块发送的消息中;再将消息(aaid,fc,keyid,cntra,pk
au
,s,h
uc
,time
ac
)发送给uaf客户端,其中,h
uc
,time
ac
为步骤10.1)中生成的哈希链认证请求参数,其余参数包括在步骤九认证器向认证器特定模块发送的消息中;
[0112]
在fido协议认证过程中,认证器特定模块将消息(aaid,n,fc,[htr],keyid,xcntra,s,h
uc
,time
ac
)发送给uaf客户端;其中,h
uc
,time
ac
为步骤10.1)中生成的哈希链认证请求参数,其余参数包括在步骤九认证器向认证器特定模块发送的消息中。
[0113]
步骤十一,uaf客户端对认证器特定模块进行哈希链验证。
[0114]
11.1)uaf客户端将认证器特定模块的初始哈希链信息h1与随机数n连接,并对其进行一次哈希运算得到哈希校验值h

uc
,再将h

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

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

uc
,则uaf客户端对认证器特定模块认证失败,执行11.2);
[0117]
11.2)认证器特定模块请求uaf客户端进行重新认证:
[0118]
11.2a)uaf客户端先将uaf客户端重新请求计数器k
uc
向上增1,再生成一个时间戳time
uc
和一个新的随机数n’,并将该新的随机数n’赋给随机数n,将时间戳time
uc
和新的随机数n’发送给认证器特定模块;
[0119]
11.2b)认证器特定模块验证时间戳time
uc
是否在邻近范围内:
[0120]
如果不在,则不予处理;
[0121]
如果在,则验证通过,即将随机数n的值更新为n’,将初始哈希链信息h与随机数n作连接,并对其进行一次哈希运算,将哈希运算的结果赋给哈希校验值h
uc
,更新时间戳time
ac
,再将哈希校验值h
uc
和更新后的时间戳time
ac
发送给uaf客户端;
[0122]
11.2c)uaf客户端验证时间戳time
ac

[0123]
若认证器特定模块发来的时间戳time
ac
位于步骤11.2a)uaf客户端生成的时间戳time
uc
之前,则不予处理;
[0124]
若认证器特定模块发来的时间戳time
ac
位于步骤11.2a)uaf客户端生成的时间戳time
uc
之后,则将认证器特定模块的初始哈希链信息h1与随机数n作连接,再对其进行一次哈希运算得到哈希校验值h

uc
,执行11.3);
[0125]
11.3)比较h
uc
与h

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

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

uc
,则重新请求认证失败,uaf客户端对uaf客户端重新请求计数器k
uc
的值进行判断:
[0128]
若uaf客户端重新请求计数器k
uc
的值小于uaf客户端最大重新请求次数k,则返回到11.2a);
[0129]
若uaf客户端重新请求计数器k
uc
的值大于等于uaf客户端最大重新请求次数k,则认为正常流程中出现恶意的认证器特定模块,终止本次fido协议运行。
[0130]
步骤十二,uaf客户端对认证器特定模块认证成功后,数据转发给用户代理,同时发起哈希链认证请求。
[0131]
12.1)uaf客户端生成哈希链认证请求参数:
[0132]
uaf客户端先将用户代理哈希链种子x
ua
进行l-j次的哈希运算,生成哈希校验值h
ua
,再将计数器j的值向上增1,生成一个时间戳time
cu

[0133]
12.2)uaf客户端向用户代理转发数据,同时发送哈希链认证请求参数:
[0134]
在fido协议注册过程中,uaf客户端将消息(xsdata,aaid,fc,keyid,cntra,pk
au
,s,fcp,h
ua
,time
cu
)发送给用户代理,其中,h
ua
,time
cu
为12.1)中生成的哈希链认证请求参数,xsdata,fcp为4.3)中uaf客户端生成的,其余参数包括在步骤十认证器特定模块向uaf客户端发送的消息中;
[0135]
在fido协议认证过程中,uaf客户端将消息(xsdata,aaid,n,fc,[htr],keyid,xcntra,fcp,s,h
ua
,time
cu
)发送给用户代理,其中,h
ua
,time
cu
为12.1)中生成的哈希链认证请求参数,xsdata,fcp为4.3)中uaf客户端生成的,其余参数包括在步骤十认证器特定模块向uaf客户端发送的消息中。
[0136]
步骤十三,用户代理对uaf客户端进行哈希链验证。
[0137]
13.1)在用户代理收到哈希校验值h
ua
后,先进行一次哈希运算得到哈希值h

ua
,再将h

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

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

[0139]
如果h

ua
≠h’,则用户代理对uaf客户端认证失败,执行13.2);
[0140]
13.2)uaf客户端请求用户代理进行重新认证:
[0141]
13.2a)用户代理先将用户代理重新请求计数器k
ua
向上增1,再生成一个时间戳time
ua
,将时间戳timr
ua
与计数器j’的值发送给uaf客户端;
[0142]
13.2b)uaf客户端验证时间戳time
ua
是否在邻近范围内:
[0143]
如果不在,则不予处理;
[0144]
如果在,则验证通过,先将计数器j的值更新为j’ 1,再将用户代理哈希链种子x
ua
进行l-i次的哈希运算,将哈希运算的结果赋给哈希校验值h
ua
,更新时间戳time
cu
,将哈希校验值h
ua
和时间戳time
cu
发送给用户代理;
[0145]
13.2c)用户代理验证时间戳time
cu

[0146]
若uaf客户端发来的时间戳time
cu
所表示的时间位于步骤13.2a)用户代理生成的时间戳time
ua
之前,则不予处理;
[0147]
若uaf客户端发来的时间戳time
cu
所表示的时间位于步骤13.2a)用户代理生成的时间戳time
ua
之后,将收到的哈希校验值h
ua
进行一次哈希运算得到哈希值h

ua
,执行13.3);
[0148]
13.3)将哈希值h

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

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

[0150]
如果h

ua
≠h’,则重新请求认证失败,用户代理对用户代理重新请求计数器k
ua
的值进行判断:
[0151]
若用户代理重新请求计数器k
ua
的值小于用户代理最大重新请求次数k’,则返回至13.2a);
[0152]
若用户代理重新请求计数器k
ua
的值大于等于用户代理最大重新请求次数k’,则认为正常流程中出现恶意的uaf客户端实体,终止本次fido协议运行。
[0153]
步骤十四,用户代理对uaf客户端认证成功后,将数据转发给服务器端。
[0154]
在fido协议注册过程中,用户代理将消息(xsdata,aaid,fc,keyid,cntra,pk
au
,s,fcp)发送给服务器端,其中,所有参数包括在步骤十二uaf客户端向用户代理发送的消息中;
[0155]
在fido协议认证过程中,用户代理将消息(xsdata,aaid,n,fc,[htr],keyid,xcntra,fcp,s)发送给服务器端,其中,所有参数包括在步骤十二uaf客户端向用户代理发
送的消息中。
[0156]
步骤十五,在fido协议的注册过程和认证过程中,服务器端对用户代理发来的消息进行不同的验证处理:
[0157]
15.1)在fido协议注册过程中的验证处理:
[0158]
15.1a)服务器端计算tls通道信息tlsdata;将存储的列表appid,随机质询值chlg,会话标识符sdata进行连接,再作一次哈希运算,记为xfc;
[0159]
15.1b)服务器端检查以下5项内容:
[0160]
一是用户代理发来的xsdata与步骤4.1)中服务器端生成的会话标识符sdata是否相等;
[0161]
二是步骤15.1a)中服务器端处理得到的xfc与用户代理发来的fc是否相等;
[0162]
三是用户代理发来消息中fcp的三个参数即列表appid,随机质询值chlg,tls通道信息tlsdata是否与步骤4.1)中服务器端生成的相等;
[0163]
四是从appid中检索受信任的用户代理列表,检查标识用户代理身份的facetid是否在列表中;
[0164]
五是使用公共非对称密钥pk
at
对签名进行验证,检查签名验证是否通过;
[0165]
若以上检查数据全部相等,且facetid在列表中,签名验证也已通过,则将用户代理发来的cntra赋给计数器cntrs,并存储用户代理发来的公钥pk
au
、密钥标识keyid、认证器标识符aaid、计数器cntrs,完成用户注册;
[0166]
否则,用户注册失败;
[0167]
15.2)在fido协议认证过程中的验证处理:
[0168]
15.2a)服务器端计算tls通道信息tlsdata;以用户代理发来的(aaid’,keyid)为索引定位公钥pk
au
,其中aaid’是指用户代理发来的消息中的aaid值;
[0169]
15.2b)将存储的列表appid,随机质询值chlg,tls通道信息tlsdata作连接后进行一次哈希运算,记为xfc;
[0170]
15.2c)服务器端检查以下7项内容:
[0171]
一是用户代理发来的xsdata与步骤4.1)中服务器端生成的会话标识符sdata是否相等;
[0172]
二是步骤15.2.2)中服务器端处理得到的xfc与用户代理发来的fc是否相等;
[0173]
三是用户代理发来的消息中fcp中的三个参数即列表appid,随机质询值chlg,tls通道信息tlsdata是否与步骤4.1)中服务器端生成的相同;
[0174]
四是从appid中检索受信任的用户代理列表,检查标识用户代理身份的facetid是否在列表中;
[0175]
五是服务器端存储的aaid与aaid’是否相等,这里aaid’是指用户代理发来的消息中的aaid值;
[0176]
六是用户代理发来的xcntra是否等于服务器端存储的cntra的值加1;
[0177]
七是若有可选参数[htr],[htr]是否等于[tr]作一次哈希运算的值;
[0178]
若检查中数据全部相等,且facetid在列表中,则用户认证成功;
[0179]
否则,用户认证失败。
[0180]
本发明未详细说明部分属于本领域技术人员公知常识。
[0181]
以上所述仅为发明的较佳实施例而已,并不用以限制本发明,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。
再多了解一些

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

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

相关文献