一种离线身份认证方法、认证系统及认证设备与流程

文档序号:16147098发布日期:2018-12-05 16:39阅读:323来源:国知局

本发明涉及信息安全领域,特别涉及一种离线身份认证方法、认证系统及认证设备。

背景技术

身份认证也称为"身份验证"或"身份鉴别",是指在计算机及计算机网络系统中确认操作者身份的过程,从而确定该用户是否具有对某种资源的访问和使用权限,进而使计算机和网络系统的访问策略能够可靠、有效地执行,防止攻击者假冒合法用户获得资源的访问权限,保证系统和数据的安全,以及授权访问者的合法利益。

现有技术中,身份认证都需要后台服务器参与,因此,离线状态下的身份认证是个难题。



技术实现要素:

本发明提供了一种离线身份认证方法、认证系统及认证设备,解决了上述技术问题。

本发明的提供了一种离线身份认证方法,适用于包括认证设备和客户端的系统,所述客户端中保存有相互对应的第一离线数据和第一离线验证数据,所述方法包括:

步骤s1:所述客户端获取第三方标识和所述第一离线数据;

步骤s2:所述客户端根据所述第一离线数据更新离线认证标识,组织包括所述第三方标识和所述离线认证标识的认证指令;向认证设备发送所述认证指令;

步骤s3:所述认证设备从所述认证指令中获取第三方标识,从所述认证指令中获取离线认证标识,根据所述离线认证标识获取第二离线数据;

步骤s4:所述认证设备使用与所述第三方标识对应的认证密钥对所述第二离线数据进行运算得到第二离线验证数据;

步骤s5:所述认证设备根据所述第二离线验证数据更新所述离线认证标识,组织包括第三方标识和离线认证标识的认证响应数据,将所述认证响应数据返回给客户端;

步骤s6:所述客户端从认证响应数据中获取离线认证标识,根据所述离线认证标识获取来自所述认证设备的第二离线验证数据,判断所述第二离线验证数据和与所述第一离线数据对应的第一离线验证数据是否匹配,如果是,则判断出离线身份认证成功;否则,判断出离线身份认证失败。

本发明还提供了一种离线身份认证方法,包括:

步骤w1:认证设备等待接收来自客户端的指令,当接收到来自客户端的认证指令时,执行步骤w2;

步骤w2:所述认证设备从所述认证指令中获取第三方标识和离线认证标识;根据所述离线认证标识获取第二离线数据;

步骤w3:所述认证设备使用与所述第三方标识对应的认证密钥对所述第二离线数据进行运算得到第二离线验证数据;

步骤w4:所述认证设备根据所述第二离线验证数据更新所述离线认证标识,组织包括第三方标识和离线认证标识的认证响应数据,将所述认证响应数据返回给客户端。

本发明又提供了一种离线身份认证系统,包括认证设备和客户端;所述客户端包括:第一保存模块、第一获取模块、第一更新模块、第一组织模块、第一发送模块、第一接收模块、第二获取模块、第三获取模块和第一判断模块;

所述第一保存模块,用于保存相互对应的第一离线数据和第一离线验证数据;

所述第一获取模块,用于获取第三方标识和第一离线数据;

所述第一更新模块,用于根据所述第一获取模块获取到的第一离线数据更新离线认证标识;

所述第一组织模块,用于组织包括根据所述第一获取模块获取到的第三方标识和根据所述第一更新模块更新的离线认证标识的认证指令;

所述第一发送模块,用于向所述认证设备发送所述第一组织模块组织的认证指令;

所述第一接收模块,用于接收来自所述认证设备的认证响应数据;

所述第二获取模块,用于从所述第一接收模块接收到的所述认证响应数据中获取离线认证标识;

所述第三获取模块,用于根据所述第二获取模块获取到的所述离线认证标识获取来自所述认证设备的第二离线验证数据;

所述第一判断模块,用于判断所述第三获取模块获取到的所述第二离线验证数据和所述第一保存模块保存的与所述第一离线数据对应的第一离线验证数据是否匹配,如果是,则判断出离线身份认证成功;否则,判断出离线身份认证失败;

所述认证设备包括:第二接收模块、第四获取模块、第五获取模块、第六获取模块、第一运算模块、第二更新模块、第二组织模块和第二发送模块;

所述第二接收模块,用于接收来自所述客户端的认证指令;

所述第四获取模块,用于从所述第二接收模块接收到的认证指令中获取第三方标识;

所述第五获取模块,用于从所述第二接收模块接收到的认证指令中获取离线认证标识;

所述第六获取模块,用于根据所述第五获取模块获取到的离线认证标识获取第二离线数据;

所述第一运算模块,用于使用与所述第四获取模块获取到的第三方标识对应的认证密钥对所述第六获取模块获取到的所述第二离线数据进行运算得到第二离线验证数据;

所述第二更新模块,用于根据所述第一运算模块得到的所述第二离线验证数据更新所述第五获取模块获取到的离线认证标识;

所述第二组织模块,用于组织包括所述第四获取模块获取到的第三方标识和所述第二更新模块更新后的离线认证标识的认证响应数据;

所述第二发送模块,用于将所述第二组织模块组织的认证响应数据发送给所述客户端。

本发明再提供了一种认证设备,包括:第二接收模块、第四获取模块、第五获取模块、第六获取模块、第一运算模块、第二更新模块、第二组织模块和第二发送模块;

所述第二接收模块,用于接收来自所述客户端的认证指令;

所述第四获取模块,用于从所述第二接收模块接收到的认证指令中获取第三方标识;

所述第五获取模块,用于从所述第二接收模块接收到的认证指令中获取离线认证标识;

所述第六获取模块,用于根据所述第五获取模块获取到的离线认证标识获取第二离线数据;

所述第一运算模块,用于使用与所述第四获取模块获取到的第三方标识对应的认证密钥对所述第六获取模块获取到的所述第二离线数据进行运算得到第二离线验证数据;

所述第二更新模块,用于根据所述第一运算模块得到的所述第二离线验证数据更新所述第五获取模块获取到的离线认证标识;

所述第二组织模块,用于组织包括所述第四获取模块获取到的第三方标识和所述第二更新模块更新后的离线认证标识的认证响应数据;

所述第二发送模块,用于将所述第二组织模块组织的认证响应数据发送给所述客户端。

本发明的有益效果:

本发明提供了一种离线身份认证方法、认证系统及认证设备,认证设备在无需和客户端共享认证密钥的基础上,安全可靠地实现了离线状态下的身份认证问题。

附图说明

图1为本发明实施例1提供的一种离线身份认证方法的流程图;

图2-1和图2-2为本发明实施例2提供的一种离线身份认证方法中的注册流程的流程图;

图3-1,图3-2和图3-3为本发明实施例2提供的一种离线身份认证方法中的认证流程的流程图;

图4为本发明实施例3提供的一种离线身份认证方法的流程图;

图5为本发明实施例4提供的一种离线身份认证系统的结构方框图;

图6为本发明实施例5提供的一种离线身份认证设备的结构方框图。

具体实施方法

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

本实施例提供了一种离线身份认证方法,适用于包括认证设备和客户端的系统,其特征在于,客户端中保存有相互对应的第一离线数据和第一离线验证数据,该离线身份认证方法包括:

步骤101:客户端获取第三方标识和已保存的第一离线数据;

本实施例中,第三方标识具体为rpid(relyingpartyidentifier,依赖方标识),例如可以为用户注册的网站标识,例如第三方标识为example.com。

本实施例中,客户端可以但不限于安装在上位机上。

步骤102:客户端根据第一离线数据更新离线认证标识,组织包括第三方标识和离线认证标识的认证指令;向认证设备发送认证指令;

步骤103:认证设备从认证指令中获取第三方标识,从认证指令中获取离线认证标识,根据离线认证标识获取第二离线数据;

步骤104:认证设备使用与第三方标识对应的认证密钥对第二离线数据进行运算得到第二离线验证数据;

步骤105:认证设备根据第二离线验证数据更新离线认证标识,组织包括第三方标识和离线认证标识的认证响应数据,将认证响应数据返回给客户端;

步骤106:客户端从认证响应数据中获取离线认证标识,根据离线认证标识获取来自认证设备的第二离线验证数据,判断第二离线验证数据和与第一离线数据对应的第一离线验证数据是否匹配,如果是,则判断出离线身份认证成功;否则,判断出离线身份认证失败。

本实施例中提供的一种离线身份认证方法,认证设备在无需和客户端共享认证密钥的基础上,安全可靠地实现了离线状态下的身份认证问题。

实施例2

本实施例提供了一种离线身份认证方法,适用于包括客户端、认证设备和服务器的系统,所述方法中的注册流程如图2-1和图2-2所示,包括:

步骤201:客户端向认证设备发送获取设备信息命令;

步骤202:认证设备生成包括离线认证标识的第一响应数据;

步骤203:认证设备将包括离线认证标识的第一响应数据返回给客户端;

步骤204:客户端生成包括第三方标识和注册用户信息的注册请求,向服务器发送注册请求;

具体地,客户端获取第三方标识和注册用户信息,生成包括第三方标识和注册用户信息的注册请求,向服务器发送注册请求。

本实施例中,第三方标识具体为rpid(relyingpartyidentifier,依赖方标识),例如可以为用户注册的网站标识,例如第三方标识为example.com。

步骤205:服务器从注册请求中获取第三方标识和注册用户信息,生成第一客户端数据,将第一客户端数据和第三方标识建立对应关系,向客户端返回第一客户端数据;

步骤206:客户端根据第一预设值更新离线认证标识,组织包括第一客户端数据、第三方标识、注册用户信息和离线认证标识的注册指令;

具体地,客户端将将离线认证标识值设置为第一预设值,组织包括第一客户端数据的第一参数,组织包括第三方标识的第二参数,组织包括注册用户信息的第三参数,组织包括离线认证标识的第六参数,组织包括第一参数、第二参数、第三参数和第六参数的注册指令。

本实施例中,注册用户信息为注册用户的账户信息,例如:注册用户信息可以包括用户名、用户密码等信息。

步骤207:客户端向认证设备发送注册指令;

步骤208:认证设备获取注册指令中的第六参数,判断第六参数中是否包括离线认证标识且离线认证标识值是否为第一预设值,如果是,则执行步骤209;否则,向客户端报错;

步骤209:认证设备从注册指令中获取第一客户端数据、注册用户信息和第三方标识,生成注册用户密钥对,将注册用户信息、注册用户密钥对和第三方标识建立对应关系并保存;

步骤210:认证设备根据注册用户密钥对和自身的凭证因子生成认证密钥,将认证密钥和第三方标识对建立对应关系,并保存认证密钥;

本步骤可以具体为:认证设备将注册用户密钥对中的注册用户私钥和凭证因子进行异或运算生成认证密钥,将第三方标识和认证密钥建立对应关系并保存认证密钥。

例如:认证设备将注册密钥对中的注册用户私钥“5b6f5c2b6bb559c26d22342a9094f46861b6547908204fe8e9afd8ce592eac3f”和凭证因子“6ba4c810a99ad46c9371c65f98c797ff73b78f0998f4a266b9a68170489cdbd3”进行异或运算生成认证密钥30cb943bc22f8daefe53f275085363971201db7090d4ed8e500959be11b277ec,将第三方标识和认证密钥建立对应关系并保存认证密钥。

本步骤还可以具体为:认证设备使用凭证因子对注册密钥对中的注册用户公钥通过第一预设算法进行运算得到认证密钥,将第三方标识和认证密钥建立对应关系并保存认证密钥。

例如:认证设备使用凭证因子“6ba4c810a99ad46c9371c65f98c797ff73b78f0998f4a266b9a68170489cdbd3”对注册密钥对中的注册用户公钥“0e96247f9403f5f12464fc199f02003f4d5799156f2307a3d6cca404c13eb1730ef901b89ca5a37c9449ff53410a23877d3d2f35892d2a213fcf13aca2d6f790”通过第一预设算法sha256-hmac进行运算得到认证密钥“30cb943bc22f8daefe53f275085363971201db7090d4ed8e500959be11b277ec”,将第三方标识和认证密钥建立对应关系并保存认证密钥。

本步骤可以替换为:认证设备对注册密钥对中的注册私钥进行哈希运算得到认证密钥,并保存认证密钥。

例如:认证设备对注册密钥对中的注册用户私钥”5b6f5c2b6bb559c26d22342a9094f46861b6547908204fe8e9afd8ce592eac3f”进行sha256哈希运算得到认证密钥“30cb943bc22f8daefe53f275085363971201db7090d4ed8e500959be11b277ec”,将第三方标识和认证密钥建立对应关系并保存认证密钥。

需说明的是,本实施例中,还包括:当认证设备上电后,认证设备判断是否为首次上电,如果是,则生成凭证因子并等待接收指令;否则等待接收指令。

步骤211:认证设备生成包括第三方标识、注册用户公钥、预设的硬件公钥、和离线认证标识的注册数据,使用预设的硬件私钥对包括注册数据和第一客户端数据的第一待签名数据进行签名得到第一签名数据;组织包括注册数据和第一签名数据的注册响应数据;

步骤212:认证设备向客户端发送包括注册数据和第一签名数据的注册响应数据;

步骤213:客户端向服务器发送注册响应数据;

步骤214:服务器从注册响应数据中获取注册数据和第一签名数据,从注册数据中获取硬件公钥、注册用户公钥和第三方标识,根据硬件公钥、注册数据和第一客户端数据对第一签名数据验签,如果验证成功,则将注册用户信息、注册用户公钥和第三方标识建立对应关系并保存,向客户端返回注册成功信息;否则,向所述客户端返回注册失败信息。

本实施例中提供的离线身份认证方法的认证流程,如图3-1、图3-2和图3-3所示,包括:

步骤301:客户端向认证设备发送获取设备信息命令;

步骤302:认证设备生成包括离线认证标识的第一响应数据;将包括离线认证标识的第一响应数据返回给客户端;

步骤303:客户端判断自身当前是否为离线状态,如果是,则执行步骤320;否则,执行步骤304;

具体地,客户端判断自身当前是否与服务器已连接,如果自身与服务器未连接,则判断自身当前为离线状态,则执行步骤320;如果自身与服务器已连接,则判断自身当前为在线状态,执行步骤304。

步骤304:客户端获取第三方标识,生成包括第三方标识的认证请求,向服务器发送认证请求;

步骤305:服务器生成第二客户端数据,将第三方标识与第二客户端数据对应保存,向客户端返回第二客户端数据;

步骤306:客户端更新第一离线数据;

具体地,客户端获取最新保存的第一离线数据或者生成第一离线数据。

步骤307:客户端根据第一离线数据更新离线认证标识,组织包括第三方标识和离线认证标识的认证指令;向认证设备发送认证指令;

具体地,客户端根据第一离线数据更新离线认证标识的离线认证标识值,组织包括第三方标识的第一参数,组织包括第二客户端数据的第二参数,组织包括离线认证标识的第四参数,组织包括第一参数、第二参数和第三参数的认证指令;向认证设备发送认证指令;

步骤308:认证设备判断认证指令中是否包括离线认证标识,如果是,则执行步骤309;否则,向客户端报错;

步骤309:认证设备获取离线认证标识值的类型,判断离线认证标识值的类型是否为map(majortype,主要类型)类型,如果是,则执行步骤310;否则,向客户端报错;

步骤310:认证设备获取离线认证标识值,从离线认证标识值中获取第一密文和第一密文验证数据;

步骤311:认证设备使用自身的会话密钥对第一密文通过第二预设算法进行运算生成第一验证数据;判断第一验证数据和第一密文验证数据是否匹配,如果是,则执行步骤312;否则,向客户端报错;

步骤312:认证设备使用第三预设算法和会话密钥对第一密文进行解密得到第二离线数据;

步骤313:认证设备根据认证指令中的第三方标识获取与第三方标识对应的认证密钥;根据第四预设算法使用认证密钥对第二离线数据进行运算得到第二离线验证数据;

步骤314:认证设备使用会话密钥对第二离线验证数据通过第三预设算法进行加密得到离线验证数据密文;

步骤315:认证设备根据离线验证数据密文更新离线认证标识,组织包括离线认证标识和第三方标识的认证数据,根据认证数据和第二客户端数据得到第二待签名数据,使用与第三方标识对应的注册用户私钥对第二待签名数据进行签名,得到第二签名数据,将包括第二签名数据和认证数据的认证响应数据返回给客户端;

步骤316:客户端判断自身当前是否是离线状态,若是,则执行步骤321;若否,则执行步骤317;

步骤317:客户端将认证响应数据发送给服务器;

步骤318:服务器从认证响应数据中获取认证数据和第二签名数据,从认证数据中获取第三方标识,根据第三方标识获取第二客户端数据和与第三方标识对应的注册用户公钥,根据认证数据、第二客户端数据和与第三方标识对应的注册用户公钥对第二签名数据进行验签,如果验签成功,则判定与注册用户公钥对应的注册用户信息的在线身份认证成功,向客户端返回在线身份认证成功信息;客户端执行步骤319;否则,向客户端返回认证失败信息;

步骤319:客户端从认证响应数据中获取离线认证标识,根据离线认证标识获取离线验证数据密文,使用第三预设算法和自身的会话密钥解密第二离线验证数据密文得到第二离线验证数据;使用第二离线验证数据更新第一离线验证数据,客户端将第一离线数据、在线认证成功的注册用户信息和更新后的第一离线验证数据建立对应关系并保存。

当执行完步骤319的操作后,在线身份认证完成。

步骤320:客户端判断是否已将第一离线数据、注册用户信息和第一离线验证数据建立对应关系并保存,如果是,则获取已保存的第一离线数据,获取第三方标识,返回步骤307;否则,报错。

步骤320中:客户端将获取已保存的第一离线数据可以具体为:获取最新保存的第一离线数据;

还可以具体为:将最新保存的第一离线数据作为第一离线新数据,将上一次保存的第一离线数据作为第一离线旧数据,获取包括第一离线新数据和第一离线旧数据的第一离线数据。

步骤321:客户端获取认证响应数据中的离线验证数据密文,使用第三预设算法和自身的会话密钥解密认证响应中的离线验证数据密文得到来自认证设备的第二离线验证数据;

步骤322:客户端判断获取到的来自认证设备的第二离线验证数据与第一离线数据对应的第一离线验证数据是否匹配,如果是,则判断出与第一离线验证数据对应的注册用户信息的离线身份认证成功;否则,判断出离线身份认证失败。

本实施例中,步骤311之前还包括:

步骤m1:客户端向认证设备发送包括自身的第二公钥的会话密钥指令;

步骤m2:认证设备从会话密钥指令中获取客户端的第二公钥;根据上位机的第二公钥和自身的第一私钥使用ecdh(ellipticcurvecryptosystemsdiffie-hellman,椭圆曲线密码体制密钥交换算法)得到会话密钥,保存会话密钥,向客户端返回包括自身的第一公钥的协商响应信息;

本实施例中,当认证设备上电后,认证设备生成包括第一公钥和第一私钥的第一密钥对。

步骤m3:客户端根据协商响应信息中的第一公钥和自身的第二私钥使用ecdh(ellipticcurvecryptosystemsdiffie-hellman,椭圆曲线密码体制密钥交换算法)得到会话密钥,保存会话密钥。

本实施例中,认证设备在执行步骤209之后,还可以直接执行步骤211;相应地,步骤313之前还包括:认证设备根据认证指令中的第三方标识获取与第三方标识对应的注册用户密钥对;根据注册用户密钥对和自身的凭证因子生成认证密钥。

本实施例中,认证设备从注册指令中获取注册用户信息之后,还包括:认证设备将与注册用户信息对应的第一标志置位;相应地,当认证设备接收到认证指令之后,还包括:

认证设备获取与认证指令中的第三方标识对应的注册用户信息,判断与注册用户信息对应的第一标志是否置位,如果是,则执行步骤308;否则,报错。

实施例3

本实施例提供了一种离线身份认证方法,具体方法如图4所示。

步骤401:认证设备上电,生成第一密钥对并保存;判断是否为首次上电,如果是,则执行步骤402;否则执行步骤403;

其中生成第一密钥对具体为生成包括第一公钥和第一私钥的第一密钥对。

例如:生成包括第一公钥:26cd8987dd462a20da6cb46e04ee9408f377f49c1ed834bb2f1715aed28bdfa6cfbfffa30d38422912d3964a55467c9c4e37bdf5cae12935c4e445c7eb1861fc和第一私钥:1475262dec5152b77a27cd00dd8fb9651493a12f6d2353c9dc6556324ac803b1的第一密钥对。

步骤402:认证设备生成凭证因子;执行步骤403;

具体地,认证设备生成第一随机数,将其作为凭证因子并保存;例如:认证设备生成32字节的第一随机数“6ba4c810a99ad46c9371c65f98c797ff73b78f0998f4a266b9a68170489cdbd3”,将其作为凭证因子并保存。

步骤403:认证设备等待接收来自客户端的指令,当接收到来自客户端的指令时,判断指令的类型,若指令为获取设备信息指令时,执行步骤404;若指令为注册指令时,执行步骤405;若指令为会话密钥指令时,执行步骤409;若指令为认证指令时,执行步骤410;

具体地,认证设备等待接收来自客户端的指令,当接收到来自客户端的指令时,解析指令,从指令中获取指令类型标识和指令数据内容,根据指令类型标识判断指令的类型,若指令类型标识为第一预设标识,则判断指令为获取设备信息指令,则执行步骤404;若指令类型标识为第二预设标识,则判断指令为注册指令,执行步骤405;若指令类型标识为第三预设标识,则判断指令为会话密钥指令,执行步骤409;若指令类型标识为第四预设标识,则判断指令为认证指令,执行步骤410。

本实施例中,第一预设标识为04;第二预设标识为01;第三预设标识为06;第四预设标识为02。

例如:认证设备等待接收来自客户端的指令,当接收到来自客户端的指令02a301664368656e5169025820687134968222ec17202e42505f8ed2b16ae22f16bb05b88c25db9e602645f14104a16b686d61632d736563726574a2025840613c4dc722e33b43ec536434d6194bf82f93eece3f1b43737358f5f5d32323b2e360d63801369d6b9b97c5266f4b452c20c59800e7dddd8080e650eca32a01d00350fda3fd91e8f709bfe4be07e4f4f7cb6e时,解析指令,从指令中获取指令类型标识为第四预设标识02,则判断指令为认证指令,执行步骤410。

本实施例中,从指令中获取指令类型标识和指令数据内容,具体为:将指令中的第一个字节作为指令类型标识,将第一个字节之后的数据作为指令数据内容。

步骤404:认证设备将包括离线认证标识的第一响应数据返回给客户端;返回步骤403;

具体地,认证设备组织包括离线认证标识的第一响应数据,将包括离线认证标识的第一响应数据返回给客户端;返回步骤403;

更加具体地,认证设备将离线认证标识值设置为空,根据设置后的离线认证标识组织第一响应数据的第二参数,组织包括第二参数的第一响应数据,将第一响应数据返回给客户端;返回步骤403。

例如:认证设备将用于标识离线认证标识的离线认证标识字段686d61632d736563726574之后的值设置为空,根据设置后的离线认证标识组织第一响应数据的第二参数02816b686d61632d736563726574,组织包括第二参数02816b686d61632d736563726574的第一响应数据00a60181684649444f5f325f3002816b686d61632d73656372657403504238324544373343384642344535413204a462726bf5627570f5627576f564706c6174f405190600068101,将第一响应数据返回给客户端;返回步骤403。

本实施例中,当认证设备向客户端返回的第一响应数据中包括离线认证标识时,认证设备向客户端报告认证设备可以用于离线身份认证。

本实施例中,第二参数02816b686d61632d736563726574中的第一个数据02为第二参数的关键词,第二个数据81为第二参数数据头(其中81的高三位4用于表示第二参数的参数类型为数组类型,81的第五位1用于表示第二参数的成员个数为1个)、第三个数据6b为第一成员数据头(其中6b的高三位011用于表示离线认证标识字段的数据类型为文本类型,6b的低五位01011用于表示离线认证标识字段686d61632d736563726574的数据长度为11个字节)。

步骤405:认证设备获取注册指令中的第六参数,判断第六参数中是否包括离线认证标识且离线认证标识值是否为第一预设值,如果是,则执行步骤406;否则,向客户端报错,返回步骤403;

具体地,认证设备获取注册指令中的第六参数的关键词06,获取关键词06之后的第一个字节,将其高三位作为第六参数的类型标识,根据第六参数的类型标识判断第六参数的类型是否为map,如果否,则向客户端报错,返回步骤403;如果是,则将其低五位作为第六参数中的成员个数,并将关键词06之后的第二个字节的高三位作为第六参数中的第一成员的类型标识,根据关键词06之后的第二个字节的低五位获取第六参数中的第一成员的数据长度,根据第六参数中的第一成员的数据长度在关键词06之后的第二个字节之后的数据中获取第六参数中的第一成员,判断获取到的数据是否与离线认证标识匹配,如果否,则向客户端报错,返回步骤403;如果是,则判断出第六参数中包括离线认证标识;并继续获取第六参数中的第一成员数据之后的一个字节的数据,并将其作为离线认证标识值,判断离线认证标识值是否为第一预设值,如果是,则执行步骤406;否则,向客户端报错,返回步骤403。

例如:认证设备从注册指令01a5015820687134968222ec17202e42505f8ed2b16ae22f16bb05b88c25db9e602645f14102a2626964664368656e5169646e616d65664368656e516903a3626964582001b65ebf914724c5fc50be4e9ff2e61787fe97f8f0b1544344316ecd24925f01646e616d65716368656e7169406674736166652e636f6d6b646973706c61794e616d65666368656e71690483a263616c672664747970656a7075626c69632d6b6579a263616c6739010064747970656a7075626c69632d6b6579a263616c67382464747970656a7075626c69632d6b657906a16b686d61632d736563726574f5中获取第六参数的关键词06,之后获取关键词06之后的第一个字节a1,将其高三位5作为第六参数的类型标识,根据第六参数的类型标识判断第六参数的类型为map类型,则将其低五位1作为第六参数中的成员个数,并将关键词06之后的第二个字节6b的高三位作为第六参数中的第一成员的类型标识,根据关键词06之后的第二个字节6b的低五位获取第六参数中的第一成员的数据长度为11个字节,根据第六参数中的第一成员的数据长度在关键词06之后的第二个字节6b之后的数据中获取11个字节长度的数据686d61632d736563726574,并将其作为第六参数中的第一成员数据,判断获取到的第一成员数据686d61632d736563726574与离线认证标识字段686d61632d736563726574匹配,则判断出第六参数中包括离线认证标识,并继续获取第六参数中的第一成员数据之后的一个字节的数据f5,并将其作为离线认证标识值,即判断出离线认证标识值为第一预设值f5,执行步骤406。

本实施例中当离线认证标识值为第一预设值f5时,用于表示离线认证标识值为true。

步骤406:认证设备从注册指令中获取注册用户信息和第三方标识,生成注册用户密钥对,将注册用户信息与注册用户密钥、第三方标识对建立对应关系并保存;

其中,生成用户密钥对,具体为:认证设备生成包括注册用户公钥和注册用户私钥的注册用户密钥对。

例如:认证设备生成包括注册用户公钥0e96247f9403f5f12464fc199f02003f4d5799156f2307a3d6cca404c13eb1730ef901b89ca5a37c9449ff53410a23877d3d2f35892d2a213fcf13aca2d6f790和注册用户私钥5b6f5c2b6bb559c26d22342a9094f46861b6547908204fe8e9afd8ce592eac3f的注册用户密钥对。

从注册指令中获取第三方标识和注册用户信息,具体为:认证设备从注册指令中的指令数据内容获取关键词为02的第二参数,从第二参数中获取第三方标识;认证设备从注册指令中的指令数据内容获取关键词为03的第三参数,从第三参数中获取注册用户信息。优选的,注册用户信息可以为注册用户名;

例如,认证设备从注册指令中的指令数据内容获取关键词为02的第二参数02a2626964664368656e5169646e616d65664368656e5169,获取关键词02之后的第一个字节a2,将其高三位作为第二参数的类型标识,将其低五位作为第二参数中的成员个数(2个),并将关键词02之后的第二个字节62的高三位作为第二参数中的第一成员的类型标识,根据关键词02之后的第二个字节的低五位获取第二参数中的第一成员的数据长度(2个字节),根据第二参数中的第一成员的数据长度在关键词02之后的第二个字节62之后的数据中获取数据长度为2个字节的数据6964,之后继续获取6964之后的数据664368656e5169646e616d65664368656e5169中第一个字节66,将其高三位作为第二参数中的第一成员值的类型标识,将其低五位作为第二参数中的第一成员值的数据长度(6个字节),根据第二参数中的第一成员值的数据长度获取数据长度为6个字节的数据4368656e5169,并请将作为第三方标识。

例如:认证设备从注册指令中的指令数据内容获取关键词为03的第三参数03a3626964582001b65ebf914724c5fc50be4e9ff2e61787fe97f8f0b1544344316ecd24925f01646e616d65716368656e7169406674736166652e636f6d6b646973706c61794e616d65666368656e7169中获取注册用户信息中的注册用户名6368656e7169406674736166652e636f6d。

步骤407:认证设备根据注册用户密钥对和凭证因子生成认证密钥;将第三方标识和认证密钥建立对应关系并保存认证密钥;

本步骤可以具体为:认证设备将注册用户密钥对中的注册用户私钥和凭证因子进行异或运算生成认证密钥,将第三方标识和认证密钥建立对应关系并保存认证密钥。

例如:认证设备将注册密钥对中的注册用户私钥“5b6f5c2b6bb559c26d22342a9094f46861b6547908204fe8e9afd8ce592eac3f”和凭证因子“6ba4c810a99ad46c9371c65f98c797ff73b78f0998f4a266b9a68170489cdbd3”进行异或运算生成认证密钥30cb943bc22f8daefe53f275085363971201db7090d4ed8e500959be11b277ec,将第三方标识和认证密钥建立对应关系并保存认证密钥。

本步骤还可以具体为:认证设备使用凭证因子对注册密钥对中的注册用户公钥通过第一预设算法进行运算得到认证密钥,将第三方标识和认证密钥建立对应关系并保存认证密钥。

例如:认证设备使用凭证因子“6ba4c810a99ad46c9371c65f98c797ff73b78f0998f4a266b9a68170489cdbd3”对注册密钥对中的注册用户公钥“0e96247f9403f5f12464fc199f02003f4d5799156f2307a3d6cca404c13eb1730ef901b89ca5a37c9449ff53410a23877d3d2f35892d2a213fcf13aca2d6f790”通过第一预设算法sha256-hmac进行运算得到认证密钥“30cb943bc22f8daefe53f275085363971201db7090d4ed8e500959be11b277ec”,将第三方标识和认证密钥建立对应关系并保存认证密钥。

本步骤可以替换为:认证设备对注册密钥对中的注册私钥进行哈希运算得到认证密钥,并保存认证密钥。

例如:认证设备对注册密钥对中的注册用户私钥”5b6f5c2b6bb559c26d22342a9094f46861b6547908204fe8e9afd8ce592eac3f”进行sha256哈希运算得到认证密钥“30cb943bc22f8daefe53f275085363971201db7090d4ed8e500959be11b277ec”,将第三方标识和认证密钥建立对应关系并保存认证密钥。

步骤408:认证设备从注册指令中获取第一客户端数据,组织包括第三方标识、注册用户公钥、预设的硬件公钥和离线认证标识的注册数据,使用预设的硬件私钥对包括注册数据和第一客户端数据的第一待签名数据进行签名得到第一签名数据,组织包括注册数据和第一签名数据的注册响应数据,将注册响应数据发送给所述客户端;返回步骤403;

具体地,认证设备从注册指令中的第一参数中获取第一客户端数据,组织包括第三方标识、注册用户公钥、预设的硬件公钥和离线认证标识的注册数据,使用预设的硬件私钥对包括注册数据和第一客户端数据的第一待签名数据进行签名得到第一签名数据,根据注册数据组织注册响应数据中的第二参数,根据第一签名数据组织注册响应数据的第三参数,组织包括第二参数和第三参数的注册响应数据,将注册响应数据返回给客户端;返回步骤403。

其中,组织包括第三方标识、注册用户公钥、预设的硬件公钥和离线认证标识的注册数据,具体为:认证设备组织包括第三方标识、注册用户公钥、预设的硬件公钥的第一注册数据,将离线认证标识字段6d61632d736563726574和离线认证标识值f5依次拼接在第一注册数据之后得到注册数据。

例如:认证设备组织包括第三方标识、注册用户公钥、预设的硬件公钥的第一注册数据2b7d09c4531da43b77c5bedb08ece476455deb6577afcc4ad4345e50e0e3bfcac100000001423832454437334338464234453541320060857f7bca38ba88082c76f36993d70d84b655b0b65825ddcb276765152be6e502d80dcd5c5b616696f170359a936fdfb6214dcae0f980a2895e63f0b7fd936f9c4ed07a8a4c2413c6672bcc17f25f548d59233a1fd62b742c4110e1202c616cd3a50102032620012158206882f67dc392a9fc961d30dc90f9acb439373f59d385765beda21a0657296eea225820b8500c140ec643f6fca384ad575480fbc90f15105d36dc5a8cb12b2cc31934a6a16b68,将离线认证标识字段6d61632d736563726574和离线认证标识值f5依次拼接在第一注册数据之后得到注册数据,2b7d09c4531da43b77c5bedb08ece476455deb6577afcc4ad4345e50e0e3bfcac100000001423832454437334338464234453541320060857f7bca38ba88082c76f36993d70d84b655b0b65825ddcb276765152be6e502d80dcd5c5b616696f170359a936fdfb6214dcae0f980a2895e63f0b7fd936f9c4ed07a8a4c2413c6672bcc17f25f548d59233a1fd62b742c4110e1202c616cd3a50102032620012158206882f67dc392a9fc961d30dc90f9acb439373f59d385765beda21a0657296eea225820b8500c140ec643f6fca384ad575480fbc90f15105d36dc5a8cb12b2cc31934a6a16b686d61632d736563726574f5,

其中,根据注册数据组织注册响应数据中的第二参数具体为:认证设备根据注册数据的数据类型(字节类型)和数据长度(242个字节)得到注册数据的数据头58f2(其中58的高三位010用于表示第一注册有效数据的数据类型为字节类型,58的低五位(11000)用于表示58之后的一个字节f2为第一注册有效数据的数据长度),将注册数据的数据头58f2拼接在注册数据之前得到第二参数,并将第二参数的关键词02设置在第二参数之前,得到关键词为02的第二参数0258f22b7d09c4531da43b77c5bedb08ece476455deb6577afcc4ad4345e50e0e3bfcac100000001423832454437334338464234453541320060857f7bca38ba88082c76f36993d70d84b655b0b65825ddcb276765152be6e502d80dcd5c5b616696f170359a936fdfb6214dcae0f980a2895e63f0b7fd936f9c4ed07a8a4c2413c6672bcc17f25f548d59233a1fd62b742c4110e1202c616cd3a50102032620012158206882f67dc392a9fc961d30dc90f9acb439373f59d385765beda21a0657296eea225820b8500c140ec643f6fca384ad575480fbc90f15105d36dc5a8cb12b2cc31934a6a16b686d61632d736563726574f5。

本实施例中,注册响应数据可以为:00a301667061636b65640258f22b7d09c4531da43b77c5bedb08ece476455deb6577afcc4ad4345e50e0e3bfcac100000001423832454437334338464234453541320060857f7bca38ba88082c76f36993d70d84b655b0b65825ddcb276765152be6e502d80dcd5c5b616696f170359a936fdfb6214dcae0f980a2895e63f0b7fd936f9c4ed07a8a4c2413c6672bcc17f25f548d59233a1fd62b742c4110e1202c616cd3a50102032620012158206882f67dc392a9fc961d30dc90f9acb439373f59d385765beda21a0657296eea225820b8500c140ec643f6fca384ad575480fbc90f15105d36dc5a8cb12b2cc31934a6a16b686d61632d736563726574f503a363616c672663736967584730450220605eb936753fac19709f9695bcf1049c3c058599db1a79bd3d3f4a374ccb3473022100e36123f47e4aa0cc0ba16aa5edefb7663cfe73cfac614d844831f0c7d63b048d63783563825901f3308201ef30820196a003020102020900d79549bd1a67175e300a06082a8648ce3d04030230173115301306035504030c0c4654204649444f20303230303020170d3138303230323030303030305a180f32303333303230313233353935395a3079310b300906035504061302434e31273025060355040a0c1e4665697469616e20546563686e6f6c6f6769657320436f2e2c204c74642e31223020060355040b0c1941757468656e74696361746f72204174746573746174696f6e311d301b06035504030c1446542042696f50617373204649444f32205553423059301306072a8648ce3d020106082a8648ce3d03010703420004f95683f13400635aef09655850b8ac6138439d16b30092f0df95bb2ed35c192a5a3e338c6437e68d460ab4ded9a6a521aa16b50dae114243ac6588c12806f87da3673065301d0603551d0e04160414b645d15d445f385bef8fcf1d5f76db329541d8093013060b2b0601040182e51c0201010404030205203021060b2b0601040182e51c0101040412041042383245443733433846423445354132300c0603551d130101ff04023000300a06082a8648ce3d0403020347003044022009bc5afeb048236481b1798961d1b7a6a54357b3a1502e9fc46485de94d1f4f702204bbc210cf55d748ffccb72533bc20a5ece543927ff9b7a1517e3530b8b78d2365901823082017e30820125a003020102020101300a06082a8648ce3d04030230173115301306035504030c0c4654204649444f20303230303020170d3136303530313030303030305a180f32303530303530313030303030305a30173115301306035504030c0c4654204649444f20303230303059301306072a8648ce3d020106082a8648ce3d03010703420004d066ad1a953b1ced4c954dd7dbed76a70beed2907a89769e7336ff2620be4b199ebe7448a6d5808124cc74153aef342d5104de556178ed478e08310254faa385a360305e301d0603551d0e041604144915642dd5bbc6de333a5e0995fc872336d3bf0b301f0603551d230418301680144915642dd5bbc6de333a5e0995fc872336d3bf0b300c0603551d13040530030101ff300e0603551d0f0101ff040403020106300a06082a8648ce3d04030203470030440220307cfaa021621407e40105a546b1d1f2d2ce51331964ce9497ff34b24d9994a50220076c09ea765133ca17fe7038dd187a489a2f3365f00821ffffe2e2ac101b0743。

步骤409:认证设备从会话密钥指令中获取客户端的第二公钥;根据客户端的第二公钥和自身的第一公钥使用ecdh(ellipticcurvecryptosystemsdiffie-hellman,椭圆曲线密码体制密钥交换算法)得到会话密钥,保存会话密钥,向客户端返回协商响应信息,返回步骤403;

具体地,认证设备从会话密钥指令中的第三参数中获取客户端的第二公钥;根据客户端的第二公钥和自身的第一私钥使用ecdh(ellipticcurvecryptosystemsdiffie-hellman,椭圆曲线密码体制密钥交换算法)得到会话密钥,并保存会话密钥,向客户端返回协商响应信息,返回步骤403;

例如:认证设备从会话密钥指令中;获取关键词为03的第三参数,从第三参数中获取客户端的第二公钥;根据客户端的第二公钥和自身的第一私钥钥使用ecdh(ellipticcurvecryptosystemsdiffie-hellman,椭圆曲线密码体制密钥交换算法)得到会话密钥d7fe60fa62bd176c5986382c0e6a6e47de18f62b0e274ee85f7976578a50f1ba,并保存会话密钥,向客户端返回协商响应信息,返回步骤403;

步骤410:认证设备判断认证指令中是否包括离线认证标识,如果是,则执行步骤411;否则,向客户端报错,返回步骤403;

具体地,认证设备获取认证指令中的第四参数的关键词04,获取关键词04之后的第一个字节,将其高三位作为第四参数的类型标识,根据第四参数的类型标识判断第四参数的类型是否为map类型,如果否,则向客户端报错,返回步骤403;如果是,则将其低五位作为第四参数中的成员个数,并将关键词04之后的第二个字节的高三位作为第四参数中的第一成员的类型标识,根据关键词04之后的第二个字节的低五位获取第四参数中的第一成员的数据长度,根据第四参数中的第一成员的数据长度在关键词04之后的第二个字节之后的数据中获取第四参数中的第一成员,判断获取到的数据是否为离线认证标识,如果否,则向客户端报错,返回步骤403;如果是,则执行步骤411。

例如:认证设备获取认证指令02a301664368656e5169025820687134968222ec17202e42505f8ed2b16ae22f16bb05b88c25db9e602645f14104a16b686d61632d736563726574a2025840613c4dc722e33b43ec536434d6194bf82f93eece3f1b43737358f5f5d32323b2e360d63801369d6b9b97c5266f4b452c20c59800e7dddd8080e650eca32a01d00350fda3fd91e8f709bfe4be07e4f4f7cb6e中的第四参数的关键词04,获取关键词04之后的第一个字节a1,将其高三位1作为第四参数的类型标识,根据第四参数的类型标识判断第四参数的类型是为map类型,则将其低五位1作为第四参数中的成员个数,并将关键词04之后的第二个字节6b的高三位3作为第四参数中的第一成员的类型标识即文本类型,根据关键词04之后的第二个字节的低五位(01011)获取第四参数中的第一成员的数据长度为11个字节,根据第四参数中的第一成员的数据长度在关键词04之后的第二个字节6b之后的数据中获取11个字节的数据6d61632d736563726574,并将其作为第四参数中的第一成员,判断获取到的第一成员数据是为离线认证标识字段,则判断出认证指令中包括离线认证标识,执行步骤411。

步骤411:认证设备获取离线认证标识值的类型,判断离线认证标识值的类型是否为map类型,如果是,则执行步骤412;否则,向客户端报错,返回步骤403;

具体地,认证设备从认证指令中获取离线认证标识字段之后的第一个字节,将其高三位作为离线认证标识值的类型,判断离线认证标识值的类型是否为map,如果是,则执行步骤412;否则,向客户端报错,返回步骤403;

例如:认证设备从认证指令中获取离线认证标识字段之后的第一个字节a2,将其高三位(101)作为离线认证标识值的类型,判断离线认证标识值的类型为map,则执行步骤412。

步骤412:认证设备从离线认证标识值中获取第一密文和第一密文验证数据;

具体地,认证设备获取离线认证标识值中的第二子成员和第三子成员,并分别将其作为第一密文和第一密文验证数据。

例如,认证设备获取离线认证标识值a2025840613c4dc722e33b43ec536434d6194bf82f93eece3f1b43737358f5f5d32323b2e360d63801369d6b9b97c5266f4b452c20c59800e7dddd8080e650eca32a01d00350fda3fd91e8f709bfe4be07e4f4f7cb6e中的第二子成员的关键词02,根据02之后的下一个字节58的高三位(010)得到第二子成员的类型为字节类型,根据02之后的下一个字节58的低五位(11000),得到第二子成员的数据长度为58之后的下一个字节40,即64字节长度,获取40之后的数据长度为64字节的数据613c4dc722e33b43ec536434d6194bf82f93eece3f1b43737358f5f5d32323b2e360d63801369d6b9b97c5266f4b452c20c59800e7dddd8080e650eca32a01d0,将其作为第二子成员即第一密文。

又例如:认证设备获取离线认证标识值a2025840613c4dc722e33b43ec536434d6194bf82f93eece3f1b43737358f5f5d32323b2e360d63801369d6b9b97c5266f4b452c20c59800e7dddd8080e650eca32a01d00350fda3fd91e8f709bfe4be07e4f4f7cb6e中的第三子成员的关键词03,根据03之后的下一个字节50的高三位(010)得到第二子成员的类型为字节类型,根据02之后的下一个字节50的低五位(10000),得到第二子成员的数据长度为16个字节,获取50之后的数据长度为16字节的数据fda3fd91e8f709bfe4be07e4f4f7cb6e,将其作为第三子成员即第一密文验证数据。

步骤413:认证设备使用会话密钥对第一密文通过第二预设算法进行运算生成第一验证数据;判断第一验证数据和第一密文验证数据是否匹配,如果是,则执行步骤414;否则,向客户端报错,返回步骤403;

例如:认证设备将对使用会话密钥“d7fe60fa62bd176c5986382c0e6a6e47de18f62b0e274ee85f7976578a50f1ba”对第一密文“613c4dc722e33b43ec536434d6194bf82f93eece3f1b43737358f5f5d32323b2e360d63801369d6b9b97c5266f4b452c20c59800e7dddd8080e650eca32a01d0”通过第二预设算法hmac-sha-256运算得到的运算结果自左到右截取16个字节的数据fda3fd91e8f709bfe4be07e4f4f7cb6e,并将其作为第一验证数据,判断第一验证数据和第一密文验证数据fda3fd91e8f709bfe4be07e4f4f7cb6e匹配,则执行步骤415。

步骤414:认证设备使用第三预设算法和会话密钥对第一密文进行解密得到第二离线数据;

具体地,认证设备使用第三预设算法aes256-cbc和会话密钥对第一密文解密得到包括第二离线新数据和第二离线旧数据的第二离线数据。

例如:认证设备使用第三预设算法aes256-cbc和会话密钥d7fe60fa62bd176c5986382c0e6a6e47de18f62b0e274ee85f7976578a50f1ba对第一密文613c4dc722e33b43ec536434d6194bf82f93eece3f1b43737358f5f5d32323b2e360d63801369d6b9b97c5266f4b452c20c59800e7dddd8080e650eca32a01d0进行解密得到包括第二离线新数据1c25252aa0146c47cf967f844d7f98e94ac4ba62033fe02a93b32b3127b85c3b和第二离线旧数据cd81e5ea301446c1a3527fb1dd1ed10aa6a173901a3869d9aa2090ab15c44f70的第二离线数据1c25252aa0146c47cf967f844d7f98e94ac4ba62033fe02a93b32b3127b85c3bcd81e5ea301446c1a3527fb1dd1ed10aa6a173901a3869d9aa2090ab15c44f70。

步骤415:认证设备从认证指令中获取第三方标识,获取与第三方标识对应的认证密钥,根据第四预设算法使用认证密钥对第二离线数据进行运算得到第二离线验证数据;

其中,认证设备从认证指令中获取第三发标识具体为:认证设备从认证指令中的第一参数中获取第三方标识。

更加具体地,认证设备获取认证指令中的第一参数的关键词01,获取关键词01之后的第一个字节,将其高三位作为第一参数的类型标识,根据第一参数的类型标识判断第一参数的类型为文本类型,将其低五位作为第三方标识的数据长度,从关键词01之后的第三个字节开始获取长度为第三方标识的数据长度的数据,将获取到的数据作为第三方标识。

例如:认证设备获取认证指令02a301664368656e5169025820687134968222ec17202e42505f8ed2b16ae22f16bb05b88c25db9e602645f14104a16b686d61632d736563726574a2025840613c4dc722e33b43ec536434d6194bf82f93eece3f1b43737358f5f5d32323b2e360d63801369d6b9b97c5266f4b452c20c59800e7dddd8080e650eca32a01d00350fda3fd91e8f709bfe4be07e4f4f7cb6e中的第一参数的关键词01,获取关键词01之后的第一个字节66,将其高三位作为第一参数的类型标识(011),根据第一参数的类型标识判断第一参数的类型为文本类型,将其低五位(00110)作为第三方标识的数据长度,从关键词01之后的第三个字节开始6个字节的数据,将获取到的数据4368656e5169作为第三方标识。

具体地,认证设备根据第四预设算法使用认证密钥对分别对第二离线新数据和第二离线旧数据进行运算得到第二离线验证新数据和第二离线验证旧数据,将第二离线验证新数据和第二离线验证旧数据顺序拼接得到第二离线验证数据

例如:证设备根据第四预设算法hmac-sha-256使用认证密钥30cb943bc22f8daefe53f275085363971201db7090d4ed8e500959be11b277ec分别对第二离线新数据1c25252aa0146c47cf967f844d7f98e94ac4ba62033fe02a93b32b3127b85c3b和第二离线旧数据cd81e5ea301446c1a3527fb1dd1ed10aa6a173901a3869d9aa2090ab15c44f70进行运算得到第二离线验证新数据140c6680283acbce22c1b5184254d2b1a2e50129e86d3566f96ae0cc0a08397f和第二离线验证旧数据d4fb4766bb01fc421f9b5cd1be984ae3ecd723be145c17bcc032e72efe7791be,将第二离线验证新数据和第二离线旧数据顺序拼接得到第二离线验证数据140c6680283acbce22c1b5184254d2b1a2e50129e86d3566f96ae0cc0a08397fd4fb4766bb01fc421f9b5cd1be984ae3ecd723be145c17bcc032e72efe7791be;

步骤416:认证设备使用会话密钥对第二离线验证数据通过第三预设算法进行加密得到离线验证数据密文;

例如:认证设备使用会话密钥d7fe60fa62bd176c5986382c0e6a6e47de18f62b0e274ee85f7976578a50f1ba对第二离线验证数据140c6680283acbce22c1b5184254d2b1a2e50129e86d3566f96ae0cc0a08397fd4fb4766bb01fc421f9b5cd1be984ae3ecd723be145c17bcc032e72efe7791be通过第三预设算法aes256-cbc进行加密得到离线验证数据密文e2be2c38a1a29f8bdf87fea18c0bde95e23c622673bc15270586aeefa4a4cd67792283945746ba25176ad3b23dd51e3d892314b816a929df9a321e179ead3ff2。

步骤417:认证设备根据离线验证数据密文更新离线认证标识,组织包括第三方标识和离线认证标识的认证响应数据,将认证响应数据返回给客户端,返回步骤403;

具体地,认证设备根据离线验证数据密文更新离线认证标识值,组织包括离线认证标识和第三方标识的认证数据,根据认证数据和从认证指令中获取到的第二客户端数据得到第二待签名数据,使用与第三方标识对应的注册用户私钥对第二待签名数据进行签名,得到第二签名数据,将包括第二签名数据和认证数据的认证响应数据返回给客户端;返回步骤403;

更加具体地,认证设备根据离线验证数据密文更新离线认证标识值,组织包括离线认证标识和第三方标识的认证数据,组织包括认证数据的第二参数;根据认证数据和从认证指令中获取到的第二客户端数据得到第二待签名数据,使用与第三方标识对应的注册用户私钥对第二待签名数据进行签名,得到第二签名数据,组织包括第二签名数据的第三参数,将包括第二参数和第三参数的认证响应数据返回给客户端。

本实施例中,认证响应数据可以为00a301a26269645860d0a90cb0850da9e2d70cbdad2679ac9cfbcd663bbeec35716c3442ca97685ee9ea19c20e9c1628242a3cf22e944bb2b590514481db58e89a0ba1ed6498879d07aa30b5822af74665f8cc37077f7bae75b9233cad72c0cf2596ed40955220ebdd64747970656a7075626c69632d6b65790258747f409b1b3211c37499c9619f42ae0d2abdee652ebdc1af0502d6b539a67043068100000002a16b686d61632d7365637265745840e2be2c38a1a29f8bdf87fea18c0bde95e23c622673bc15270586aeefa4a4cd67792283945746ba25176ad3b23dd51e3d892314b816a929df9a321e179ead3ff20358473045022015963e5ba707d1fc368cd320a4cde64d56e0dd0bd88c60b452a4901d8208919a0221009353555fed371142b26719c6046a7a3871830e27bb748685d0269d987fe387e7。其中,离线认证标识字段为:686d61632d736563726574、离线认证标识值为:e2be2c38a1a29f8bdf87fea18c0bde95e23c622673bc15270586aeefa4a4cd67792283945746ba25176ad3b23dd51e3d892314b816a929df9a321e179ead3ff2。

本实施例中,当客户端接收到认证响应数据后,客户端获取认证响应数据中的离线验证数据密文,使用第三预设算法和自身的会话密钥解密认证响应数据中的离线验证数据密文得到来自认证设备的第二离线验证数据,客户端判断来自认证设备的第二离线验证数据与自身保存的与第一离线数据对应的第一离线验证数据是否匹配,如果是,则判断出与第一离线验证数据对应的用户的离线身份认证成功;否则,判断出离线身份认证失败。

需说明的是,在当用户在线身份认证成功后,客户端将接收到的来自认证设备的认证响应数据中的离线验证数据密文,使用第三预设算法和自身的会话密钥解密认证响应数据中的离线验证数据密文得到来自认证设备的第二离线验证数据,根据第二离线验证数据更新客户端自身的第一离线验证数据;将更新后的第一离线验证数据、第一离线数据和在线认证成功的用户信息对应保存。

本实施例中,步骤406之后,认证设备还可以直接执行步骤408;

相应地,步骤411中判断为是后,步骤415之前,还包括:认证设备根据注册用户密钥对和凭证因子生成认证密钥。

本实施例中,步骤408之前还可以包括:认证设备将与注册用户信息的第一标志置位,本实施例中,第一标志用于标识与注册用户信息对应的注册用户是否支持离线认证,若其状态为置位状态,则与注册用户信息对应的注册用户支持离线认证;若其状态为复位状态,则与注册用户信息对应的注册用户支持离线认证。

本实施例中,第一标志的初始状态可以为复位。

本实施例中,步骤410中判断是后,还包括:认证设备获取与自身的注册用户信息对应的第一标志,判断第一标志是否置位,如果是,则执行步骤411;否则,向客户端报错。

实施例4

本实施例提供了一种离线身份认证系统,如图5所示,包括认证设备和客户端;

客户端包括:第一保存模块10、第一获取模块11、第一更新模块12、第一组织模块13、第一发送模块14、第一接收模块15、第二获取模块16、第三获取模块17和第一判断模块18;

第一保存模块10,用于保存相互对应的第一离线数据和第一离线验证数据;

第一获取模块11,用于获取第三方标识和第一保存模块10保存的第一离线数据;

第一更新模块12,用于根据第一获取模块11获取到的第一离线数据更新离线认证标识;

第一组织模块13,用于组织包括根据第一获取模块11获取到的第三方标识和根据第一更新模块12更新的离线认证标识的认证指令;

第一发送模块14,用于向认证设备发送第一组织模块13组织的认证指令;

第一接收模块15,用于接收来自认证设备的认证响应数据;

第二获取模块16,用于从第一接收模块15接收到的认证响应数据中获取离线认证标识;

第三获取模块17,用于根据第二获取模块16获取到的离线认证标识获取来自认证设备的第二离线验证数据;

第一判断模块18,用于判断第三获取模块17获取到的第二离线验证数据和第一保存模块10保存的与第一离线数据对应的第一离线验证数据是否匹配,如果是,则判断出离线身份认证成功;否则,判断出离线身份认证失败;

认证设备包括:第二接收模块20、第四获取模块21、第五获取模块22、第六获取模块23、第一运算模块24、第二更新模块25、第二组织模块26和第二发送模块27;

第二接收模块20,用于接收来自客户端的认证指令;

第四获取模块21,用于从第二接收模块20接收到的认证指令中获取第三方标识;

第五获取模块22,用于从第二接收模块20接收到的认证指令中获取离线认证标识;

第六获取模块23,用于根据第五获取模块22获取到的离线认证标识获取第二离线数据;

第一运算模块24,用于使用与第四获取模块21获取到的第三方标识对应的认证密钥对第六获取模块23获取到的第二离线数据进行运算得到第二离线验证数据;

第二更新模块25,用于根据第一运算模块24得到的第二离线验证数据更新第五获取模块22获取到的离线认证标识;

第二组织模块26,用于组织包括第四获取模块21获取到的第三方标识和第二更新模块25更新后的离线认证标识的认证响应数据;

第二发送模块27,用于将第二组织模块26组织的认证响应数据发送给客户端。

本实施例中,离线身份认证系统,还可以包括:服务器;认证指令中还包括:第二客户端数据;

客户端还包括:第二判断模块、第七获取模块、第三发送模块、第三接收模块、第二保存模块、第三更新模块、第四判断模块、第四发送模块、第四接收模块、第八获取模块和第四更新模块;

第二判断模块,用于判断客户端当前是否为离线状态;

第一获取模块11,具体用于当第二判断模块判断为是后,获取第三方标识和第一离线数据;

第七获取模块,用于当第二判断模块判断为否后,获取第三方标识;

第三发送模块,用于当第二判断模块判断为否后,向服务器发送认证请求;

第三接收模块,用于接收来自服务器的第二客户端数据;

第二保存模块,用于保存第三接收模块接收的第二客户端数据;

第三更新模块,用于更新第一保存模块10保存的第一离线数据;

第四判断模块,用于当第一接收模块15接收来自认证设备的认证响应数据后,判断当前客户端是否为离线状态;

第二获取模块16,具体用于当第四判断模块判断为否后,从第一接收模块15接收到的认证响应数据中获取离线认证标识;

第四发送模块,用于将第一接收模块15接收到的来自客户端的认证响应数据发送给服务器;

第四接收模块,用于接收来自服务器的在线身份认证成功信息;

第八获取模块,用于当第四接收模块接收到来自服务器的在线身份认证成功信息后,从第一接收模块15接收到的认证响应数据中获取用离线认证标识,根据离线认证标识获取来自认证设备的第二离线验证数据;

第四更新模块,用于第四接收模块接收到来自服务器的在线身份认证成功信息后,使用第八模块获取到的第二离线验证数据更新第一保存模块10保存的第一离线验证数据;

第二组织模块26,具体用于组织包括第四获取模块21获取到的第三方标识和第二更新模块25更新后的离线认证标识的认证数据,根据认证数据和第三接收模块接收到的第二客户端数据得到第二待签名数据,使用与第三方标识对应的注册用户私钥对第二待签名数据进行签名,得到第二签名数据;

第二发送模块27,具体用于将第二组织模块26组织包括第二签名数据和认证数据的认证响应数据返回给客户端;

服务器包括:第五接收模块、第一验签模块和第五发送模块;

第五接收模块,用于接收来自客户端的认证响应数据;

第一验签模块,用于从第五接收模块接收到的认证响应数据中获取认证数据和第二签名数据;从认证数据中获取第三方标识,获取与第三方标识对应的注册用户公钥,根据注册用户公钥、第二客户端数据和认证数据对第二签名数据验签;

第五发送模块,用于当第一验签模块验证成功后,向客户端返回在线身份认证成功信息。

本实施例中,离线身份认证系统,还可以包括:服务器;

客户端还包括:第九获取模块、第六发送模块、第六接收模块、第五更新模块、第三组织模块、第七发送模块、第七接收模块、第八发送模块和第八接收模块;

第九获取模块,用于获取第三方标识和注册用户信息;

第六发送模块,用于根据第九获取模块获取到的注册用户信息向服务器发送注册请求;

第六接收模块,用于接收服务器返回的第一客户端数据;

第五更新模块,用于根据第一预设值更新离线认证标识;

第三组织模块,用于组织包括第六接收模块接收到的第一客户端数据、第九获取模块获取到的第三方标识和注册用户信息以及第五更新模块更新的离线认证标识的注册指令;

第七发送模块,用于向认证设备发送第三组织模块组织的注册指令;

第七接收模块,用于接收来自认证设备的注册响应数据;

第八发送模块,用于向服务器发送第七接收模块接收到的注册响应数据;

第八接收模块,用于接收来自服务器的注册成功信息或者注册失败信息;

认证设备还包括:第九接收模块、第十获取模块、第一生成模块、第三保存模块、第二生成模块、第四组织模块和第九发送模块;

第九接收模块,用于接收来自客户端的注册指令;

第十获取模块,用于从第九接收模块接收到的注册指令中获取第一客户端数据、注册用户信息和第三方标识;

第一生成模块,用于生成注册用户密钥对;

第二生成模块,用于根据第一生成模块生成的注册用户密钥对生成认证密钥;

第二生成模块,具体用于根据第一生成模块生成的注册用户密钥对中的注册用户私钥和认证设备的凭证因子进行异或运算生成认证密钥;

或者具体用于使用认证设备的凭证因子对述第一生成模块生成的注册用户密钥对中的注册用户公钥通过第一预设算法进行运算得到认证密钥;

或者具体用于对第一生成模块生成的注册用户密钥对中的注册私钥进行哈希运算得到认证密钥。

第三保存模块,用于将第十获取模块获取到的注册用户信息和第三方标识与第一生成模块生成的注册用户密钥对建立对应关系并保存;以及将第二生成模块生成的认证密钥和第十获取模块获取到的第三方标识建立对应关系并保存;

第四组织模块,用于生成包括第三方标识、注册用户公钥、预设的硬件公钥和离线认证标识的注册数据,使用预设的硬件私钥对包括注册数据和第一客户端数据的第一待签名数据进行签名得到第一签名数据,组织包括注册数据和第一签名数据的注册响应数据;

第九发送模块,用于将第四组织模块组织的注册响应数据发送给客户端;

服务器包括:第十接收模块、第二验签模块、第四保存模块和第十发送模块;

第十接收模块,用于接收来自客户端的注册响应数据;

第二验签模块,用于从注册响应数据中获取注册数据和第一签名数据,从注册数据中获取硬件公钥、注册用户公钥和第三方标识,根据硬件公钥、注册数据和第一客户端数据对第一签名数据验签,

第四保存模块,用于当第二验签模块验证成功后,则将注册用户信息、注册用户公钥和第三方标识建立对应关系并保存;

第十发送模块,用于当第二验签模块验证成功后,向客户端返回注册成功信息;当第二验签模块验证失败后,向客户端返回注册失败信息。

本实施例中,离线身份认证系统,其特征在于,还可以包括:服务器;

客户端还包括:第九获取模块、第六发送模块、第六接收模块、第五更新模块、第三组织模块、第七发送模块、第七接收模块、第八发送模块和第八接收模块;

第九获取模块,用于获取第三方标识和注册用户信息;

第六发送模块,用于根据第九获取模块获取到的注册用户信息向服务器发送注册请求;

第六接收模块,用于接收服务器返回的第一客户端数据;

第五更新模块,用于根据第一预设值更新离线认证标识;

第三组织模块,用于组织包括第六接收模块接收到的第一客户端数据、第九获取模块获取到的第三方标识和注册用户信息以及第五更新模块更新的离线认证标识的注册指令;

第七发送模块,用于向认证设备发送第三组织模块组织的注册指令;

第七接收模块,用于接收来自认证设备的注册响应数据;

第八发送模块,用于向服务器发送第七接收模块接收到的注册响应数据;

第八接收模块,用于接收来自服务器的注册成功信息或者注册失败信息;

认证设备还包括:第九接收模块、第十获取模块、第一生成模块、第五保存模块、第四组织模块和第九发送模块;

第九接收模块,用于接收来自客户端的注册指令;

第十获取模块,用于从第九接收模块接收到的注册指令中获取第一客户端数据、注册用户信息和第三方标识;

第一生成模块,用于生成注册用户密钥对;

第一运算模块24,具体包括:第一获取单元、第一生成单元和第一运算单元;

第一获取单元,用于根据第十获取模块获取到的第三方标识获取注册用户密钥对;

第一生成单元,用于根据第一获取单元获取到的注册用户密钥对生成认证密钥;

第一生成单元,具体用于根据第一获取单元获取到的注册用户密钥对中的注册用户私钥和认证设备的凭证因子进行异或运算生成认证密钥;

或者具体用于使用认证设备的凭证因子对第一获取单元获取到的注册用户密钥对中的注册用户公钥通过第一预设算法进行运算得到认证密钥;

或者具体用于对第一获取单元获取到的注册用户密钥对中的注册私钥进行哈希运算得到认证密钥。

第一运算单元,用于使用第一生成单元生成的认证密钥对离线数据进行运算得到离线验证数据;

第五保存模块,用于将第十获取模块获取到的注册用户信息和第三方标识与第一生成模块生成的注册用户密钥对建立对应关系并保存;以及将第一生成单元生成的认证密钥和第十获取模块获取到的第三方标识建立对应关系并保存;

第四组织模块,用于生成包括第三方标识、注册用户公钥、预设的硬件公钥和离线认证标识的注册数据,使用预设的硬件私钥对包括注册数据和第一客户端数据的第一待签名数据进行签名得到第一签名数据,组织包括注册数据和第一签名数据的注册响应数据;

第九发送模块,用于将第四组织模块组织的注册响应数据发送给客户端;

服务器包括:第十接收模块、第二验签模块、第四保存模块和第十发送模块;

第十接收模块,用于接收来自客户端的注册响应数据;

第二验签模块,用于从注册响应数据中获取注册数据和第一签名数据,从注册数据中获取硬件公钥、注册用户公钥和第三方标识,根据硬件公钥、注册数据和第一客户端数据对第一签名数据验签,

第四保存模块,用于当第二验签模块验证成功后,则将注册用户信息、注册用户公钥和第三方标识建立对应关系并保存;

第十发送模块,用于当第二验签模块验证成功后,向客户端返回注册成功信息;当第二验签模块验证失败后,向客户端返回注册失败信息。

进一步地,认证设备还包括:第一设置模块、第三判断模块和第二报错模块;

第一设置模块,用于将与第十获取模块获取到的注册用户信息对应的第一标志置位;

第三判断模块,用于获取与第四获取模块21获取到的第三方标识对应的注册用户信息,判断与注册用户信息对应的第一标志是否置位;

第五获取模块22,具体用于当第三判断模块判断为是后,从第二接收模块20接收到的认证指令中获取离线认证标识;

第二报错模块,用于当第三判断模块判断为否后,报错。

本实施例中,客户端还包括:第十三发送模块和第十三接收模块;

第十三发送模块,用于向认证设备发送获取设备信息指令;

第十三接收模块,用于接收来自认证设备的包括离线认证标识的第一响应数据;

认证设备还包括:第十四接收模块和第十四发送模块;

第十四接收模块,用于接收来自客户端的获取设备信息指令;

第十四发送模块,用于向客户端返回包括离线认证标识的第一响应数据。

本实施例中,第一更新模块12,具体用于使用客户端的会话密钥通过第三预设算法对第一离线数据进行加密运算得到第一密文,根据第一密文更新离线认证标识;

第六获取模块23,具体用于根据第五获取模块22获取到的离线认证标识获取第一密文,使用第三预设算法和认证设备的会话密钥对第一密文进行解密得到第二离线数据。

进一步地,第一更新模块12具体包括:第一加密单元、第二运算单元和第二更新单元;

第一加密单元,用于使用客户端的会话密钥通过第三预设算法对第一离线数据进行加密运算得到第一密文;

第二运算单元,用于使用客户端的会话密钥对第一加密单元得到的第一密文通过第二预设算法运算生成第一密文验证数据;

第二更新单元,用于根据第一加密单元得到的第一密文和第二运算单元得到的第一密文验证数据更新离线认证标识;

认证设备还包括:第一报错模块;

第六获取模块23,具体包括:第二获取单元、第一判断单元和第一解密单元;

第二获取单元,用于根据第五获取模块22获取到的离线认证标识获取第一密文和第一密文验证数据,;

第一判断单元,用于使用认证设备的会话密钥对第二获取单元获取到的第一密文通过第二预设算法运算生成第一验证数据;判断第一验证数据和第二获取单元获取到的第一密文验证数据是否匹配;

第一解密单元,用于当第一判断单元判断为是后,使用第三预设算法和认证设备的会话密钥对第一密文进行解密得到第二离线数据;

第一报错模块,用于当第一判断单元判断为否后,报错。

本实施例中,第二更新模块25,具体用于使用认证设备的会话密钥对第二离线验证数据通过第三预设算法进行加密得到离线验证数据密文;根据离线验证数据密文更新离线认证标识;

第三获取模块17,具体用于从认证响应数据中获取离线认证标识,根据离线认证标识获取来自认证设备的离线验证数据密文,使用第三预设算法和自身的会话密钥对离线验证数据密文进行解密得到第二离线验证数据。

本实施例中,客户端还包括:第十一发送模块、第十一接收模块、第二运算模块;

第十一发送模块,用于向认证设备发送包括客户端的第二公钥的会话密钥指令;

第十一接收模块,用于接收来自认证设备的包括认证设备的第一公钥的协商响应信息;

第二运算模块,用于根据第十一接收模块接收到的协商响应信息中的认证设备的第一公钥和客户端的第二私钥使用椭圆曲线密码体制密钥交换算法得到会话密钥,保存会话密钥;

认证设备还包括:第十二接收模块、第十二发送模块和第三运算模块;

第十二接收模块,用于接收来自客户端的会话密钥指令;

第三运算模块,用于从第十二接收模块接收到的会话密钥指令中获取客户端的第二公钥;根据客户端的第二公钥和认证设备的第一私钥使用椭圆曲线密码体制密钥交换算法得到会话密钥,保存会话密钥;

第十二发送模块,用于向客户端返回包括认证设备的第一公钥的协商响应信息。

实施例5

本实施例提供了一种认证设备,如图6所示,包括:第二接收模块20、第四获取模块21、第五获取模块22、第六获取模块23、第一运算模块24、第二更新模块25、第二组织模块26和第二发送模块27;

第二接收模块20,用于接收来自客户端的认证指令;

第四获取模块21,用于从第二接收模块20接收到的认证指令中获取第三方标识;

第五获取模块22,用于从第二接收模块20接收到的认证指令中获取离线认证标识;

第六获取模块23,用于根据第五获取模块22获取到的离线认证标识获取第二离线数据;

第一运算模块24,用于使用与第四获取模块21获取到的第三方标识对应的认证密钥对第六获取模块23获取到的第二离线数据进行运算得到第二离线验证数据;

第二更新模块25,用于根据第一运算模块24得到的第二离线验证数据更新第五获取模块22获取到的离线认证标识;

第二组织模块26,用于组织包括第四获取模块21获取到的第三方标识和第二更新模块25更新后的离线认证标识的认证响应数据;

第二发送模块27,用于将第二组织模块26组织的认证响应数据发送给客户端。

本实施例中,认证指令中还包括:第二客户端数据;

第二组织模块26,具体用于组织包括第四获取模块21获取到的第三方标识和第二更新模块25更新后的离线认证标识的认证数据,根据认证数据和第三接收模块接收到的第二客户端数据得到第二待签名数据,使用与第三方标识对应的注册用户私钥对第二待签名数据进行签名,得到第二签名数据;

第二发送模块27,具体用于将包括第二组织模块26得到的第二签名数据和认证数据的认证响应数据返回给客户端。

本实施例中,认证设备还包括:第九接收模块、第十获取模块、第一生成模块、第三保存模块、第二生成模块、第四组织模块和第九发送模块;

第九接收模块,用于接收来自客户端的注册指令;

第十获取模块,用于从第九接收模块接收到的注册指令中获取第一客户端数据、注册用户信息和第三方标识;

第一生成模块,用于生成注册用户密钥对;

第二生成模块,用于根据第一生成模块生成的注册用户密钥对生成认证密钥;

第二生成模块,具体用于根据第一生成模块生成的注册用户密钥对中的注册用户私钥和认证设备的凭证因子进行异或运算生成认证密钥;

或者具体用于使用认证设备的凭证因子对述第一生成模块生成的注册用户密钥对中的注册用户公钥通过第一预设算法进行运算得到认证密钥;

或者具体用于对第一生成模块生成的注册用户密钥对中的注册私钥进行哈希运算得到认证密钥。

第三保存模块,用于将第十获取模块获取到的注册用户信息和第三方标识与第一生成模块生成的注册用户密钥对建立对应关系并保存;以及将第二生成模块生成的认证密钥和第十获取模块获取到的第三方标识建立对应关系并保存;

第四组织模块,用于生成包括第三方标识、注册用户公钥、预设的硬件公钥和离线认证标识的注册数据,使用预设的硬件私钥对包括注册数据和第一客户端数据的第一待签名数据进行签名得到第一签名数据,组织包括注册数据和第一签名数据的注册响应数据;

第九发送模块,用于将第四组织模块组织的注册响应数据发送给客户端。

本实施例中,认证设备还包括:第九接收模块、第十获取模块、第一生成模块、第五保存模块、第四组织模块和第九发送模块;

第九接收模块,用于接收来自客户端的注册指令;

第十获取模块,用于从第九接收模块接收到的注册指令中获取第一客户端数据、注册用户信息和第三方标识;

第一生成模块,用于生成注册用户密钥对;

第一运算模块24,具体包括:第一获取单元、第一生成单元和第一运算单元;

第一获取单元,用于根据第十获取模块获取到的第三方标识获取注册用户密钥对;

第一生成单元,用于根据第一获取单元获取到的注册用户密钥对生成认证密钥;

第一生成单元,具体用于根据第一获取单元获取到的注册用户密钥对中的注册用户私钥和认证设备的凭证因子进行异或运算生成认证密钥;

或者具体用于使用认证设备的凭证因子对第一获取单元获取到的注册用户密钥对中的注册用户公钥通过第一预设算法进行运算得到认证密钥;

或者具体用于对第一获取单元获取到的注册用户密钥对中的注册私钥进行哈希运算得到认证密钥。

第一运算单元,用于使用第一生成单元生成的认证密钥对离线数据进行运算得到离线验证数据;

第五保存模块,用于将第十获取模块获取到的注册用户信息和第三方标识与第一生成模块生成的注册用户密钥对建立对应关系并保存;以及将第一生成单元生成的认证密钥和第十获取模块获取到的第三方标识建立对应关系并保存;

第四组织模块,用于生成包括第三方标识、注册用户公钥、预设的硬件公钥和离线认证标识的注册数据,使用预设的硬件私钥对包括注册数据和第一客户端数据的第一待签名数据进行签名得到第一签名数据,组织包括注册数据和第一签名数据的注册响应数据;

第九发送模块,用于将第四组织模块组织的注册响应数据发送给客户端。

本实施例中,第六获取模块23,具体用于根据第五获取模块22获取到的离线认证标识获取第一密文,使用第三预设算法和认证设备的会话密钥对第一密文进行解密得到第二离线数据。

进一步地,认证设备,还包括:第一设置模块、第三判断模块和第二报错模块;

第一设置模块,用于将与第十获取模块获取到的注册用户信息对应的第一标志置位;

第三判断模块,用于获取与第四获取模块21获取到的第三方标识对应的注册用户信息,判断与注册用户信息对应的第一标志是否置位;

第五获取模块22,具体用于当第三判断模块判断为是后,从第二接收模块20接收到的认证指令中获取离线认证标识;

第二报错模块,用于当第三判断模块判断为否后,报错。

进一步地,认证设备,还包括:第一报错模块;

第六获取模块23,具体包括:第二获取单元、第一判断单元和第一解密单元;

第二获取单元,用于根据第五获取模块22获取到的离线认证标识获取第一密文和第一密文验证数据,;

第一判断单元,用于使用认证设备的会话密钥对第二获取单元获取到的第一密文通过第二预设算法运算生成第一验证数据;判断第一验证数据和第二获取单元获取到的第一密文验证数据是否匹配;

第一解密单元,用于当第一判断单元判断为是后,使用第三预设算法和认证设备的会话密钥对第一密文进行解密得到第二离线数据;

第一报错模块,用于当第一判断单元判断为否后,报错。

本实施例中,第二更新模块25,具体用于使用认证设备的会话密钥对第二离线验证数据通过第三预设算法进行加密得到离线验证数据密文;根据离线验证数据密文更新离线认证标识。

进一步地,认证设备,还包括:第十二接收模块、第十二发送模块和第三运算模块;

第十二接收模块,用于接收来自客户端的会话密钥指令;

第三运算模块,用于从第十二接收模块接收到的会话密钥指令中获取客户端的第二公钥;根据客户端的第二公钥和认证设备的第一私钥使用椭圆曲线密码体制密钥交换算法得到会话密钥,保存会话密钥;

第十二发送模块,用于向客户端返回包括认证设备的第一公钥的协商响应信息。

本实施例中,认证设备还包括:第十四接收模块和第十四发送模块;

第十四接收模块,用于接收来自客户端的获取设备信息指令;

第十四发送模块,用于向客户端返回包括离线认证标识的第一响应数据。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1