一种安全支付设备及方法与流程

文档序号:12125281阅读:229来源:国知局
一种安全支付设备及方法与流程

本发明涉及信息安全领域,尤其涉及一种安全支付设备及方法。



背景技术:

随着互联网和电子商务的快速发展,网上在线交易越来越普遍,在线的快速支付方式越来越受到人们的亲睐。交易金额不断扩大,网络信息安全问题日益凸显,消费者也越来越关注网上交易的安全问题。现有技术中普遍采用的快捷支付方式是用户输入交易密码即可完成在线支付,或者交易密码与手机短信认证码结合的方式完成在线支付,优点是支付快速便捷,缺点是安全性低及需要用户记忆密码。

因此,发明一种既便捷又安全的支付方法是本发明要解决的问题。



技术实现要素:

为解决现有技术中存在的技术问题,本发明提出了一种安全支付设备及方法。

本发明的技术方案涉及一种安全支付设备及方法,其中:

一种安全支付方法,包括以下步骤:

步骤S1、设备接收到客户端下发的支付请求命令,解析所述支付请求命令获取第一参数、第二参数、密钥句柄和交易文本,设备显示所述交易文本,等待用户确认操作;

步骤S2、当所述设备接收到用户确认操作时,根据所述密钥句柄获得用户应用私钥,获取计数器的当前计数值;所述设备根据所述第一参数、所述第二参数、所述当前计数值和所述交易文本组成第三待签名数据,使用所述用户应用私钥对所述第三待签名数据进行签名得到第三签名结果;所述设备根据所述当前计数值和所述第三签名结果组成支付请求命令的响应数据并返回给所述客户端;

所述设备中保存有与所述密钥句柄对应的用户应用私钥,或者是所述设备使用保存的解密密钥对所述密钥句柄解密得到用户应用私钥。

优选的,所述步骤S1之前还包括:当所述设备接收到客户端下发的注册请求命令时,执行:

步骤a1:所述设备判断是否接收到用户确认操作,是则执行步骤a2,否则向客户端返回错误响应码,结束;

步骤a2:所述设备解析所述注册请求命令获取第一参数和第二参数,生成用户应用公私钥对及其对应的密钥句柄;

步骤a3:所述设备根据所述第一参数、所述第二参数、所述密钥句柄和用户应用公钥组成第一待签名数据,使用设备证书私钥对所述第一待签名数据进行签名得到第一签名结果;

步骤a4:所述设备根据所述用户应用公钥、所述密钥句柄、设备证书和所述第一签名结果组成注册请求命令响应数据,向客户端返回所述注册请求命令响应数据。

或者是优选的,所述步骤S1之前还包括:当所述设备接收到客户端下发的注册请求命令时,执行:

步骤a1:所述设备判断是否接收到用户确认操作,是则执行步骤a2,否则向客户端返回错误响应码,结束;

步骤a2:所述设备解析所述注册请求命令获取第一参数和第二参数,生成用户应用公私钥对,根据用户应用私钥和所述第二参数组成待加密数据,使用保存的加密密钥对所述待加密数据进行加密得到密钥句柄;

步骤a3:所述设备根据所述第一参数、所述第二参数、所述密钥句柄和用户应用公钥组成第一待签名数据,使用设备证书私钥对所述第一待签名数据进行签名得到第一签名结果;

步骤a4:所述设备根据所述用户应用公钥、所述密钥句柄、设备证书和所述第一签名结果组成注册请求命令响应数据,向客户端返回所述注册请求命令响应数据。

进一步的,所述步骤S1之前还包括:当所述设备接收到客户端下发的认证请求命令时,执行:

步骤b1:所述设备判断是否接收到用户确认操作,是则执行步骤b2,否则向客户端返回错误响应码,结束;

步骤b2:所述设备解析所述认证请求命令获取第一参数、第二参数和密钥句柄,根据所述密钥句柄获得用户应用私钥;

步骤b3:所述设备获取计数器的当前计数值,根据所述第一参数、第二参数、当前计数值组成第二待签名数据,使用所述用户应用私钥对所述第二待签名数据进行签名得到第二签名结果;

步骤b4:所述设备根据所述当前计数值和所述第二签名结果组成认证请求命令响应数据,向客户端返回所述认证请求命令响应数据,并更新所述计数器的当前计数值。

优选的,上述方法还包括:当所述设备接收到客户端下发的注销请求命令时,解析所述注销请求命令获取密钥句柄,删除设备中的与所述密钥句柄对应的用户应用公私钥对,向客户端返回包含注销结果的响应码。

当所述设备接收到客户端下发的设备配置命令时,根据所述设备配置命令的数据域确定当前签名算法类型,并向客户端返回表示命令执行成功的响应数据。

当所述设备接收到客户端下发的获取设备信息命令时,向所述客户端返回包含硬件身份标识码的响应数据。

其中,一种安全支付设备,包括命令接收模块、第一解析模块、显示模块、用户交互模块、第三签名模块、命令响应模块;

所述命令接收模块,用于接收客户端下发的支付请求命令;

所述第一解析模块,用于当所述命令接收模块接收到所述支付请求命令时,解析所述支付请求命令获取第一参数、第二参数、密钥句柄和交易文本;

显示模块,用于显示所述交易文本,并触发用户交互模块;

所述用户交互模块,用于接收用户确认操作并触发第三签名模块;

所述第三签名模块,用于根据所述第一解析模块解析得到的所述密钥句柄获得用户应用私钥,用于获取计数器的当前计数值,根据所述当前计数值、所述第一解析模块解析得到的所述第一参数、所述第二参数和所述交易文本组成第三待签名数据,使用所述用户应用私钥对所述第三待签名数据进行签名得到第三签名结果;

所述命令响应模块,用于根据所述第三签名模块获得的所述当前计数值和所述第三签名结果组成支付请求命令的响应数据并返回给所述客户端;

所述设备还包括存储模块,用于存储设备生成的用户应用私钥;或者所述存储模块,用于存储加解密密钥和解密模块解密得到的用户应用私钥;所述设备还包括解密模块,所述解密模块用于使用存储模块中保存的解密密钥从所述第一解析模块解析得到的所述密钥句柄中解密获得用户应用私钥。

优选的,所述命令接收模块,还用于接收客户端下发的注册请求命令;相应的:

所述设备还包括第一判断模块、第二解析模块、第一签名模块;

所述第一判断模块,用于判断所述用户交互模块是否接收到用户确认操作;

所述第二解析模块,用于在所述第一判断模块判断接收到用户确认操作时,解析所述命令接收模块接收到的所述注册请求命令获取第一参数和第二参数,生成用户应用公私钥对及其对应的密钥句柄;

所述存储模块,用于存储所述用户应用公私钥对;

所述第一签名模块,用于根据所述第一参数、所述第二参数、所述密钥句柄和用户应用公钥组成第一待签名数据,使用设备证书私钥对所述第一待签名数据进行签名得到第一签名结果,触发所述命令响应模块;

所述命令响应模块,还用于收到所述第一签名模块的触发时根据所述用户应用公钥、所述密钥句柄、设备证书和所述第一签名结果组成注册请求命令的响应数据并返回给所述客户端,以及用于在所述第一判断模块判断结果为否时向所述客户端返回错误响应码。

或者是优选的,所述命令接收模块,还用于接收客户端下发的注册请求命令;相应的:

所述设备还包括第一判断模块、第二解析模块、第一签名模块;

所述第一判断模块,用于判断所述用户交互模块是否接收到用户确认操作;

所述第二解析模块,用于在所述第一判断模块判断接收到用户确认操作时,解析所述命令接收模块接收到的所述注册请求命令获取第一参数和第二参数,生成用户应用公私钥对,根据用户应用私钥和所述第二参数组成待加密数据,使用保存的加密密钥对所述待加密数据进行加密得到密钥句柄;

所述存储模块,用于存储所述用户应用公私钥对;

所述第一签名模块,用于根据所述第一参数、所述第二参数、所述密钥句柄和用户应用公钥组成第一待签名数据,使用设备证书私钥对所述第一待签名数据进行签名得到第一签名结果,触发所述命令响应模块;

所述命令响应模块,还用于收到所述第一签名模块的触发时根据所述用户应用公钥、所述密钥句柄、设备证书和所述第一签名结果组成注册请求命令的响应数据并返回给所述客户端,以及用于在所述第一判断模块判断结果为否时向所述客户端返回错误响应码。

进一步的,上述命令接收模块,还用于接收客户端下发的认证请求命令;相应的:

所述设备还包括第一判断模块、第四解析模块、第二签名模块和更新模块;

所述第一判断模块,用于判断所述用户交互模块是否接收到用户确认操作;

所述第四解析模块,用于解析所述命令接收模块接收到的所述认证请求命令获取第一参数、第二参数和密钥句柄;

所述第二签名模块,用于根据所述密钥句柄获得用户应用私钥,获取计数器的当前计数值,根据所述第一参数、第二参数、当前计数值组成第二待签名数据,使用所述用户应用私钥对所述第二待签名数据进行签名得到第二签名结果,触发所述命令响应模块和更新模块;

所述命令响应模块,还用于收到所述第二签名模块的触发时根据所述当前计数值和所述第二签名结果组成认证请求命令响应数据并返回给所述客户端;

所述更新模块,用于更新所述计数器的当前计数值。

进一步的,上述命令接收模块,还用于接收客户端下发的注销请求命令;相应的:

所述设备还包括第三解析模块,用于解析所述命令接收模块接收到的所述注销请求命令获取密钥句柄,删除所述存储模块中的与所述密钥句柄对应的用户应用公私钥对,触发所述命令响应模块;

所述命令响应模块,还用于根据所述第三解析模块的执行结果向客户端返回包含注销结果的响应码。

进一步的,所述设备还包括配置模块;所述命令接收模块还用于接收客户端下发的设备配置命令,并触发所述配置模块;

所述配置模块,用于根据所述设备配置命令的数据域确定当前签名算法类型,并触发所述命令响应模块;

所述命令响应模块,还用于在收到所述配置模块的触发时向所述客户端返回表示命令执行成功的响应数据。

进一步的,所述命令接收模块还用于接收客户端下发的获取设备信息命令,并触发命令响应模块;

所述命令响应模块,还用于在收到所述命令接收模块的触发时向所述客户端返回包含硬件身份标识码的响应数据。

上述设备证书中包含有硬件身份标识码和设备证书公私钥对。

本发明达到的有益效果如下:使用本发明提供的安全支付设备及方法,不需要用户输入密码,只需要在设备上做相应的交互动作(如:按确认键、刷指纹、刷虹膜等等)确认是用户本人在操作就可完成操作,既简化了操作提升了用户体验,又保证了支付的安全性。

附图说明

图1是实施例1提供的一种安全支付方法流程图;

图2是实施例2提供的一种安全支付设备的工作方法流程图;

图3是实施例3提供的一种安全支付设备的组成框图。

具体实施方式

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

实施例1

本实施例提供了一种安全支付方法,以安全支付设备为执行主体进行介绍,本实施例提供的安全支付设备(以下简称设备)是具有数字签名功能、提供身份认证的设备,一般采用蓝牙、NFC接口。本实施例提供的方法具体涉及设备接收并处理支付请求命令的流程,如图1所示,具体包括以下步骤:

步骤S1、设备接收到客户端下发的支付请求命令,解析所述支付请求命令获取第一参数、第二参数、密钥句柄和交易文本,设备显示交易文本中的关键数据,等待用户确认操作;

优选的,所述交易文本包括订单信息和时间戳,所述交易文本中的关键数据包括交易金额、商户名称、交易时间;还可以是设备显示所述交易文本,等待用户确认操作。

所述第一参数是客户端数据的摘要值,所述第二参数是客户端的应用ID的摘要值。例如,所述第一参数和第二参数均是采用SHA-256计算的摘要值,第一参数和第二参数长度为32字节。

步骤S2、当设备接收到用户确认操作时,根据所述密钥句柄找到用户应用私钥,获取计数器的当前计数值;

具体的,所述密钥句柄、用户应用公私钥对是所述设备在接收并处理注册请求命令的流程中生成并保存的,所述密钥句柄与所述用户应用公私钥对唯一对应。本步骤具体的,根据当前设备中保存的密钥句柄和用户应用公私钥的对应关系,找到与步骤S1解析出的密钥句柄所对应的用户应用私钥。

优选的,所述计数器的计数值的初值为0,设备每进行一次用户身份认证,计数器的当前计数值加1。

进一步的,本步骤还可以是:当设备接收到用户确认操作时,设备使用保存的解密密钥对所述密钥句柄解密得到用户应用私钥,具体的:设备使用保存的解密密钥对所述密钥句柄进行解密得到第一解密数据和第二解密数据,判断所述第二参数和所述第二解密数据是否一致,是则将所述第一解密数据作为用户应用私钥,否则根据预设错误字节码组成支付请求命令的响应数据并返回给所述客户端。

步骤S3、设备根据所述第一参数、第二参数、当前计数值和交易文本组成第三待签名数据,使用所述用户应用私钥对所述第三待签名数据进行签名得到第三签名结果;

优选的,本步骤所述进行签名所采用的签名算法类型可以是预先在设备中设置的签名算法类型,还可以是设备接收到客户端下发的设备配置命令时在设备中配置完成的签名算法类型。

步骤S4、设备根据所述当前计数值和所述第三签名结果组成支付请求命令的响应数据并返回给客户端。

实施例2

如图2所示,本实施例提供了一种安全支付设备的工作方法,具体包括以下步骤:

步骤1:设备上电,初始化;

步骤2:设备接收客户端下发的命令;

具体的,客户端下发的所述命令支持APDU数据格式。

步骤3:设备判断接收到的所述命令的类型,若所述命令是获取版本号命令则执行步骤4,若所述命令是获取设备信息命令则执行步骤5,若所述命令是注销请求命令则执行步骤6,若所述命令是注册请求命令则执行步骤7,若所述命令是认证请求命令则执行步骤12,若所述命令是支付请求命令则执行步骤17;

具体的,设备根据接收到的所述命令的第二个字节判断命令类型,若第二个字节为0x03则所述命令为获取版本号命令,若第二个字节为0xC5则所述命令为获取设备信息命令,若第二个字节为0x01则所述命令为注册请求命令,若第二个字节为0x02则所述命令为认证请求命令,若第二个字节为0x04则所述命令为支付请求命令,若第二个字节为0xC4则所述命令为注销请求命令。

进一步的,上述步骤3还包括,若接收到的所述命令是设备配置命令,则根据所述设备配置命令的数据域确定签名算法类型,并向客户端返回表示命令执行成功的响应数据。

具体的,若接收到的所述命令的第二个字节为0xC6则所述命令为设备配置命令,所述设备配置命令的数据域为配置信息,所述配置信息为TLV(Tag+Length+Value)格式,所述配置信息可以包括应用类型、签名算法类型。其中签名算法类型对应的Tag为0x62,根据Tag=0x62对应的Value值确定签名算法类型。例如,所述配置信息中包含的签名算法类型的TLV结构如下:0x62 0102,则根据Value=02确定的签名算法类型为SM2算法。

步骤4:设备向客户端返回包含版本号的响应数据,返回步骤2;

例如,设备支持的协议协议版本号是U2F,则设备向客户端返回的响应数据为ASCII编码(U2F_V2)。

步骤5:设备向客户端返回包含HID的响应数据,返回步骤2;

具体,所述HID(硬件身份标识码)用于唯一标识所述设备,出厂时预植到所述设备中。

所述HID的长度共16比特位,其中:

BIT1~2:产品型号,表示产品类型,范围从‘01’~‘99’。

BIT3~4:厂商编号,表示生产厂商的编号,范围从‘01’~‘99’。

BIT5~BIT6:生产年份,取自然年的后两位,如:2016年,则取值为‘16’。

BIT7~BIT8:生产月份,范围是‘01’~‘12’。

BIT9~BIT16:自然序列号,范围是‘00000001’~‘99999999’。

优选的,设备向客户端返回包含HID的响应数据为TLV格式,其中Tag=0x34,L=0x10,V=HID。

进一步的,本步骤中设备向客户端返回的响应数据中还可以包含应用版本号、签名支持算法类型。

步骤6:设备解析所述注销请求命令获取密钥句柄,删除存储的所述密钥句柄及其对应的用户应用公私钥对,向客户端返回包含注销结果的响应码,返回步骤2;

优选的,设备解析所述注销请求命令获取密钥句柄,删除存储的与所述密钥句柄对应的用户应用公私钥对。

例如,若注销成功则设备向客户端返回0x9000,若注销失败则设备向客户端返回0x6989。

步骤7:设备判断是否接收到用户确认操作,是则执行步骤9,否则执行步骤8;

优选的,所述设备带有按键,所述用户确认操作具体为用户按键操作。所述用户确认操作还可以是用户刷指纹、刷虹膜等操作。

步骤8:设备向客户端返回错误响应码,返回步骤2;

例如,设备向客户端返回0x6985。

步骤9:设备解析所述注册请求命令获取第一参数和第二参数,生成用户应用公私钥对及其对应的密钥句柄并存储;

具体的,设备解析所述注册请求命令,将命令数据域的前32个字节作为第一参数,将后32个字节作为第二参数。优选的,所述第一参数为挑战参数,例如客户端数据,所述第二参数为应用参数,例如应用标识。

优选的,设备生成的用户应用公钥和私钥的长度为65字节。

进一步的,本步骤还可以为:设备解析所述注册请求命令获取第一参数和第二参数,生成用户应用公私钥对,根据用户应用私钥和所述第二参数组成待加密数据,使用保存的加密密钥对所述待加密数据进行加密得到密钥句柄;

步骤10:设备根据所述第一参数、所述第二参数、所述密钥句柄和用户应用公钥组成第一待签名数据,使用设备证书私钥对所述第一待签名数据进行签名得到第一签名结果;

具体的,设备出厂时预植了设备证书,所述设备证书中包含有用于唯一标识所述设备的HID(硬件身份标识码)和设备证书公私钥对。

优选的,本步骤所述进行签名所采用的签名算法类型是设备接收到设备配置命令时所配置的签名算法类型,例如,SM2算法。还可以是采用预先在设备中设置的签名算法类型。

步骤11:设备根据所述用户应用公钥、所述密钥句柄、所述设备证书和所述第一签名结果组成注册请求命令响应数据,向客户端返回所述注册请求命令响应数据,返回步骤2。

具体的,将所述用户应用公钥、所述密钥句柄、所述设备证书和所述第一签名结果按照第一预设格式组成注册请求命令响应数据。

例如,所述第一预设格式为:0x05+用户应用公钥(65字节)+密钥句柄的长度(1字节)+密钥句柄+设备证书+第一签名结果。

步骤12:设备判断是否接收到用户确认操作,是则执行步骤13,否则执行步骤16;

优选的,所述用户确认操作具体为用户按键操作。

步骤13:设备解析所述认证请求命令获取第一参数、第二参数和密钥句柄,根据所述密钥句柄找到用户应用私钥;

具体的,设备解析所述认证请求命令,将命令数据域的第2至第33个字节作为第一参数,将命令数据域的第35至第66个字节作为第二参数,根据命令数据域的第67个字节得到密钥句柄长度,从命令数据域的第68个字节开始获取与所述密钥句柄长度相等的字节数作为密钥句柄。

进一步的,本步骤还可以为:设备解析所述认证请求命令获取第一参数、第二参数和密钥句柄,使用保存的解密密钥对所述密钥句柄进行解密得到第一解密数据和第二解密数据,判断所述第二参数和所述第二解密数据是否一致,是则将所述第一解密数据作为用户应用私钥,否则根据预设错误字节码组成支付请求命令的响应数据并返回给所述客户端。

本实施例中,在支付操作之前可以通过认证请求命令对用户身份进行安全认证,从而增强支付安全性。

步骤14:设备获取计数器的当前计数值,根据所述第一参数、第二参数、当前计数值得到第二待签名数据,使用所述用户应用私钥对所述第二待签名数据进行签名得到第二签名结果;

优选的,所述计数器的计数值的初值为0x00,设备每做一次认证,计数器的当前计数值加1。

优选的,本步骤所述进行签名所采用的签名算法类型是设备接收到设备配置命令时所配置的签名算法类型,例如,SM2算法。还可以是采用预先在设备中设置的签名算法类型。

步骤15:设备根据所述当前计数值和所述第二签名结果组成认证请求命令响应数据,向客户端返回所述认证请求命令响应数据,将计数器的当前计数值加1,返回步骤2;

具体的,将所述当前计数值和所述第二签名结果按照第二预设格式组成认证请求命令响应数据。

例如,所述第二预设格式为:0x01+当前计数值+第二签名结果。

步骤16:设备向客户端返回错误响应码,返回步骤2;

例如,设备向客户端返回0x6986。

步骤17:设备解析所述支付请求命令获取第一参数、第二参数、密钥句柄和交易文本,显示所述交易文本中的关键数据,等待用户确认;

具体的,设备解析所述认证请求命令,将命令数据域的第2至第33个字节作为第一参数,将命令数据域的第35至第66个字节作为第二参数,根据命令数据域的第67个字节得到密钥句柄长度,从命令数据域的第68个字节开始获取与所述密钥句柄长度相等的数据作为密钥句柄,根据命令数据域的第69和第70个字节得到交易文本长度,从命令数据域的第71个字节开始获取与所述交易文本长度相等的数据作为交易文本。

优选的,所述交易文本中的关键数据包括交易金额、商户名称、交易时间。

步骤18:设备判断是否接收到用户确认操作,是则执行步骤20,否则执行步骤19;

优选的,所述用户确认操作具体为用户按键操作。

步骤19:设备向客户端返回错误响应码,返回步骤2;

例如,设备向客户端返回0x6986。

步骤20:设备根据所述密钥句柄找到用户应用私钥,获取计数器的当前计数值;

步骤21:设备根据所述第一参数、第二参数、当前计数值和交易文本组成第三待签名数据,使用所述用户应用私钥对所述第三待签名数据进行签名得到第三签名结果;

优选的,本步骤所述进行签名所采用的签名算法类型是设备接收到设备配置命令时所配置的签名算法类型,例如,SM2算法。还可以是采用预先在设备中设置的签名算法类型。

步骤22:设备根据所述当前计数值和所述第三签名结果组成支付请求命令响应数据,向客户端返回所述支付请求命令响应数据,返回步骤2。

具体的,将所述当前计数值和所述第三签名结果按照第三预设格式组成支付请求命令响应数据。

例如,所述第三预设格式为:0x01+当前计数值+第三签名结果。

实施例3

如图3所示,本实施例提供了一种安全支付设备,包括命令接收模块101、第一解析模块102、显示模块103、用户交互模块104、第三签名模块105、命令响应模块106;

所述命令接收模块101,用于接收客户端下发的支付请求命令;

所述第一解析模块102,用于当所述命令接收模块101接收到所述支付请求命令时,解析所述支付请求命令获取第一参数、第二参数、密钥句柄和交易文本,

显示模块103,用于显示所述交易文本,并触发用户交互模块104;还可以具体用于显示所述交易文本中的关键数据,并触发用户交互模块104。

所述用户交互模块104,用于接收用户确认操作并触发第三签名模块105;优选的,所述用户交互模块具体为按键或刷指纹器或刷虹膜器。

所述第三签名模块105,用于根据所述第一解析模块102解析得到的所述密钥句柄从存储模块107中获得用户应用私钥,用于获取计数器的当前计数值,根据所述当前计数值、所述第一解析模块102解析得到的所述第一参数、所述第二参数和所述交易文本组成第三待签名数据,使用所述用户应用私钥对所述第三待签名数据进行签名得到第三签名结果;

所述命令响应模块106,用于根据所述第三签名模块105获得的所述当前计数值和所述第三签名结果组成支付请求命令的响应数据并返回给所述客户端;

所述设备还包括存储模块107,用于存储设备生成的用户应用私钥;

或者所述设备还包括解密模块,所述存储模块,用于存储加解密密钥和解密模块解密得到的用户应用私钥;所述解密模块,用于使用存储模块107中保存的解密密钥从所述第一解析模块102解析得到的所述密钥句柄中解密获得用户应用私钥。

优选的,所述解密模块具体用于:使用保存的解密密钥对所述密钥句柄进行解密得到第一解密数据和第二解密数据,判断所述第二参数和所述第二解密数据是否一致,是则将所述第一解密数据作为用户应用私钥,否则触发所述命令响应模块;相应的,所述命令响应模块,还用于在收到解密模块的触发时,根据预设错误字节码组成支付请求命令的响应数据并返回给所述客户端。

进一步的,所述命令接收模块,还用于接收客户端下发的注册请求命令;相应的,所述设备还包括第一判断模块、第二解析模块、第一签名模块;

所述第一判断模块,用于判断所述用户交互模块是否接收到用户确认操作;

所述第二解析模块,用于在所述第一判断模块判断接收到用户确认操作时,解析所述命令接收模块接收到的所述注册请求命令获取第一参数和第二参数,生成用户应用公私钥对及其对应的密钥句柄;

或者,所述第二解析模块,用于在所述第一判断模块判断接收到用户确认操作时,解析所述命令接收模块接收到的所述注册请求命令获取第一参数和第二参数,生成用户应用公私钥对,根据用户应用私钥和所述第二参数组成待加密数据,使用存储模块中保存的加密密钥对所述待加密数据进行加密得到密钥句柄;

所述存储模块,用于存储所述用户应用公私钥对;

所述第一签名模块,用于根据所述第一参数、所述第二参数、所述密钥句柄和用户应用公钥组成第一待签名数据,使用设备证书私钥对所述第一待签名数据进行签名得到第一签名结果,触发所述命令响应模块;

所述命令响应模块,还用于收到所述第一签名模块的触发时根据所述用户应用公钥、所述密钥句柄、设备证书和所述第一签名结果组成注册请求命令的响应数据并返回给所述客户端,以及用于在所述第一判断模块判断结果为否时向所述客户端返回错误响应码。

优选的,本实施例中所述设备证书中包含有硬件身份标识码和设备证书公私钥对。

进一步的,所述命令接收模块,还用于接收客户端下发的注销请求命令;相应的,所述设备还包括第三解析模块,用于解析所述命令接收模块接收到的所述注销请求命令获取密钥句柄,删除所述存储模块中的与所述密钥句柄对应的用户应用公私钥对,触发所述命令响应模块;相应的,所述命令响应模块,还用于根据所述第三解析模块的执行结果向客户端返回包含注销结果的响应码。

进一步的,所述命令接收模块,还用于接收客户端下发的认证请求命令;相应的,所述设备还包括第一判断模块、第四解析模块、第二签名模块和更新模块;

所述第一判断模块,用于判断所述用户交互模块是否接收到用户确认操作;

所述第四解析模块,用于解析所述命令接收模块接收到的所述认证请求命令获取第一参数、第二参数和密钥句柄;

所述第二签名模块,用于根据所述密钥句柄获得用户应用私钥,获取计数器的当前计数值,根据所述第一参数、第二参数、当前计数值组成第二待签名数据,使用所述用户应用私钥对所述第二待签名数据进行签名得到第二签名结果,触发所述命令响应模块和更新模块;

所述命令响应模块,还用于收到所述第二签名模块的触发时根据所述当前计数值和所述第二签名结果组成认证请求命令响应数据并返回给所述客户端;

所述更新模块,用于更新所述计数器的当前计数值。

进一步的,所述设备还包括配置模块;所述命令接收模块还用于接收客户端下发的设备配置命令,并触发所述配置模块;所述配置模块,用于根据所述设备配置命令的数据域确定当前签名算法类型,并触发所述命令响应模块;相应的,所述命令响应模块,还用于在收到所述配置模块的触发时向所述客户端返回表示命令执行成功的响应数据。

进一步的,所述命令接收模块还用于接收客户端下发的获取设备信息命令,并触发命令响应模块;相应的,所述命令响应模块,还用于在收到所述命令接收模块的触发时向所述客户端返回包含硬件身份标识码的响应数据。

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

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