一种认证系统及其工作方法转让专利

申请号 : CN201810930525.3

文献号 : CN109150541B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陆舟于华章

申请人 : 飞天诚信科技股份有限公司

摘要 :

本发明公开一种认证系统及其工作方法,涉及通信领域;所述方法包括:客户端接收并解析服务器发送的认证请求得到应用标识、认证策略和挑战值;根据认证策略生成签名密钥标识列表;向认证器发送根据挑战值、应用标识和签名密钥标识列表生成的验证身份信息指令;认证器根据解析得到的签名密钥标识列表和应用标识获取签名私钥和签名密钥标识;根据应用标识和挑战值生成最终挑战哈希值;根据最终挑战哈希值、预置的认证器标识和签名密钥标识生成签名值;通过客户端和依赖方向服务器发送签名值;服务器接收签名值,对签名值进行验证,判断验证是否成功,是则验证成功,否则验证失败。

权利要求 :

1.一种认证系统的工作方法,其特征在于,包括以下步骤:

步骤S1:当服务器接收到依赖方发送的包含预置的应用标识的触发认证请求时,所述服务器解析所述触发认证请求得到应用标识;根据所述触发认证请求生成认证策略和挑战值;根据所述应用标识、所述认证策略和所述挑战值生成认证请求,通过所述依赖方向客户端发送所述认证请求;

步骤S2:所述客户端接收并解析所述认证请求得到应用标识、认证策略和挑战值;根据解析得到的所述应用标识和所述挑战值生成第一最终挑战数据;根据所述认证策略选择认证器;根据所述认证策略生成签名密钥标识列表;根据所述第一最终挑战数据、所述应用标识和所述签名密钥标识列表生成验证身份信息指令,向选择的所述认证器发送所述验证身份信息指令;

步骤S3:所述认证器接收并解析所述验证身份信息指令得到第一最终挑战数据、应用标识和签名密钥标识列表;根据所述应用标识生成访问令牌数据;对所述第一最终挑战数据进行计算生成最终挑战哈希值;提示用户输入用户身份信息,验证用户输入的所述用户身份信息,当验证成功时,执行步骤S4,否则报错,结束;

步骤S4:所述认证器根据所述签名密钥标识列表、所述应用标识和所述访问令牌数据获取签名私钥和签名密钥标识;根据预置的认证器标识、所述最终挑战哈希值和所述签名密钥标识生成待签名数据,使用所述签名私钥对所述待签名数据计算生成签名值;根据所述认证器标识、所述最终挑战哈希值、所述签名密钥标识和所述签名值生成认证响应,通过所述客户端和所述依赖方向所述服务器发送所述认证响应;

步骤S5:所述服务器接收并解析所述认证响应得到认证器标识、最终挑战哈希值、签名密钥标识和签名值,分别对所述认证器标识和所述最终挑战哈希值进行验证,根据所述签名密钥标识对所述签名值进行验证,判断是否全部验证成功,是则验证成功,否则验证失败。

2.如权利要求1所述的方法,其特征在于,所述依赖方与所述客户端之间的数据传输全部通过预置的安全信道进行。

3.如权利要求2所述的方法,其特征在于,所述步骤S2中,根据解析得到的所述应用标识和所述挑战值生成第一最终挑战数据,具体为:所述客户端根据预置的安全信道数据、所述应用标识和所述挑战值生成第一最终挑战数据;

所述步骤S5中,所述对所述最终挑战哈希值进行验证之前,还包括:所述服务器接收所述依赖方发送的预置的安全信道数据;

所述步骤S5中,所述对所述最终挑战哈希值进行验证,具体为:

所述服务器根据所述安全信道数据、解析所述触发认证请求得到的所述应用标识和生成的所述挑战值生成第二最终挑战数据,对所述第二最终挑战数据进行哈希运算生成哈希运算结果,判断生成的所述哈希运算结果与解析所述认证响应得到的所述最终挑战哈希值是否相同,是则对所述最终挑战哈希值验证成功,否则对所述最终挑战哈希值验证失败。

4.如权利要求1所述的方法,其特征在于,所述步骤S2中,所述客户端接收并解析所述认证请求得到应用标识、认证策略和挑战值之后,还包括:所述客户端根据解析得到的所述应用标识判断当前的用户代理标识是否合法,是则根据解析得到的所述应用标识和所述挑战值生成第一最终挑战数据,否则报错。

5.如权利要求4所述的方法,其特征在于,所述步骤S2中,所述客户端根据解析得到的所述应用标识判断当前的用户代理标识是否合法,包括以下步骤:步骤D1:所述客户端根据所述应用标识生成用户代理标识列表请求;向所述依赖方发送所述用户代理标识列表请求;

步骤D2:所述依赖方接收所述用户代理标识列表请求,获取用户代理标识列表,向所述客户端发送获取的所述用户代理标识列表;

步骤D3:所述客户端接收所述用户代理标识列表,判断所述用户代理标识列表中是否存在当前的用户代理标识,是则合法,否则不合法。

6.如权利要求1所述的方法,其特征在于,所述步骤S2中,所述根据所述认证策略生成签名密钥标识列表,具体为:所述客户端从所述认证策略中提取符合预设条件的签名密钥标识,根据提取的签名密钥标识生成签名密钥标识列表。

7.如权利要求1所述的方法,其特征在于,所述根据所述应用标识生成访问令牌数据之后,所述认证器根据所述签名密钥标识列表、所述应用标识和所述访问令牌数据获取签名私钥和签名密钥标识之前,还包括:所述认证器根据所述应用标识更新所述访问令牌数据;

所述步骤S4中,所述认证器根据所述签名密钥标识列表、所述应用标识和所述访问令牌数据获取签名私钥和签名密钥标识,具体为:所述认证器根据所述签名密钥标识列表、所述应用标识和更新的所述访问令牌数据从预置的原始签名密钥数据中检索目标原始签名密钥数据;根据所述目标原始签名密钥数据获取与所述目标原始签名数据对应的签名私钥和签名密钥标识。

8.如权利要求7所述的方法,其特征在于,所述认证器根据所述签名密钥标识列表、所述应用标识和更新后的所述访问令牌数据从预置的原始签名密钥数据中检索目标原始签名密钥数据,包括以下步骤:步骤A1:所述认证器根据所述签名密钥标识列表和所述应用标识检索原始签名密钥加密数据;

步骤A2:所述认证器根据预置的包装密钥对所述原始签名密钥加密数据进行解密得到原始签名密钥数据列表;

步骤A3:所述认证器根据更新的所述访问令牌数据对所述原始签名密钥数据列表进行筛选,判断筛选后的原始签名密钥数据列表中剩余的原始签名密钥数据的个数,当筛选后的原始签名密钥数据列表中剩余的的原始签名密钥数据的个数为1个时,记剩余的所述原始签名密钥数据为目标原始签名密钥数据。

9.如权利要求1所述的方法,其特征在于,所述步骤S4中,还包括:所述认证器更新预置的第一计数值;

所述根据所述认证器标识、所述最终挑战哈希值、所述签名密钥标识和所述签名值生成认证响应,具体为:所述认证器根据更新后的第一计数值、所述认证器标识、所述最终挑战哈希值、所述签名密钥标识和所述签名值生成认证响应;

所述步骤S5中,服务器接收并解析所述认证响应之后,所述判断是否全部验证成功之前,还包括:所述服务器对解析所述认证响应得到的第一计数值进行验证;

所述步骤S5中,当全部验证成功时,还包括:所述服务器用解析所述认证响应得到的第一计数值更新预置的第二计数值。

10.如权利要求9所述的方法,其特征在于,所述服务器对解析所述认证响应得到的所述第一计数值进行验证,具体为:所述服务器判断解析所述认证响应得到的所述第一计数值是否大于预置的第二计数值,是则验证成功,否则验证失败。

11.如权利要求1所述的方法,其特征在于,所述步骤S4中,所述根据所述认证器标识、所述最终挑战哈希值、所述签名密钥标识和所述签名值生成认证响应,具体为:所述认证器根据所述第一最终挑战数据、所述认证器标识、所述最终挑战哈希值、所述签名密钥标识和所述签名值生成认证响应;

所述步骤S5中,所述服务器接收并解析所述认证响应得到认证器标识、最终挑战哈希值、签名密钥标识和签名值,具体为:所述服务器接收并解析所述认证响应得到第一最终挑战数据、认证器标识、最终挑战哈希值、签名密钥标识和签名值;

所述步骤S5中,服务器接收并解析所述认证响应之后,所述判断是否全部验证成功之前,还包括:所述服务器对解析所述认证响应得到的所述第一最终挑战数据进行验证。

12.如权利要求1所述的方法,其特征在于,所述步骤S4中,所述通过所述客户端和所述依赖方向所述服务器发送所述认证响应,包括以下步骤:步骤C1:所述认证器向所述客户端发送所述认证响应;

步骤C2:所述客户端接收所述认证响应,将生成的所述第一最终挑战数据附加到所述认证响应中更新所述认证响应,向所述依赖方发送所述认证响应;

步骤C3:所述依赖方接收所述认证响应,向所述服务器发送所述认证响应;

所述步骤S5中,所述服务器接收并解析所述认证响应得到认证器标识、最终挑战哈希值、签名密钥标识和签名值,具体为:所述服务器接收并解析所述认证响应得到第一最终挑战数据、认证器标识、最终挑战哈希值、签名密钥标识和签名值;

所述步骤S5中,服务器接收并解析所述认证响应之后,所述判断是否全部验证成功之前,还包括:所述服务器对解析所述认证响应得到的所述第一最终挑战数据进行验证。

13.如权利要求11或12所述的方法,其特征在于,所述服务器对解析所述认证响应得到的所述第一最终挑战数据进行验证,具体为:所述服务器判断解析所述认证响应得到的所述第一最终挑战数据中的应用标识是否与解析所述触发认证请求得到的应用标识相同;判断所述第一最终挑战数据中的挑战值是否与生成的所述挑战值相同,当判断解析所述认证响应得到的所述第一最终挑战数据中的应用标识与解析所述触发认证请求得到的应用标识相同且所述第一最终挑战数据中的挑战值与生成的所述挑战值相同时,验证成功,否则验证失败。

14.如权利要求1所述的方法,其特征在于,所述步骤S5中,所述对所述认证器标识进行验证,具体为:所述服务器判断解析所述认证响应得到的认证器标识是否符合生成的所述认证策略,是则对所述认证器标识认证成功,否则对所述认证器标识认证失败。

15.如权利要求1所述的方法,其特征在于,所述步骤S5中,对解析所述认证响应得到的所述最终挑战哈希值进行验证,具体为:所述服务器根据解析所述触发认证请求得到的所述应用标识和生成的所述挑战值生成最终挑战比对数据,对所述最终挑战比对数据进行哈希运算得到最终挑战比对哈希值,判断解析所述认证响应得到的所述最终挑战哈希值与所述最终挑战比对哈希值是否相同,是则对所述最终挑战哈希值认证成功,否则对所述最终挑战哈希值认证失败。

16.如权利要求1所述的方法,其特征在于,所述步骤S5中,所述根据所述签名密钥标识对所述签名值进行验证,具体为:所述服务器根据所述认证响应得到的认证器标识和签名密钥标识检索签名公钥,使用检索到的所述签名公钥对所述签名值进行验证。

17.一种认证系统,其特征在于,包括认证器、客户端、依赖方和服务器;

所述客户端包括第一发送模块、第一接收模块、第二解析模块、第三生成模块、选择模块、第四生成模块和第五生成模块;

所述依赖方包括第二发送模块、第二接收模块和第一预置模块;

所述服务器包括第三发送模块、第三接收模块、第一解析模块、第一生成模块、第二生成模块、第四解析模块、第二验证模块、第三验证模块、第四验证模块和第一判断模块;

所述认证器包括第四发送模块、第四接收模块、第三解析模块、第六生成模块、第七生成模块、提示模块、第一验证模块、第二预置模块、第一获取模块、第八生成模块、第九生成模块和第十生成模块;

所述第一预置模块,用于预置应用标识;

所述第二发送模块,用于向所述服务器发送包含所述第一预置模块预置的应用标识的触发认证请求;

所述第三接收模块,用于接收所述第二发送模块发送的包含所述第一预置模块预置的应用标识的触发认证请求;

所述第一解析模块,用于解析所述第三接收模块接收的所述触发认证请求得到应用标识;

所述第一生成模块,用于根据所述第三接收模块接收的所述触发认证请求生成认证策略和挑战值;

所述第二生成模块,用于根据所述第一解析模块解析所述第三接收模块接收的所述触发认证请求得到的所述应用标识、所述第一生成模块生成的所述认证策略和所述挑战值生成认证请求;

所述第三发送模块,用于向所述依赖方发送所述第二生成模块生成的所述认证请求;

所述第二接收模块,还用于接收所述第三发送模块发送的所述认证请求;

所述第二发送模块,还用于向所述客户端发送所述第二接收模块接收的所述认证请求;

所述第一接收模块,用于接收所述第二发送模块发送的所述认证请求;

所述第二解析模块,用于解析所述第一接收模块接收的所述认证请求得到应用标识、认证策略和挑战值;

所述第三生成模块,用于根据所述第二解析模块解析所述认证请求得到的所述应用标识和所述挑战值生成第一最终挑战数据;

所述选择模块,用于根据所述第二解析模块解析所述认证请求得到的所述认证策略选择认证器;

所述第四生成模块,用于根据所述第二解析模块解析所述认证请求得到的所述认证策略生成签名密钥标识列表;

所述第五生成模块,用于根据所述第三生成模块生成的所述第一最终挑战数据、所述第二解析模块解析所述认证请求得到的所述应用标识和所述第四生成模块生成的所述签名密钥标识列表生成验证身份信息指令;

所述第一发送模块,用于向所述选择模块选择的认证器发送所述第五生成模块生成的所述验证身份信息指令;

所述第四接收模块,用于接收所述第一发送模块发送的所述验证身份信息指令;

所述第三解析模块,用于解析所述第四接收模块接收的所述验证身份信息指令得到第一最终挑战数据、应用标识和签名密钥标识列表;

所述第六生成模块,用于根据所述第三解析模块解析所述验证身份信息指令得到的所述应用标识生成访问令牌数据;

所述第七生成模块,用于对所述第三解析模块解析所述验证身份信息指令得到的所述第一最终挑战数据进行计算生成最终挑战哈希值;

所述提示模块,用于提示用户输入用户身份信息;

所述第四接收模块,还用于接收所述提示模提示用户输入的用户身份信息;

所述第一验证模块,用于验证所述第四接收模块接收到的用户输入的所述用户身份信息,当认证失败时,报错,结束;

所述第一获取模块,用于根据所述第三解析模块解析所述第四接收模块接收的所述验证身份信息指令得到的所述签名密钥标识列表、所述应用标识和所述第六生成模块生成的所述访问令牌数据获取签名私钥和签名密钥标识;

所述第二预置模块,用于预置认证器标识;

所述第八生成模块,用于根据所述第二预置模块预置的认证器标识、所述第七生成模块生成的所述最终挑战哈希值和所述第一获取模块获取的所述签名密钥标识生成待签名数据;

所述第九生成模块,用于使用所述第一获取模块获取的所述签名私钥对所述第八生成模块生成的所述待签名数据计算生成签名值;

所述第十生成模块,用于根据第二预置模块预置的所述认证器标识、所述第七生成模块生成的所述最终挑战哈希值、所述第一获取模块获取的所述签名密钥标识和所述第九生成模块生成的所述签名值生成认证响应;

所述第四发送模块,用于向所述客户端发送所述第十生成模块生成的所述认证响应;

所述第一接收模块,还用于接收所述第四发送模块发送的所述认证响应;

所述第一发送模块,还用于向所述依赖方发送所述第一接收模块接收的所述认证响应;

所述第二接收模块,还用于接收所述第一发送模块发送的所述认证响应;

所述第二发送模块,还用于向所述服务器发送所述第二接收模块接收的所述认证响应;

所述第三接收模块,还用于接收所述第二发送模块发送的所述认证响应;

所述第四解析模块,用于解析所述第三接收模块接收的所述认证响应得到认证器标识、最终挑战哈希值、签名密钥标识和签名值;

所述第二验证模块,用于对所述第四解析模块解析所述认证响应得到的所述认证器标识进行验证;

所述第三验证模块,用于对所述第四解析模块解析所述认证响应得到的所述最终挑战哈希值进行验证;

所述第四验证模块,用于根据所述第四解析模块解析所述认证响应得到的所述签名密钥标识对所述第四解析模块解析所述认证响应得到的所述签名值进行验证;

所述第一判断模块,用于判断所述第二验证模块、所述第三验证模块和所述第四验证模块是否全部验证成功,是则验证成功,否则验证失败。

18.如权利要求17所述的系统,其特征在于,所述依赖方与所述客户端之间的数据传输全部通过预置的安全信道进行。

19.如权利要求18所述的系统,其特征在于,所述客户端还包括第三预置模块;

所述第三预置模块,用于预置安全信道数据;

所述第三生成模块,具体用于根据所述第三预置模块预置的安全信道数据、所述第二解析模块解析所述认证请求得到的所述应用标识和所述挑战值生成第一最终挑战数据;

所述第二发送模块,还用于向所述服务器发送所述第三预置模块预置的安全信道数据;

所述第三接收模块,还用于接收所述第二发送模块发送的安全信道数据;

所述第三验证模块包括第一生成单元、第二生成单元和第一判断单元;

所述第一生成单元,用于根据所述第三接收模块接收的所述安全信道数据、所述第一解析模块解析所述触发认证请求得到的所述应用标识和所述第一生成模块生成的所述挑战值生成第二最终挑战数据;

所述第二生成单元,用于对所述第一生成单元生成的所述第二最终挑战数据进行哈希运算生成哈希运算结果;

所述第一判断单元,用于判断所述第二生成单元生成的所述哈希运算结果与所述第四解析模块解析所述认证响应得到的所述最终挑战哈希值是否相同,是则对所述最终挑战哈希值验证成功,否则对所述最终挑战哈希值验证失败。

20.如权利要求17所述的系统,其特征在于,所述客户端还包括第二判断模块和第一报错模块;

所述第二判断模块,用于根据所述第二解析模块解析所述认证请求得到的所述应用标识判断当前的用户代理标识是否合法;

所述第三生成模块,具体用于当所述第二判断模块根据所述第二解析模块解析所述认证请求得到的所述应用标识判断当前的用户代理标识合法时,根据所述第二解析模块解析所述认证请求得到的所述应用标识和所述挑战值生成第一最终挑战数据;

所述第一报错模块,用于当所述第二判断模块根据所述第二解析模块解析所述认证请求得到的所述应用标识判断当前的用户代理标识不合法时,报错。

21.如权利要求20所述的系统,其特征在于,所述第二判断模块包括第三生成单元和第二判断单元;所述依赖方还包括第二获取模块;

所述第三生成单元,用于根据所述第二解析模块解析所述认证请求得到的所述应用标识生成获取用户代理标识列表请求;

所述第一发送模块,还用于向所述依赖方发送所述第三生成单元生成的所述获取用户代理标识列表请求;

所述第二接收模块,还用于接收所述第一发送模块发送的所述获取用户代理标识列表请求;

所述第二获取模块,用于当所述第二接收模块接收所述获取用户代理标识列表请求后,获取用户代理标识列表;

所述第二发送模块,还用于向所述客户端发送所述第二获取模块获取的所述用户代理标识列表;

所述第一接收模块,还用于接收所述第二发送模块发送的所述用户代理标识列表;

所述第二判断单元,用于判断所述第一接收模块接收的所述用户代理标识列表中是否存在当前的用户代理标识,是则合法,否则不合法;

所述第三生成模块,具体用于当所述第二判断单元判断所述第一接收模块接收的所述用户代理标识列表中存在当前的用户代理标识时,根据所述第二解析模块解析所述认证请求得到的所述应用标识和所述挑战值生成第一最终挑战数据;

所述第一报错模块,具体用于当所述第二判断单元判断所述第一接收模块接收的所述用户代理标识列表中不存在当前的用户代理标识时,报错。

22.如权利要求17所述的系统,其特征在于,所述第四生成模块,具体用于从所述第二解析模块解析所述认证请求得到的所述认证策略中提取符合预设条件的签名密钥标识,根据提取的签名密钥标识生成签名密钥标识列表。

23.如权利要求17所述的系统,其特征在于,所述认证器还包括第一更新模块;所述第一获取模块包括检索单元和获取单元;

所述第一更新模块,用于根据所述第三解析模块解析所述验证身份信息指令得到的所述应用标识更新所述第六生成模块生成的所述访问令牌数据;

所述第二预置模块,还用于预置原始签名密钥数据;

所述检索单元,用于根据所述第三解析模块解析所述验证身份信息指令得到的根据所述签名密钥标识列表和所述应用标识、所述第一更新模块更新的所述访问令牌数据从所述第二预置模块预置的原始签名密钥数据中检索目标原始签名密钥数据;

所述获取单元,用于根据所述检索单元检索的所述目标原始签名密钥数据获取与所述目标原始签名数据对应的签名私钥和签名密钥标识。

24.如权利要求23所述的系统,其特征在于,所述检索单元包括检索子单元、解密子单元、筛选子单元、判断子单元和标记子单元;

所述第二预置模块,还用于预置包装密钥;

所述检索子单元,用于根据所述第三解析模块解析所述验证身份信息指令得到的所述签名密钥标识列表和所述应用标识检索原始签名密钥加密数据;

所述解密子单元,用于根据所述第二预置模块预置的包装密钥对所述检索子单元检索得到的所述原始签名密钥加密数据进行解密得到原始签名密钥数据列表;

所述筛选子单元,用于根据所述第一更新模块更新的所述访问令牌数据对所述解密子单元解密得到的所述原始签名密钥数据列表进行筛选;

所述判断子单元,用于判断所述筛选子单元筛选后的原始签名密钥数据列表中剩余的原始签名密钥数据的个数;

所述标记子单元,用于当所述判断子单元判断所述筛选子单元筛选后的原始签名密钥数据列表中剩余的原始签名密钥数据的个数为1个时,记剩余的所述原始签名密钥数据为目标原始签名密钥数据。

25.如权利要求17所述的系统,其特征在于,所述认证器还包括第二更新模块;所述服务器还包括第五验证模块和第三更新模块;

所述第二预置模块,还用于预置第一计数值;

所述第二更新模块,用于更新所述第二预置模块预置的第一计数值;

所述第十生成模块,具体用于根据所述第二预置模块预置的所述认证器标识、所述第七生成模块生成的所述最终挑战哈希值、所述第一获取模块获取的所述签名密钥标识、所述第九生成模块生成的所述签名值和所述第二更新模块更新的第一计数值生成认证响应;

所述第四解析模块,还用于解析所述第三接收模块接收的所述认证响应得到所述第一计数值;

所述第五验证模块,用于在所述第一判断模块判断所述第二验证模块、所述第三验证模块和所述第四验证模块全部验证成功之前,对所述第四解析模块解析所述认证响应得到的所述第一计数值进行验证;

所述第一判断模块,还用于判断所述第五验证模块是否验证成功;

所述第三更新模块,用于当所述第一判断模块判断所述第五验证模块验证成功时,用所述第四解析模块解析所述认证响应得到的第一计数值更新预置的第二计数值。

26.如权利要求25所述的系统,其特征在于,所述服务器还包括第三预置模块;

所述第三预置模块,用于预置第二计数值;

所述第五验证模块,具体用于判断所述第四解析模块解析所述认证响应得到的所述第一计数值是否大于所述第三预置模块预置的第二计数值,是则验证成功,否则验证失败。

27.如权利要求17所述的系统,其特征在于,所述服务器还包括第六验证模块;

所述第十生成模块,具体用于根据第二预置模块预置的所述认证器标识、所述第三生成模块生成的所述第一最终挑战数据、所述第七生成模块生成的所述最终挑战哈希值、所述第一获取模块获取的所述签名密钥标识和所述第九生成模块生成的所述签名值生成认证响应;

所述第四解析模块,具体用于解析所述第三接收模块接收的所述认证响应得到第一最终挑战数据、认证器标识、最终挑战哈希值、签名密钥标识和签名值;

所述第六验证模块,用于对所述第四解析模块解析所述认证响应得到的所述第一最终挑战数据进行验证;

所述第一判断模块,还用于判断所述第六验证模块是否验证成功。

28.如权利要求17所述的系统,其特征在于,所述服务器还包括第六验证模块;所述客户端还包括第四更新模块;

所述第四更新模块,用于将所述第三生成模块生成的所述第一最终挑战数据附加到所述第一接收模块接收的所述认证响应中更新所述认证响应;

所述第一发送模块,还用于向所述依赖方发送所述第四更新模块更新的所述认证响应;

所述第四解析模块,具体用于解析所述第三接收模块接收的所述认证响应得到第一最终挑战数据、认证器标识、最终挑战哈希值、签名密钥标识和签名值;

所述第六验证模块,用于对所述第四解析模块解析所述认证响应得到的所述第一最终挑战数据进行验证;

所述第一判断模块,还用于判断所述第六验证模块是否验证成功。

29.如权利要求27或28所述的系统,其特征在于,所述第六验证模块,具体用于判断所述第四解析模块解析所述认证响应得到的所述第一最终挑战数据中的应用标识是否与所述第一解析模块解析所述触发认证请求得到的应用标识相同;判断所述第四解析模块解析所述认证响应得到的所述第一最终挑战数据中的挑战值是否与所述第一生成模块生成的所述挑战值相同,当判断所述第四解析模块解析所述认证响应得到的所述第一最终挑战数据中的应用标识与所述第一解析模块解析所述触发认证请求得到的应用标识相同且所述第四解析模块解析所述认证响应得到的所述第一最终挑战数据中的挑战值与所述第一生成模块生成的所述挑战值相同时,验证成功,否则验证失败。

30.如权利要求17所述的系统,其特征在于,所述第二验证模块,具体用于判断所述第四解析模块解析所述认证响应得到的认证器标识是否符合所述第一生成模块生成的所述认证策略,是则对所述认证器标识认证成功,否则对所述认证器标识认证失败。

31.如权利要求17所述的系统,其特征在于,所述第三验证模块,具体用于根据所述第一解析模块解析所述触发认证请求得到的所述应用标识和所述第一生成模块生成的所述挑战值生成最终挑战比对数据,对所述最终挑战比对数据进行哈希运算得到最终挑战比对哈希值,判断解析所述认证响应得到的所述最终挑战哈希值与所述最终挑战比对哈希值是否相同,是则对所述最终挑战哈希值认证成功,否则对所述最终挑战哈希值认证失败。

32.如权利要求17所述的系统,其特征在于,所述第四验证模块,具体用于根据所述第四解析模块解析所述认证响应得到的认证器标识和签名密钥标识检索签名公钥,使用检索到的所述签名公钥对所述签名值进行验证。

说明书 :

一种认证系统及其工作方法

技术领域

[0001] 本发明涉及通信领域,尤其涉及一种认证系统及其工作方法。

背景技术

[0002] 随着我们对网络的使用,在线帐户越来越多,在线用户多依赖于以密码为主要验证手段的验证方式;每个用户可能每天会登录许多账号,针对不同账号,如果密码一样,一旦密码泄露,多数据都会泄露,极其不安全;如果密码不同,则不同账号的密码多而杂乱,忘记密码或者密码记混乱现象频繁发生,给用户带来极大不便;且每次登录账号都要输入密码,十分繁琐;此外,随着数据泄露事故的频发,传统的基于密码的验证方式已越来越不能满足用户的需求。
[0003] 目前网络中最常用的认证方法有动态口令和密码技术,而这些认证方法侧重于强化密码。大多数用户通常采用“帐户名+口令+短信验证码”的方式,登录移动应用后,再次使用无需验证口令,存在一定的风险;还有一种是采用生物特征识别技术作为输入口令的替代物,如利用语音、指纹、人脸识别、虹膜等。这种新的身份认证方式在某种程度上改善了用户体验,但是其认证系统依然采取传统模式,将生物特征信息存储在数据库中,用户在客户端输入生物特征信息,这些信息被传送到服务器与预先存储的生物特征模版匹配,从而完成认证;而人的生物特征都是特定的,如果服务器端遭受攻击则大量用户的私密信息将被泄露,给用户带来了安全隐患。

发明内容

[0004] 本发明的目的是为了克服现有技术的不足,提供了一种认证系统及其工作方法。
[0005] 本发明提供了一种认证系统的工作方法,包括以下步骤:
[0006] 步骤S1:当服务器接收到依赖方发送的包含预置的应用标识的触发认证请求时,所述服务器解析所述触发认证请求得到应用标识;根据所述触发认证请求生成认证策略和挑战值;根据所述应用标识、所述认证策略和所述挑战值生成认证请求,通过所述依赖方向客户端发送所述认证请求;
[0007] 步骤S2:所述客户端接收并解析所述认证请求得到应用标识、认证策略和挑战值;根据解析得到的所述应用标识和所述挑战值生成第一最终挑战数据;根据所述认证策略选择认证器;根据所述认证策略生成签名密钥标识列表;根据所述第一最终挑战数据、所述应用标识和所述签名密钥标识列表生成验证身份信息指令,向选择的所述认证器发送所述验证身份信息指令;
[0008] 步骤S3:所述认证器接收并解析所述验证身份信息指令得到第一最终挑战数据、应用标识和签名密钥标识列表;根据所述应用标识生成访问令牌数据;对所述第一最终挑战数据进行计算生成最终挑战哈希值;提示用户输入用户身份信息,验证用户输入的所述用户身份信息,当验证成功时,执行步骤S4,否则报错,结束;
[0009] 步骤S4:所述认证器根据所述签名密钥标识列表、所述应用标识和所述访问令牌数据获取签名私钥和签名密钥标识;根据预置的认证器标识、所述最终挑战哈希值和所述签名密钥标识生成待签名数据,使用所述签名私钥对所述待签名数据计算生成签名值;根据所述认证器标识、所述最终挑战哈希值、所述签名密钥标识和所述签名值生成认证响应,通过所述客户端和所述依赖方向所述服务器发送所述认证响应;
[0010] 步骤S5:所述服务器接收并解析所述认证响应得到认证器标识、最终挑战哈希值、签名密钥标识和签名值,分别对所述认证器标识和所述最终挑战哈希值进行验证,根据所述签名密钥标识对所述签名值进行验证,判断是否全部验证成功,是则验证成功,否则验证失败。
[0011] 本发明又提供了一种认证系统,包括认证器、客户端、依赖方和服务器;
[0012] 所述客户端包括第一发送模块、第一接收模块、第二解析模块、第三生成模块、选择模块、第四生成模块和第五生成模块;
[0013] 所述依赖方包括第二发送模块、第二接收模块和第一预置模块;
[0014] 所述服务器包括第三发送模块、第三接收模块、第一解析模块、第一生成模块、第二生成模块、第四解析模块、第二验证模块、第三验证模块、第四验证模块和第一判断模块;
[0015] 所述认证器包括第四发送模块、第四接收模块、第三解析模块、第六生成模块、第七生成模块、提示模块、第一验证模块、第二预置模块、第一获取模块、第八生成模块、第九生成模块和第十生成模块;
[0016] 所述第一预置模块,用于预置应用标识;
[0017] 所述第二发送模块,用于向所述服务器发送包含所述第一预置模块预置的应用标识的触发认证请求;
[0018] 所述第三接收模块,用于接收所述第二发送模块发送的包含所述第一预置模块预置的应用标识的触发认证请求;
[0019] 所述第一解析模块,用于解析所述第三接收模块接收的所述触发认证请求得到应用标识;
[0020] 所述第一生成模块,用于根据所述第三接收模块接收的所述触发认证请求生成认证策略和挑战值;
[0021] 所述第二生成模块,用于根据所述第一解析模块解析所述第三接收模块接收的所述触发认证请求得到的所述应用标识、所述第一生成模块生成的所述认证策略和所述挑战值生成认证请求;
[0022] 所述第三发送模块,用于向所述依赖方发送所述第二生成模块生成的所述认证请求;
[0023] 所述第二接收模块,还用于接收所述第三发送模块发送的所述认证请求;
[0024] 所述第二发送模块,还用于向所述客户端发送所述第二接收模块接收的所述认证请求;
[0025] 所述第一接收模块,用于接收所述第二发送模块发送的所述认证请求;
[0026] 所述第二解析模块,用于解析所述第一接收模块接收的所述认证请求得到应用标识、认证策略和挑战值;
[0027] 所述第三生成模块,用于根据所述第二解析模块解析所述认证请求得到的所述应用标识和所述挑战值生成第一最终挑战数据;
[0028] 所述选择模块,用于根据所述第二解析模块解析所述认证请求得到的所述认证策略选择认证器;
[0029] 所述第四生成模块,用于根据所述第二解析模块解析所述认证请求得到的所述认证策略生成签名密钥标识列表;
[0030] 所述第五生成模块,用于根据所述第三生成模块生成的所述第一最终挑战数据、所述第二解析模块解析所述认证请求得到的所述应用标识和所述第四生成模块生成的所述签名密钥标识列表生成验证身份信息指令;
[0031] 所述第一发送模块,用于向所述选择模块选择的认证器发送所述第五生成模块生成的所述验证身份信息指令;
[0032] 所述第四接收模块,用于接收所述第一发送模块发送的所述验证身份信息指令;
[0033] 所述第三解析模块,用于解析所述第四接收模块接收的所述验证身份信息指令得到第一最终挑战数据、应用标识和签名密钥标识列表;
[0034] 所述第六生成模块,用于根据所述第三解析模块解析所述验证身份信息指令得到的所述应用标识生成访问令牌数据;
[0035] 所述第七生成模块,用于对所述第三解析模块解析所述验证身份信息指令得到的所述第一最终挑战数据进行计算生成最终挑战哈希值;
[0036] 所述提示模块,用于提示用户输入用户身份信息;
[0037] 所述第四接收模块,还用于接收所述提示模提示用户输入的用户身份信息;
[0038] 所述第一验证模块,用于验证所述第四接收模块接收到的用户输入的所述用户身份信息,当认证失败时,报错,结束;
[0039] 所述第一获取模块,用于根据所述第三解析模块解析所述第四接收模块接收的所述验证身份信息指令得到的所述签名密钥标识列表、所述应用标识和所述第六生成模块生成的所述访问令牌数据获取签名私钥和签名密钥标识;
[0040] 所述第二预置模块,用于预置认证器标识;
[0041] 所述第八生成模块,用于根据所述第二预置模块预置的认证器标识、所述第七生成模块生成的所述最终挑战哈希值和所述第一获取模块获取的所述签名密钥标识生成待签名数据;
[0042] 所述第九生成模块,用于使用所述第一获取模块获取的所述签名私钥对所述第八生成模块生成的所述待签名数据计算生成签名值;
[0043] 所述第十生成模块,用于根据第二预置模块预置的所述认证器标识、所述第七生成模块生成的所述最终挑战哈希值、所述第一获取模块获取的所述签名密钥标识和所述第九生成模块生成的所述签名值生成认证响应;
[0044] 所述第四发送模块,用于向所述客户端发送所述第十生成模块生成的所述认证响应;
[0045] 所述第一接收模块,还用于接收所述第四发送模块发送的所述认证响应;
[0046] 所述第一发送模块,还用于向所述依赖方发送所述第一接收模块接收的所述认证响应;
[0047] 所述第二接收模块,还用于接收所述第一发送模块发送的所述认证响应;
[0048] 所述第二发送模块,还用于向所述服务器发送所述第二接收模块接收的所述认证响应;
[0049] 所述第三接收模块,还用于接收所述第二发送模块发送的所述认证响应;
[0050] 所述第四解析模块,用于解析所述第三接收模块接收的所述认证响应得到认证器标识、最终挑战哈希值、签名密钥标识和签名值;
[0051] 所述第二验证模块,用于对所述第四解析模块解析所述认证响应得到的所述认证器标识进行验证;
[0052] 所述第三验证模块,用于对所述第四解析模块解析所述认证响应得到的所述最终挑战哈希值进行验证;
[0053] 所述第四验证模块,用于根据所述第四解析模块解析所述认证响应得到的所述签名密钥标识对所述第四解析模块解析所述认证响应得到的所述签名值进行验证;
[0054] 所述第一判断模块,用于判断所述第二验证模块、所述第三验证模块和所述第四验证模块是否全部验证成功,是则验证成功,否则验证失败。
[0055] 本发明与现有技术相比,具有以下优点:认证器保存用户签名私钥等私密信息,而服务器不会得到用户私密信息,消除了用户私密信息在传输过程中被窃取或者替换的风险,提高了认证的安全性,有效的避免了由于服务器端遭受攻击致使大量用户的私密信息被泄露的安全隐患。

附图说明

[0056] 图1为本发明实施例一提供的一种认证系统的工作方法的流程图;
[0057] 图2和图3为本发明实施例二提供的一种认证系统的工作方法流程图。
[0058] 图4为本发明实施例三提供的一种认证系统的方框图。

具体实施方式

[0059] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0060] 实施例一
[0061] 本发明实施例一提供一种认证系统的工作方法,如图1所示,包括以下步骤:
[0062] 步骤100:依赖方生成包含预置的应用标识的触发认证请求,向服务器发送包含预置的应用标识的触发认证请求;
[0063] 步骤101:当服务器接收到依赖方发送的包含预置的应用标识的触发认证请求时,服务器解析触发认证请求得到应用标识;根据触发认证请求生成认证策略和挑战值;根据应用标识、认证策略和挑战值生成认证请求,通过依赖方向客户端发送认证请求;
[0064] 步骤102:客户端接收并解析认证请求得到应用标识、认证策略和挑战值;根据解析得到的应用标识和挑战值生成第一最终挑战数据;根据认证策略选择认证器;根据认证策略生成签名密钥标识列表;根据第一最终挑战数据、应用标识和签名密钥标识列表生成验证身份信息指令,向选择的认证器发送验证身份信息指令;
[0065] 可选地,本实施例中,步骤102中,客户端接收并解析认证请求得到应用标识、认证策略和挑战值之后,还包括:客户端根据解析得到的应用标识判断当前的用户代理标识是否合法,是则根据解析得到的应用标识和挑战值生成第一最终挑战数据,否则报错。
[0066] 更进一步地,本实施例中,步骤102中,客户端根据解析得到的应用标识判断当前的用户代理标识是否合法,包括以下步骤:
[0067] 步骤D1:客户端根据应用标识生成用户代理标识列表请求;向依赖方发送用户代理标识列表请求;
[0068] 步骤D2:依赖方接收用户代理标识列表请求,获取用户代理标识列表,向客户端发送获取的用户代理标识列表;
[0069] 步骤D3:客户端接收用户代理标识列表,判断用户代理标识列表中是否存在当前的用户代理标识。
[0070] 可选地,本实施例中,步骤102中,根据认证策略生成签名密钥标识列表,具体为:客户端从认证策略中提取符合预设条件的签名密钥标识,根据提取的签名密钥标识生成签名密钥标识列表。
[0071] 步骤103:认证器接收并解析验证身份信息指令得到第一最终挑战数据、应用标识和签名密钥标识列表;根据应用标识生成访问令牌数据;对第一最终挑战数据进行计算生成最终挑战哈希值;提示用户输入用户身份信息,验证用户输入的用户身份信息,当验证成功时,执行步骤104,否则报错,结束;
[0072] 可选地,本实施例中,步骤103中,根据应用标识生成访问令牌数据之后,还包括:认证器根据应用标识更新访问令牌数据;
[0073] 步骤104:认证器根据签名密钥标识列表、应用标识和访问令牌数据获取签名私钥和签名密钥标识;根据预置的认证器标识、最终挑战哈希值和签名密钥标识生成待签名数据,使用签名私钥对待签名数据计算生成签名值;根据认证器标识、最终挑战哈希值、签名密钥标识和签名值生成认证响应,通过客户端和依赖方向服务器发送认证响应;
[0074] 可选地,本实施例中,认证器根据签名密钥标识列表、应用标识和访问令牌数据获取签名私钥和签名密钥标识,具体为:认证器根据签名密钥标识列表、应用标识和更新的访问令牌数据从预置的原始签名密钥数据中检索目标原始签名密钥数据;根据目标原始签名密钥数据获取与目标原始签名数据对应的签名私钥和签名密钥标识。
[0075] 更进一步地,本实施例中,认证器根据签名密钥标识列表、应用标识和更新后的访问令牌数据从预置的原始签名密钥数据中检索目标原始签名密钥数据,包括以下步骤:
[0076] 步骤A1:认证器根据签名密钥标识列表和应用标识检索原始签名密钥加密数据;
[0077] 步骤A2:认证器根据预置的包装密钥对原始签名密钥加密数据进行解密得到原始签名密钥数据列表;
[0078] 步骤A3:认证器根据更新的访问令牌数据对原始签名密钥数据列表进行筛选,判断筛选后的原始签名密钥数据列表中剩余的原始签名密钥数据的个数,当筛选后的原始签名密钥数据列表中剩余的原始签名密钥数据的个数为1个时,记剩余的原始签名密钥数据为目标原始签名密钥数据。
[0079] 可选地,本实施例中,步骤104中,还包括:认证器更新预置的第一计数值;根据认证器标识、最终挑战哈希值、签名密钥标识和签名值生成认证响应,具体为:认证器根据更新后的第一计数值、认证器标识、最终挑战哈希值、签名密钥标识和签名值生成认证响应;
[0080] 相应地,步骤105中,服务器接收并解析认证响应之后,判断是否全部验证成功之前,还包括:服务器对解析认证响应得到的第一计数值进行验证;
[0081] 相应地,步骤105中,当全部验证成功时,还包括:服务器用解析认证响应得到的第一计数值更新预置的第二计数值。
[0082] 更进一步地,本实施例中,服务器对解析认证响应得到的第一计数值进行验证,具体为:服务器判断解析认证响应得到的第一计数值是否大于预置的第二计数值,是则验证成功,否则验证失败。
[0083] 可选地,本实施例中,步骤104中,根据认证器标识、最终挑战哈希值、签名密钥标识和签名值生成认证响应,具体为:认证器根据第一最终挑战数据、认证器标识、最终挑战哈希值、签名密钥标识和签名值生成认证响应;
[0084] 相应地,步骤105中,服务器接收并解析认证响应得到认证器标识、最终挑战哈希值、签名密钥标识和签名值,具体为:服务器接收并解析认证响应得到第一最终挑战数据、认证器标识、最终挑战哈希值、签名密钥标识和签名值;
[0085] 相应地,步骤105中,服务器接收并解析认证响应之后,判断是否全部验证成功之前,还包括:服务器对解析认证响应得到的第一最终挑战数据进行验证;
[0086] 可选地,本实施例中,步骤104中,通过客户端和依赖方向服务器发送认证响应,包括以下步骤:
[0087] 步骤C1:认证器向客户端发送认证响应;
[0088] 步骤C2:客户端接收认证响应,将生成的第一最终挑战数据附加到认证响应中更新认证响应,向依赖方发送认证响应;
[0089] 步骤C3:依赖方接收认证响应,向服务器发送认证响应;
[0090] 相应地,步骤105中,服务器接收并解析认证响应得到认证器标识、最终挑战哈希值、签名密钥标识和签名值,具体为:服务器接收并解析认证响应得到第一最终挑战数据、认证器标识、最终挑战哈希值、签名密钥标识和签名值;
[0091] 相应地,步骤105中,服务器接收并解析认证响应之后,判断是否全部验证成功之前,还包括:服务器对解析认证响应得到的第一最终挑战数据进行验证;
[0092] 更进一步地,本实施例中,服务器对解析认证响应得到的第一最终挑战数据进行验证,具体为:服务器判断解析认证响应得到的第一最终挑战数据中的应用标识是否与解析触发认证请求得到的应用标识相同;判断第一最终挑战数据中的挑战值是否与生成的挑战值相同,当判断解析认证响应得到的第一最终挑战数据中的应用标识与解析触发认证请求得到的应用标识相同且第一最终挑战数据中的挑战值与生成的挑战值相同时,验证成功,否则验证失败。
[0093] 步骤105:服务器接收并解析认证响应得到认证器标识、最终挑战哈希值、签名密钥标识和签名值,分别对认证器标识和最终挑战哈希值进行验证,根据签名密钥标识对签名值进行验证,判断是否全部验证成功,是则验证成功,否则验证失败。
[0094] 可选地,本实施例中,依赖方与客户端之间的数据传输全部通过预置的安全信道进行。
[0095] 更进一步地,本实施例中,步骤102中,根据解析得到的应用标识和挑战值生成第一最终挑战数据,具体为:客户端根据预置的安全信道数据、应用标识和挑战值生成第一最终挑战数据;
[0096] 相应地,步骤105中,对最终挑战哈希值进行验证之前,还包括:服务器接收依赖方发送的预置的安全信道数据;
[0097] 相应地,步骤105中,对最终挑战哈希值进行验证,具体为:服务器根据安全信道数据、解析触发认证请求得到的应用标识和生成的挑战值生成第二最终挑战数据,对第二最终挑战数据进行哈希运算生成哈希运算结果,判断生成的哈希运算结果与解析认证响应得到的最终挑战哈希值是否相同,是则对最终挑战哈希值验证成功,否则对最终挑战哈希值验证失败。
[0098] 可选地,本实施例中,步骤105中,对解析认证响应得到的认证器标识进行验证,包括:服务器判断解析认证响应得到的认证器标识是否符合生成的认证策略,是则对所述认证器标识认证成功,否则对所述认证器标识认证失败。
[0099] 可选地,本实施例中,步骤105中,对解析认证响应得到的最终挑战哈希值进行验证,包括:服务器根据解析触发认证请求得到的应用标识和生成的挑战值生成最终挑战比对数据,对最终挑战比对数据进行哈希运算得到最终挑战比对哈希值,判断解析认证响应得到的最终挑战哈希值与最终挑战比对哈希值是否相同,是则对最终挑战哈希值认证成功,否则对最终挑战哈希值认证失败。。
[0100] 可选地,本实施例中,步骤105中,根据签名密钥标识对签名值进行验证,包括:服务器根据认证响应得到的认证器标识和签名密钥标识检索签名公钥,使用检索到的签名公钥对签名值进行验证;
[0101] 本实施例中,用户代理集成于客户端,用户代理所执行的操作归于客户端;
[0102] 本发明与现有技术相比,具有以下优点:认证器保存用户签名私钥等私密信息,而服务器不会得到用户私密信息,消除了用户私密信息在传输过程中被窃取或者替换的风险,提高了认证的安全性,有效的避免了由于服务器端遭受攻击致使大量用户的私密信息被泄露的安全隐患。
[0103] 实施例二
[0104] 本发明实施例二提供一种认证系统的工作方法,如图2和图3所示,包括以下步骤:
[0105] 步骤201:当用户代理接收到用户的登录验证请求信息时,用户代理生成登录验证请求,通过预置的安全信道向依赖方发送生成的登录验证请求;
[0106] 例如,本实施例中,用户代理包括浏览器和应用程序;
[0107] 例如,本实施例中,登录验证请求为:https://uafmagdc.cloudentify.com/uafmanager/facets;
[0108] 可选地,本实施例中,步骤201之前,还包括:用户代理和依赖方之间根据TLS协议(安全传输层协议)预置安全信道;安全信道用于给用户代理和依赖方之间的数据通信提供保密性和数据完整性;本实施例中,用户代理和依赖方之间的数据传输全部需要通过安全信道进行;可选地,安全信道数据在用户代理和依赖方中预置;
[0109] 步骤202:依赖方接收登录验证请求,根据预置的应用标识生成触发认证请求,向服务器发送生成的触发认证请求;
[0110] 具体地,本实施例中,本步骤之前,依赖方预置应用标识,标识依赖方的地址;
[0111] 例如,本实施例中,应用标识为:https://uafmagdc.cloudentify.com/uafmanager/facets;
[0112] 步骤203:服务器接收并解析触发认证请求得到应用标识;根据接收的触发认证请求生成认证策略和挑战值,根据解析得到的应用标识、生成的认证策略和生成的挑战值生成认证请求,向依赖方发送生成的认证请求;
[0113] 可选地,本实施例中,根据解析得到的应用标识、生成的认证策略和生成的挑战值生成认证请求,具体为:服务器根据解析得到的应用标识生成操作标头,根据生成的操作标头、生成的认证策略和生成的挑战值生成认证请求;本实施例中,操作标头用于标识注册的相关信息;
[0114] 具体地,本实施例中,挑战值作为挑战信息供服务器进行认证响应的消息认证;
[0115] 具体地,本实施例中,认证策略用于选择允许进行认证操作的认证器;认证策略包括接受部分,在接受部分包括用户想要进行认证的认证器的匹配准则(例如,认证器标识、认证器版本号和用户认证方式);可选地,认证策略还可以包括禁止部分,禁止部分包括一些不能接受的认证器的信息;
[0116] 具体地,本实施例中,认证器标识唯一确定一个认证器的型号;认证器标识的数据格式为“V#M”,V是vendor的缩写,表示认证器的提供商,#是分隔符,M是Machine的缩写,表示认证器的型号;认证器标识对于大小写不敏感;只有相同商家,相同型号的认证器才能使用相同的认证器标识;当认证器改变以后,比如修复更新固件等,必须使用新的认证器标识;
[0117] 例如,本实施例中,
[0118] 挑战值为:"challenge":"JDJhJDEwJFo3WGZVc2JEYmNOcEo2R3RRdUhvemU";
[0119] 版本标识为:"upv":{"major":1,"minor":0};
[0120] 认证策略为:{"accepted":[[{"aaid":["001B#0001"],"keyIDs":["tfnuGtYdfDDomxQ5FRIjNaoTdY2USJwk0y787E1dWh8"]}],[{"aaid":["001B#0001"],"keyIDs":["Lw5TdjpgkrNupQ4J7hjoYBCFVrAMVW4om8yGui13yyw"]}]]};
[0121] 认证请求为:[{"challenge":"JDJhJDEwJFo3WGZVc2JEYmNOcEo2R3RRdUhvemU","header":{"appID":"https://uafmagdc.cloudentify.com/uafmanager/facets","op":"Auth","serverData":"QXd2aUdKRjRNUExMczdPZ1pOWkZpSGpPSUwxRzk1LThqN2NkR1FLczVDSS5NVFV6TURBMk5UZzVNamt3TlEuU2tSS2FFcEVSWGRLUm04elYwZGFWbU15U2tWWmJVNVBZMFZ2TWxJelVsSmtWV2gyWlcxVi4","upv":{"major":1,"minor":0}},"policy":{"accepted":[[{"aaid":["001B#0001"],"keyIDs":["tfnuGtYdfDDomxQ5FRIjNaoTdY2USJwk0y787E1dWh8"]}],[{"aaid":["001B#0001"],"keyIDs":["Lw5TdjpgkrNupQ4J7hjoYBCFVrAMVW4om8yGui13yyw"]}]]}}];
[0122] 步骤204:依赖方接收认证请求,通过安全信道向用户代理发送接收的认证请求;
[0123] 步骤205:用户代理接收认证请求,根据预置的用户代理标识更新认证请求,向客户端发送更新的认证请求;
[0124] 可选地,本实施例中,根据预置的用户代理标识更新认证请求,具体为:用户代理在认证请求中附加预置的用户代理标识更新认证请求;
[0125] 例如,本实施例中,用户代理标识为:https://uafmagdc.cloudentify.com/uafmanager/facets;
[0126] 可选地,本实施例中,步骤201之前,用户代理预置用户代理标识,用户代理标识用于标识用户代理;
[0127] 步骤206:客户端接收并解析认证请求得到用户代理标识、应用标识、认证策略和挑战值;根据解析得到的应用标识判断解析得到的用户代理标识是否合法,是则执行步骤207,否则报错;
[0128] 可选地,本实施例中,根据解析得到的应用标识判断解析得到的用户代理标识是否合法,是则执行步骤207,否则报错;包括以下步骤:
[0129] 步骤D1:客户端根据应用标识生成获取用户代理标识列表请求;向依赖方发送获取用户代理标识列表请求;
[0130] 步骤D2:依赖方接收获取用户代理标识列表请求,获取用户代理标识列表,生成获取用户代理标识列表响应,向客户端发送获取用户代理标识列表响应;
[0131] 步骤D3:客户端接收并解析获取用户代理标识列表响应得到用户代理标识列表,判断用户代理标识列表中是否存在当前的用户代理标识,是则合法,否则不合法,是则解析得到的用户代理标识合法,执行步骤207,否则报错;
[0132] 步骤207:客户端根据解析得到的应用标识和解析得到的挑战值生成第一最终挑战数据;根据解析得到的认证策略选择认证器;从解析得到的认证策略中提取符合预设条件的签名密钥标识,根据提取的签名密钥标识生成签名密钥标识列表;根据生成的第一最终挑战数据、解析得到的应用标识和生成的签名密钥标识列表生成验证身份信息指令,向选择的认证器发送生成的验证身份信息指令;
[0133] 可选地,本实施例中,客户端根据解析得到的应用标识和解析得到的挑战值生成第一最终挑战数据,具体为:客户端根据预置的安全信道数据、解析得到的应用标识和生成的挑战值生成的第一最终挑战数据;
[0134] 可选地,本实施例中,根据提取的签名密钥标识生成签名密钥标识列表之后,还包括:客户端判断生成的签名密钥标识列表是否为空,是则报错,否则根据生成的第一最终挑战数据、解析得到的应用标识和生成的签名密钥标识列表生成验证身份信息指令;
[0135] 例如,本实施例中,第一最终挑战数据为:JDJhJDEwJFo3WGZVc2JEYmNOcEo2R3RRdUhvemU;
[0136] 签名密钥标识为:tfnuGtYdfDDomxQ5FRIjNaoTdY2USJwk0y787E1dWh8;
[0137] 签名密钥标识列表为:Lw5TdjpgkrNupQ4J7hjoYBCFVrAMVW4om8yGui13yyw;
[0138] 验证身份信息指令为:"tfnuGtYdfDDomxQ5FRIjNaoTdY2USJwk0y787E1dWh8","Lw5TdjpgkrNupQ4J7hjoYBCFVrAMVW4om8yGui13yyw";
[0139] 安全信道数据为:{"appID":"https://uafmagdc.cloudentify.com/uafmanager/facets","challenge":"JDJhJDEwJFo3WGZVc2JEYmNOcEo2R3RRdUhvemU","channelBinding":{},"facetID":"android:apk-key-hash:
qxKId88vHySV2KnQQYDrDX7bbU4"};
[0140] 步骤208:认证器接收并解析验证身份信息指令得到第一最终挑战数据、应用标识和签名密钥标识列表并保存;对根据保存的应用标识生成的组合数据进行哈希运算生成访问令牌数据;对根据保存的第一最终挑战数据进行哈希运算生成最终挑战哈希值;
[0141] 可选地,本实施例中,认证器接收并解析验证身份信息指令得到第一最终挑战数据、应用标识和签名密钥标识列表之后,还包括:认证器显示解析得到的应用标识;
[0142] 可选地,本实施例中,对根据保存的应用标识生成的组合数据进行哈希运算生成访问令牌数据之后,还包括:认证器对根据应用标识和生成的访问令牌数据生成的组合数据进行哈希运算更新访问令牌数据;
[0143] 例如,本实施例中,最终挑战哈希值为:c3ddccb16a7aaba0d4e1c6ead64fdc5e05e5aa3f6f33a9a73676274c8d0cd1d4;
[0144] 步骤209:认证器提示用户输入用户身份信息,当接收到用户输入的用户身份信息时,验证用户输入的用户身份信息,判断用户身份信息是否验证成功,是则执行步骤210,否则报错;
[0145] 具体地,本实施例中,用户身份信息包括指纹信息和/或掌纹信息和/或语音信息和/或人脸信息和/或虹膜信息和/或静脉信息和PIN码;本实施例中,PIN码(PersonalIdentificationNumber),用户识别用户身份;
[0146] 步骤210:认证器根据保存的签名密钥标识列表、保存的应用标识和生成的访问令牌数据从保存的所有原始签名密钥数据中检索目标原始签名密钥数据;根据检索的目标原始签名数据获取与目标原始签名数据对应的签名私钥和签名密钥标识;
[0147] 可选地,本实施中,在步骤201之前进行注册流程:在注册流程中,认证器生成原始签名密钥数据并保存;
[0148] 例如,本实施例中,签名密钥标识为:2f0e53763a6092b36ea50e09ee18e860108556b00c556e289bcc86ba2d77cb2c;
[0149] 可选地,本实施例中,认证器根据保存的签名密钥标识列表、保存的应用标识和生成的访问令牌数据从保存的所有原始签名密钥数据中检索目标原始签名密钥数据,包括以下步骤:
[0150] 步骤a1:认证器根据保存的签名密钥标识列表和保存的应用标识检索原始签名密钥加密数据;
[0151] 步骤a2:认证器根据预置的包装密钥对原始签名密钥加密数据进行解密得到原始签名密钥数据列表;
[0152] 步骤a3:认证器根据更新的访问令牌数据对解密得到的原始签名密钥数据列表进行筛选,判断筛选后的原始签名密钥数据列表中包含的原始签名密钥数据的个数,当剩余的原始签名密钥数据的个数为0时,报错;当剩余的原始签名密钥数据的个数为1时,执行步骤a4;当剩余的原始签名密钥数据的个数大于1时,执行步骤a5;
[0153] 步骤a4:认证器记原始签名密钥数据为目标原始签名密钥数据,执行根据检索的目标原始签名数据获取与目标原始签名数据对应的签名私钥和签名密钥标识;
[0154] 步骤a5:认证器提取剩余的所有原始签名密钥数据中的用户帐号,根据预置的包装密钥对所有的原始签名密钥数据分别加密得到原始签名密钥加密数据;根据所有提取的用户帐号和与用户帐号对应的原始签名密钥加密数据生成标签列表;提取生成的标签列表中的标签中的用户帐号,生成用户帐号列表,执行步骤a6;
[0155] 步骤a6:认证器提示用户从用户帐号列表中选择出目标用户帐号,根据目标用户帐号检索与目标用户帐号对应的原始签名密钥加密数据,返回步骤a2;
[0156] 相应地,本实施例中,步骤201之前,进行注册流程:注册流程中,认证器保存原始签名密钥加密数据;包装密钥预置在认证器中;包装密钥一般为对称密钥;
[0157] 相应地,本实施例步骤208中,对根据保存的应用标识生成的组合数据进行哈希运算生成访问令牌数据之后,还包括:认证器对根据应用标识和生成的访问令牌数据生成的组合数据进行哈希运算更新访问令牌数据;
[0158] 例如,本实施例中,签名密钥标识为:2f0e53763a6092b36ea50e09ee18e860108556b00c556e289bcc86ba2d77cb2c;
[0159] 步骤211:认证器更新预置的第一计数值;根据预置的认证器标识、生成的最终挑战哈希值、获取的签名密钥标识和更新的第一计数值生成待签名数据;使用获取的签名私钥对生成的待签名数据进行加密生成签名值;
[0160] 具体地,本实施例中,认证器出厂时预置在认证器标识;认证器标识唯一确定一个认证器的型号;认证器标识的数据格式为“V#M”,V是vendor的缩写,表示认证器的提供商,#是分隔符,M是Machine的缩写,表示认证器的型号,它对于大小写不敏感;只有相同商家,相同型号的认证器才能使用相同的认证器标识;当认证器改变以后,比如修复更新固件等,必须使用新的认证器标识;
[0161] 可选地,本实施例中,步骤201之前进行注册流程:在注册流程中,认证器和服务器保存第一计数值;
[0162] 具体地,本实施例中,认证器在出厂时预置认证器私钥和认证器公钥;
[0163] 例如,本实施例中,随机数为:
[0164] 第一计数值为:19010000;
[0165] 更新的第一计数值为:1a010000;
[0166] 认证器标识为:001B#0001;
[0167] 待签名数据为:043eb2000b2e09003030314223303030310e2e050000010101000f2e200045528633c01eceb8396b0d71f25d4991559ce682923017e851f5ece54055f1910a2e2000c3ddccb16a7aaba0d4e1c6ead64fdc5e05e5aa3f6f33a9a73676274c8d0cd1d4102e0000092e20002f0e53763a6092b36ea50e09ee18e860108556b00c556e289bcc86ba2d77cb2c0401200
05b6faca11e63a4f35d96afb7fb8731a6f39a271acb9fea64b66fb94187d776b50d2e04001a0
10000;
[0168] 签名值为:055aa28c9c549dab235dece56fc5d7c9ed470c36332e7ce4bc779475d4e6ad453aaeb21927c9250a4c990c216def9222750fd80463db3e6e4dafe11580e8576e;
[0169] 步骤212:认证器根据预置的认证器标识、生成的最终挑战哈希值、生成的随机数、获取的签名密钥标识、更新的第一计数值和生成的签名值生成认证响应,向客户端发送生成的认证响应;
[0170] 步骤213:客户端接收认证响应,根据生成的第一最终挑战数据更新认证响应,向用户代理发送更新的认证响应;
[0171] 可选地,本实施例中,根据保存的第一最终挑战数据更新认证响应,具体为:客户端将第一最终挑战数据附加到认证响应中更新认证响应;
[0172] 步骤214:用户代理接收认证响应,通过安全信道向依赖方发送接收的认证响应;
[0173] 步骤215:依赖方接收认证响应,向服务器发送接收的认证响应;
[0174] 步骤216:服务器接收并解析认证响应得到第一最终挑战数据、认证器标识、最终挑战哈希值、随机数、签名密钥标识、更新的第一计数值和签名值;
[0175] 步骤217:服务器分别对解析得到的第一最终挑战数据、认证器标识、最终挑战哈希值、更新的第一计数值和签名值进行验证,当全部验证成功时,执行步骤218,否则报错;
[0176] 可选地,本实施例中,步骤217具体为:服务器判断解析得到的第一最终挑战数据中的应用标识是否与解析触发认证请求中的应用标识相同;判断解析得到的第一最终挑战数据中的挑战值是否与生成的挑战值相同;判断解析得到的认证器标识是否符合生成的认证策略;判断解析得到的第一计数值是否大于预置的第二计数值;根据解析得到的认证器标识和签名密钥标识检索签名公钥,使用检索的签名公钥对解析得到的签名值进行验签,判断得到的验签结果是否为第一预设值;如果判断全为是,则执行步骤218,否则报错;
[0177] 具体地,本实施例中,步骤201之前进行注册流程:在注册流程中,服务器预置第二计数值;服务器保存签名公钥;
[0178] 更进一步地,当步骤207中,客户端根据预置的安全信道数据、解析得到的应用标识和生成的挑战值生成的第一最终挑战数据时,相应地,步骤217具体中,如果判断全为是之前,还包括:客户端判断第一最终挑战数据中的安全信道数据是否与接收的依赖方发送的安全信道数据相同;相应地,本步骤之前,依赖方向客户端发送安全信道数据;服务器接收依赖方发送的安全信道数据;
[0179] 步骤218:服务器生成验证成功信息,使用解析得到的第一计数值更新原来预置的第二计数值,向依赖方发送生成的验证成功信息;
[0180] 可选地,本实施例步骤201之前进行注册流程:在注册流程中,服务器保存第二计数值,在本实施例中,相当于服务器预置第一计数值;
[0181] 例如,本实施例中,第一计数值为:19010000;
[0182] 第二计数值为:1a010000;
[0183] 步骤219:依赖方接收验证成功信息,通过安全信道向用户代理发送接收的验证成功信息;
[0184] 步骤220:用户代理接收验证成功信息。
[0185] 本实施例中,服务器接收到的认证响应包括第一最终挑战数据,生成包括第一最终挑战数据认证响应的方式,具体为:客户端将最后挑战数据附加到认证器生成的认证响应中,然后服务器对第一最终挑战数据进行认证;
[0186] 可选地,服务器接收到的认证响应包括第一最终挑战数据;还有一种方式生成包括第一最终挑战数据认证响应,具体为:认证器根据预置的认证器标识、生成的第一最终挑战数据、生成的最终挑战哈希值、获取的签名密钥标识、更新的第一计数值和生成的签名值生成认证响应;然后客户端只是起到将认证器生成的认证响应传递给依赖方的作用;
[0187] 可选地,以上两种方式中:服务器对第一最终挑战数据进行认证具体为:服务器判断解析得到的第一最终挑战数据中的应用标识是否与触发认证请求中的应用标识相同,判断解析得到的第一最终挑战数据中的挑战值是否与生成的挑战值相同;
[0188] 另外,服务器接收到的认证响应中可以不包括第一最终挑战数据,然后服务器对最终挑战签名值进行验证,具体过程为:服务器根据解析得到的应用标识和生成的挑战值生成第二最终挑战数据,对生成的第二最终挑战数据进行哈希运算得到最终挑战哈希值,判断解析所认证响应得到的最终挑战哈希值与生成的最终挑战哈希值是否相同,是则对最终挑战哈希值验证成功,否则对最终挑战哈希值验证失败;
[0189] 本实施例中,用户代理与客户端相互独立;
[0190] 本发明与现有技术相比,具有以下优点:认证器保存用户签名私钥等私密信息,而服务器不会得到用户私密信息,消除了用户私密信息在传输过程中被窃取或者替换的风险,提高了认证的安全性,有效的避免了由于服务器端遭受攻击致使大量用户的私密信息被泄露的安全隐患;
[0191] 实施例三
[0192] 本发明实施例三提供一种认证系统,如图4所示,包括认证器60、客户端30、依赖方40和服务器50;
[0193] 客户端30包括第一发送模块301、第一接收模块302、第二解析模块303、第三生成模块304、选择模块305、第四生成模块306和第五生成模块307;
[0194] 依赖方40包括第二发送模块401、第二接收模块402和第一预置模块403;
[0195] 服务器50包括第三发送模块501、第三接收模块502、第一解析模块503、第一生成模块504、第二生成模块505、第四解析模块506、第二验证模块507、第三验证模块508、第四验证模块509和第一判断模块510;
[0196] 认证器60包括第四发送模块601、第四接收模块602、第三解析模块603、第六生成模块604、第七生成模块605、提示模块606、第一验证模块607、第二预置模块609、第一获取模块608、第八生成模块610、第九生成模块611和第十生成模块612;
[0197] 第一预置模块403,用于预置应用标识;
[0198] 第二发送模块401,用于向服务器50发送包含第一预置模块403预置的应用标识的触发认证请求;
[0199] 第三接收模块502,用于接收第二发送模块401发送的包含第一预置模块403预置的应用标识的触发认证请求;
[0200] 第一解析模块503,用于解析第三接收模块502接收的触发认证请求得到应用标识;
[0201] 第一生成模块504,用于根据第三接收模块502接收的触发认证请求生成认证策略和挑战值;
[0202] 第二生成模块505,用于根据所述第一解析模块503解析第三接收模块502接收的触发认证请求得到的应用标识、第一生成模块504生成的认证策略和挑战值生成认证请求;
[0203] 第三发送模块501,用于向依赖方40发送第二生成模块505生成的认证请求;
[0204] 第二接收模块402,还用于接收第三发送模块501发送的认证请求;
[0205] 第二发送模块401,还用于向客户端30发送第二接收模块402接收的认证请求;
[0206] 第一接收模块302,用于接收第二发送模块401发送的认证请求;
[0207] 第二解析模块303,用于解析第一接收模块302接收的认证请求得到应用标识、认证策略和挑战值;
[0208] 第三生成模块304,用于根据第二解析模块303解析认证请求得到的应用标识和挑战值生成第一最终挑战数据;
[0209] 选择模块305,用于根据第二解析模块303解析认证请求得到的认证策略选择认证器60;
[0210] 第四生成模块306,用于根据第二解析模块303解析认证请求得到的认证策略生成签名密钥标识列表;
[0211] 可选地,第四生成模块306,具体用于从第二解析模块303解析认证请求得到的认证策略中提取符合预设条件的签名密钥标识,根据提取的签名密钥标识生成签名密钥标识列表。
[0212] 第五生成模块307,用于根据第三生成模块304生成的第一最终挑战数据、第二解析模块303解析认证请求得到的应用标识和第四生成模块306生成的签名密钥标识列表生成验证身份信息指令;
[0213] 第一发送模块301,用于向选择模块305选择的认证器60发送第五生成模块307生成的验证身份信息指令;
[0214] 第四接收模块602,用于接收第一发送模块301发送的验证身份信息指令;
[0215] 第三解析模块603,用于解析第四接收模块602接收的验证身份信息指令得到第一最终挑战数据、应用标识和签名密钥标识列表;
[0216] 第六生成模块604,用于根据第三解析模块603解析验证身份信息指令得到的应用标识生成访问令牌数据;
[0217] 第七生成模块605,用于对第三解析模块603解析验证身份信息指令得到的第一最终挑战数据进行计算生成最终挑战哈希值;
[0218] 提示模块606,用于提示用户输入用户身份信息;
[0219] 第四接收模块602,还用于接收提示模提示用户输入用户身份信息;
[0220] 第一验证模块607,用于验证第四接收模块602接收的用户输入的用户身份信息,当认证失败时,报错,结束;
[0221] 第一获取模块608,用于根据第三解析模块603解析第四接收模块602接收的验证身份信息指令得到的签名密钥标识列表、应用标识和第六生成模块604生成的访问令牌数据获取签名私钥和签名密钥标识;
[0222] 第二预置模块609,用于预置认证器标识;
[0223] 第八生成模块610,用于根据第二预置模块609预置的认证器标识、第七生成模块605生成的最终挑战哈希值和第一获取模块608获取的签名密钥标识生成待签名数据;
[0224] 第九生成模块611,用于使用第一获取模块608获取的签名私钥对第八生成模块610生成的待签名数据计算生成签名值;
[0225] 第十生成模块612,用于根据第二预置模块609预置的认证器标识、第七生成模块605生成的最终挑战哈希值、第一获取模块608获取的签名密钥标识和第九生成模块611生成的签名值生成认证响应;
[0226] 第四发送模块601,用于向客户端30发送第十生成模块612生成的认证响应;
[0227] 第一接收模块302,还用于接收第四发送模块601发送的认证响应;
[0228] 第一发送模块301,还用于向依赖方40发送第一接收模块302接收的认证响应;
[0229] 第二接收模块402,还用于接收第一发送模块301发送的认证响应;
[0230] 第二发送模块401,还用于向服务器50发送第二接收模块402接收的认证响应;
[0231] 第三接收模块502,还用于接收第二发送模块401发送的认证响应;
[0232] 第四解析模块506,用于解析第三接收模块502接收的认证响应得到认证器标识、最终挑战哈希值、签名密钥标识和签名值;
[0233] 第二验证模块507,用于对第四解析模块506解析认证响应得到的认证器标识进行验证;
[0234] 可选地,第二验证模块507,具体用于判断第四解析模块506解析认证响应得到的认证器标识是否符合第一生成模块504生成的认证策略,是则对所述认证器标识认证成功,否则对所述认证器标识认证失败。
[0235] 第三验证模块508,用于对第四解析模块506解析认证响应得到的最终挑战哈希值进行验证;
[0236] 可选地,第三验证模块508,具体用于根据第一解析模块503解析触发认证请求得到的应用标识和第一生成模块504生成的挑战值生成最终挑战比对数据,对最终挑战比对数据进行哈希运算得到最终挑战比对哈希值,判断解析认证响应得到的最终挑战哈希值与最终挑战比对哈希值是否相同,是则对所述最终挑战哈希值认证成功,否则对所述最终挑战哈希值认证失败。。
[0237] 第四验证模块509,用于根据第四解析模块506解析认证响应得到的签名密钥标识对第四解析模块506解析认证响应得到的签名值进行验证;
[0238] 可选地,第四验证模块509,具体用于根据第四解析模块506解析认证响应得到的认证器标识和签名密钥标识检索签名公钥,使用检索到的签名公钥对签名值进行验证。
[0239] 第一判断模块510,用于判断第二验证模块507、第三验证模块508和第四验证模块509是否全部验证成功,是则验证成功,否则验证失败。
[0240] 可选地,依赖方40与客户端30之间的数据传输全部通过预置的安全信道进行;
[0241] 更可选地,客户端30还包括第三预置模块;
[0242] 第三预置模块,用于预置安全信道数据;
[0243] 第三生成模块304,具体用于根据第三预置模块预置的安全信道数据、第二解析模块303解析认证请求得到的应用标识和挑战值生成第一最终挑战数据;
[0244] 第二发送模块401,还用于向服务器50发送第三预置模块预置的安全信道数据;
[0245] 第三接收模块502,还用于接收第二发送模块401发送的安全信道数据;
[0246] 第三验证模块508包括第一生成单元、第二生成单元和第一判断单元;
[0247] 第一生成单元,用于根据第三接收模块502接收的安全信道数据、第一解析模块503解析触发认证请求得到的应用标识和第一生成模块504生成的挑战值生成第二最终挑战数据;
[0248] 第二生成单元,用于对第一生成单元生成的第二最终挑战数据进行哈希运算生成哈希运算结果;
[0249] 第一判断单元,用于判断第二生成单元生成的哈希运算结果与第四解析模块506解析认证响应得到的最终挑战哈希值是否相同,是则对最终挑战哈希值验证成功,否则对最终挑战哈希值验证失败。
[0250] 可选地,客户端30还包括第二判断模块和第一报错模块;
[0251] 第二判断模块,用于根据第二解析模块303解析认证请求得到的应用标识判断当前的用户代理标识是否合法;
[0252] 更可选地,第二判断模块包括第三生成单元和第二判断单元;依赖方40还包括第二获取模块;
[0253] 第三生成单元,用于根据第二解析模块303解析认证请求得到的应用标识生成获取用户代理标识列表请求;
[0254] 第一发送模块301,还用于向依赖方40发送第三生成单元生成的获取用户代理标识列表请求;
[0255] 第二接收模块402,还用于接收第一发送模块301发送的获取用户代理标识列表请求;
[0256] 第二获取模块,用于当第二接收模块402接收获取用户代理标识列表请求后,获取用户代理标识列表;
[0257] 第二发送模块401,还用于向客户端30发送第二获取模块获取的用户代理标识列表;
[0258] 第一接收模块302,还用于接收第二发送模块401发送的用户代理标识列表;
[0259] 第二判断单元,用于判断第一接收模块302接收的用户代理标识列表中是否存在当前的用户代理标识,是则合法,否则不合法;
[0260] 第三生成模块304,具体用于当第二判断单元判断第一接收模块302接收的用户代理标识列表中存在当前的用户代理标识时,根据第二解析模块303解析认证请求得到的应用标识和挑战值生成第一最终挑战数据;
[0261] 第一报错模块,具体用于当第二判断单元判断第一接收模块302接收的用户代理标识列表中不存在当前的用户代理标识时,报错。
[0262] 第三生成模块304,具体用于当第二判断模块根据第二解析模块303解析认证请求得到的应用标识判断当前的用户代理标识合法时,根据第二解析模块303解析认证请求得到的应用标识和挑战值生成第一最终挑战数据;
[0263] 第一报错模块,用于当第二判断模块根据第二解析模块303解析认证请求得到的应用标识判断当前的用户代理标识不合法时,报错。
[0264] 可选地,认证器60还包括第一更新模块;第一获取模块608包括检索单元和获取单元;
[0265] 第一更新模块,用于根据第三解析模块603解析验证身份信息指令得到的应用标识更新第六生成模块604生成的访问令牌数据;
[0266] 第二预置模块609,还用于预置原始签名密钥数据;
[0267] 检索单元,用于根据第三解析模块603解析验证身份信息指令得到的根据签名密钥标识列表和应用标识、第一更新模块更新的访问令牌数据从第二预置模块609预置的原始签名密钥数据中检索目标原始签名密钥数据;
[0268] 更可选地,检索单元包括检索子单元、解密子单元、筛选子单元、判断子单元和标记子单元;
[0269] 第二预置模块609,还用于预置包装密钥;
[0270] 检索子单元,用于根据第三解析模块603解析验证身份信息指令得到的签名密钥标识列表和应用标识检索原始签名密钥加密数据;
[0271] 解密子单元,用于根据第二预置模块609预置的包装密钥对检索子单元检索得到的原始签名密钥加密数据进行解密得到原始签名密钥数据列表;
[0272] 筛选子单元,用于根据第一更新模块更新的访问令牌数据对解密子单元解密得到的原始签名密钥数据列表进行筛选;
[0273] 判断子单元,用于判断筛选子单元筛选后的原始签名密钥数据列表中剩余的原始签名密钥数据的个数;
[0274] 标记子单元,用于当判断子单元判断筛选子单元筛选后的原始签名密钥数据列表中剩余的原始签名密钥数据的个数为1个时,记剩余的原始签名密钥数据为目标原始签名密钥数据。
[0275] 获取单元,用于根据检索单元检索的目标原始签名密钥数据获取与目标原始签名数据对应的签名私钥和签名密钥标识。
[0276] 可选地,认证器60还包括第二更新模块;服务器50还包括第五验证模块和第三更新模块;
[0277] 第二预置模块609,还用于预置第一计数值;
[0278] 第二更新模块,用于更新第二预置模块609预置的第一计数值;
[0279] 第十生成模块612,具体用于根据第二预置模块609预置的认证器标识、第七生成模块605生成的最终挑战哈希值、第一获取模块608获取的签名密钥标识、第九生成模块611生成的签名值和第二更新模块更新的第一计数值生成认证响应;
[0280] 第四解析模块506,还用于解析第三接收模块502接收的认证响应得到第一计数值;
[0281] 第五验证模块,用于在第一判断模块510判断第二验证模块507、第三验证模块508和第四验证模块509全部验证成功之前,对第四解析模块506解析认证响应得到的第一计数值进行验证;
[0282] 第一判断模块510,还用于判断第五验证模块是否验证成功;
[0283] 第三更新模块,用于当第一判断模块510判断第五验证模块验证成功时,用第四解析模块506解析认证响应得到的第一计数值更新预置的第二计数值。
[0284] 更可选地,服务器50还包括第三预置模块;
[0285] 第三预置模块,用于预置第二计数值;
[0286] 第五验证模块,具体用于判断第四解析模块506解析认证响应得到的第一计数值是否大于第三预置模块预置的第二计数值,是则验证成功,否则验证失败。
[0287] 可选地,服务器50还包括第六验证模块;
[0288] 第十生成模块612,具体用于根据第二预置模块609预置的认证器标识、第三生成模块304生成的第一最终挑战数据、第七生成模块605生成的最终挑战哈希值、第一获取模块608获取的签名密钥标识和第九生成模块611生成的签名值生成认证响应;
[0289] 第四解析模块506,具体用于解析第三接收模块502接收的认证响应得到第一最终挑战数据、认证器标识、最终挑战哈希值、签名密钥标识和签名值;
[0290] 第六验证模块,用于对第四解析模块506解析认证响应得到的第一最终挑战数据进行验证;
[0291] 第一判断模块510,还用于判断第六验证模块是否验证成功。
[0292] 可选地,服务器50还包括第六验证模块;客户端30还包括第四更新模块;
[0293] 第四更新模块,用于将第三生成模块304生成的第一最终挑战数据附加到第一接收模块302接收的认证响应中更新认证响应;
[0294] 第一发送模块301,还用于向依赖方40发送第四更新模块更新的认证响应;
[0295] 第四解析模块506,具体用于解析第三接收模块502接收的认证响应得到第一最终挑战数据、认证器标识、最终挑战哈希值、签名密钥标识和签名值;
[0296] 第六验证模块,用于对第四解析模块506解析认证响应得到的第一最终挑战数据进行验证;
[0297] 第一判断模块510,还用于判断第六验证模块是否验证成功。
[0298] 更可选地,第六验证模块,具体用于判断第四解析模块506解析认证响应得到的第一最终挑战数据中的应用标识是否与第一解析模块503解析触发认证请求得到的应用标识相同;判断第四解析模块506解析认证响应得到的第一最终挑战数据中的挑战值是否与第一生成模块504生成的挑战值相同,当判断第四解析模块506解析认证响应得到的第一最终挑战数据中的应用标识与第一解析模块503解析触发认证请求得到的应用标识相同且第四解析模块506解析认证响应得到的第一最终挑战数据中的挑战值与第一生成模块504生成的挑战值相同时,验证成功,否则验证失败。
[0299] 此外,当用户身份认证信息为用户的生物识别信息时,用户通过向认证器提供生物识别信息或PIN码的形式来完成身份认证,免去用户记忆密码或口令的烦恼,消除或减弱用户对密码或口令的依赖,提高了用户体验。
[0300] 另外,本实施例中,客户端和依赖方之间采用安全信道进行数据传输,通过安全信道进行传输的数据是经过加密的数据,即使数据被截获,被截获的是也加密后的数据,加密前的数据并不会泄露,保证了传输的数据的安全性;本实施例中,客户端根据应用标识对当前的用户代理标识的合法性进行判断,保证了用户代理的合法性,使得注册和认证过程更安全;
[0301] 以上,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。