CN105634742B - 一种协商会话密钥的方法及智能密钥设备 - Google Patents
一种协商会话密钥的方法及智能密钥设备 Download PDFInfo
- Publication number
- CN105634742B CN105634742B CN201511001009.5A CN201511001009A CN105634742B CN 105634742 B CN105634742 B CN 105634742B CN 201511001009 A CN201511001009 A CN 201511001009A CN 105634742 B CN105634742 B CN 105634742B
- Authority
- CN
- China
- Prior art keywords
- key
- host computer
- intelligent cipher
- public key
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
Abstract
本发明公开一种协商会话密钥的方法及智能密钥设备,属于信息安全领域。该方法包括:智能密钥设备接收来自上位机的第三APDU指令,将协商公钥返回上位机;接收来自上位机的第四APDU指令,将签名结果返回上位机;智能密钥设备接收来自上位机的第五APDU指令,解析第五APDU指令得到加密数据,使用协商私钥对加密数据进行解密得到第二填充数据,判断第二填充数据的填充格式是否为预设的填充格式,如果是,则从第二填充数据的预定位置提取预设长度的数据作为会话密钥、向上位机返回成功响应,否则向上位机返回异常信息。本发明方法生成的会话密钥抗攻击能力强,上位机与智能密钥设备间传输的信息使用会话密钥加密后很难被恶意程序截取。
Description
技术领域
本发明属于信息安全领域,尤其涉及一种协商会话密钥的方法及智能密钥设备。
背景技术
随着电子信息科技的快速发展,通过互联网进行的网络通信(如网络交易、系统登陆等)日渐普及,由于互联网的虚拟特性,一些不法分子利用病毒、木马或其他恶意程序很容易截获互联网中传输的信息。为了防止信息被非法截取,通信双方首先通过协商生成一个会话密钥,将所传输的信息通过会话密钥加密。现有技术中协商会话密钥的方法大部分是通过智能密钥设备中的认证私钥与上位机中的认证公钥进行协商产生会话密钥,使用会话密钥进行密文通信。
现有的这种协商会话密钥的方法存在以下缺陷:上位机和智能密钥设备只采用一对固定密钥(认证公钥和认证私钥)进行协商生成会话密钥,协商模式简单,恶意程序盗取固定密钥后能够轻易的将会话密钥破解,从而截获正在传输的信息;智能密钥设备中保存认证私钥,在上位机与智能密钥设备通信过程中容易产生认证私钥的外泄,使会话密钥的安全性降低。
发明内容
本发明为解决上述现有技术中存在的技术问题提供一种协商会话密钥的方法以及智能密钥设备。
本发明提供的一种协商会话密钥的方法,包括以下步骤:
步骤S1:智能密钥设备接收来自上位机的第三APDU指令,将自身保存的协商密钥对中的协商公钥返回给所述上位机;接收来自所述上位机的第四APDU指令,将自身保存的签名结果返回给所述上位机;
步骤S2:所述智能密钥设备接收来自所述上位机的第五APDU指令,解析所述第五APDU指令,得到加密数据,使用所述协商密钥对中的协商私钥对所述加密数据进行解密得到第二填充数据,判断所述第二填充数据的填充格式是否为预设的填充格式,如果是,则执行步骤S3;否则向所述上位机返回异常信息;
步骤S3:所述智能密钥设备从所述第二填充数据的预定位置提取预设长度的数据作为会话密钥,向所述上位机返回成功响应。
具体地,上述方法中,所述签名结果具体为生产工具或密钥存储装置使用预设的认证私钥对所述协商公钥进行签名得到的签名结果。
进一步地,上述方法中,所述步骤S1之前,还包括:
步骤A1:所述智能密钥设备接收来自生产工具的第一APDU指令,将所述协商公钥返回给所述生产工具;
步骤A2:所述智能密钥设备接收来自所述生产工具的第二APDU指令,解析所述第二APDU指令得到所述签名结果,使用预设的认证公钥和所述协商公钥对所述签名结果进行验证,如果验证通过,则保存所述签名结果,向所述生产工具返回成功响应,执行所述步骤S1;否则验证失败,向所述生产工具返回异常信息。
进一步地,上述步骤A1中,所述智能密钥设备接收来自所述生产工具的第一APDU指令之前,还包括:
所述智能密钥设备生成所述协商密钥对,所述协商密钥对包括所述协商公钥和所述协商私钥;
或者,上述步骤A1中,所述智能密钥设备接收来自所述生产工具的第一APDU指令之后,还包括:
所述智能密钥设备生成所述协商密钥对,所述协商密钥对包括所述协商公钥和所述协商私钥。
优选地,上述步骤A2中所述智能密钥设备使用预设的认证公钥和所述协商公钥对所述签名结果进行验证,具体为:
步骤A21:所述智能密钥设备使用所述预设的认证公钥对所述签名结果进行解密,得到第一填充数据,从所述第一填充数据中提取第一运算结果;对所述协商公钥做哈希运算,得到第二运算结果;
步骤A22:所述智能密钥设备判断所述第一运算结果是否与所述第二运算结果相等,如果是,则验证通过,保存所述签名结果,并向所述生产工具返回成功响应,执行所述步骤S1;否则,验证失败,向所述生产工具返回异常信息。
优选地,上述步骤A2中,所述智能密钥设备接收来自所述生产工具的第二APDU指令之后、解析所述第二APDU指令得到所述签名结果之前,还包括:
所述智能密钥设备判断自身保存的控制数据是否更新,如果是,则向所述生产工具返回异常信息;
当所述智能密钥设备判断所述控制数据未更新时,所述智能密钥设备解析所述第二APDU指令得到所述签名结果之后,还包括:所述智能密钥设备更新所述控制数据;
所述智能密钥设备解析所述第二APDU指令得到所述签名结果,具体为:
当所述智能密钥设备判断所述控制数据未更新时,所述智能密钥设备解析所述第二APDU指令得到所述签名结果。
进一步地,上述步骤A2之前,还包括:
所述生产工具使用预设的认证私钥对所述协商公钥进行签名得到所述签名结果,并根据所述签名结果生成所述第二APDU指令;
优选地,所述生产工具使用预设的认证私钥对所述协商公钥进行签名得到所述签名结果,具体为:
步骤D11:所述生产工具对所述协商公钥做哈希运算,得到第一运算结果,并将所述第一运算结果进行填充生成第一填充数据;
步骤D12:所述生产工具使用所述预设的认证私钥对所述第一填充数据进行签名,得到所述签名结果;
或者,上述步骤A2之前,还包括:
所述生产工具接收来自密钥存储装置的所述签名结果,并根据所述签名结果生成所述第二APDU指令;
优选地,所述生产工具接收来自密钥存储装置的所述签名结果之前,还包括:
步骤L1:所述生产工具根据所述协商公钥生成第六APDU指令,并将所述第六APDU指令发送给所述密钥存储装置;
步骤L2:所述密钥存储装置解析所述第六APDU指令得到所述协商公钥,使用预设的认证私钥对所述协商公钥进行签名,得到所述签名结果;
优选地,所述步骤L2中,所述密钥存储装置使用预设的认证私钥对所述协商公钥进行签名,得到所述签名结果,具体为:
步骤L21:所述密钥存储装置对所述协商公钥做哈希运算生成第一运算结果,并将所述第一运算结果进行填充生成第一填充数据;
步骤L22:所述密钥存储装置使用所述预设的认证私钥对所述第一填充数据进行签名,得到所述签名结果。
进一步地,上述方法中,所述步骤S2之前,还包括:
步骤S201:所述上位机接收来自所述智能密钥设备返回的所述协商公钥和所述签名结果,使用预设的认证公钥和所述协商公钥对所述签名结果进行验证,如果验证通过,则执行步骤S202;否则报错,结束流程;
步骤S202:所述上位机生成随机数,将所述随机数进行填充生成所述第二填充数据,使用所述协商公钥对所述第二填充数据进行加密,得到所述加密数据,根据所述加密数据生成所述第五APDU指令;
所述步骤S3之后,还包括:
步骤S4:所述上位机将生成的所述随机数作为所述会话密钥。
优选地,上述步骤S201中,所述上位机使用预设的认证公钥和所述协商公钥对所述签名结果进行验证,具体为:
步骤S2011:所述上位机使用所述预设的认证公钥对所述签名结果进行解密,得到第一填充数据,提取所述第一填充数据中的第一运算结果;对所述协商公钥做哈希运算生成第三运算结果;
步骤S2012:所述上位机判断所述第一运算结果是否与所述第三运算结果相等,如果是,则验证通过,执行所述步骤S202;否则报错,结束流程。
本发明提供的一种智能密钥设备,包括:
第一接收模块,用于接收来自上位机的第三APDU指令;接收来自所述上位机的第四APDU指令;
第一发送模块,用于将自身保存的协商密钥对中的协商公钥返回给所述上位机;用于将自身保存的签名结果返回给所述上位机;
具体地,所述签名结果具体为生产工具或密钥存储装置使用预设的认证私钥对所述协商公钥进行签名得到的签名结果。
第二接收模块,用于接收来自所述上位机的第五APDU指令;
第一获取模块,用于解析所述第二接收模块接收的所述第五APDU指令得到加密数据,使用所述协商密钥对中的协商私钥对所述加密数据进行解密得到第二填充数据;
判断模块,用于判断所述第一获取模块得到的所述第二填充数据的填充格式是否为预设的填充格式;
提取模块,用于当所述判断模块判断所述第二填充数据的填充格式为预设的填充格式时,从所述第一获取模块得到的所述第二填充数据的预定位置提取预设长度的数据作为会话密钥;
第二发送模块,用于当所述判断模块判断所述第二填充数据的填充格式不是预设的填充格式时,向所述上位机返回异常信息;用于当所述判断模块判断所述第二填充数据的填充格式为预设的填充格式时,向所述上位机返回成功响应。
进一步地,上述智能密钥设备,还包括第三接收模块、第三发送模块、第四接收模块、第四发送模块、第二获取模块、存储模块和验证模块;
所述第三接收模块,用于接收来自所述生产工具的第一APDU指令;
所述第三发送模块,用于将所述协商公钥返回给所述生产工具;
所述第四接收模块,用于接收来自所述生产工具的第二APDU指令;
所述第二获取模块,用于解析所述第四接收模块接收的所述第二APDU指令得到所述签名结果;
所述验证模块,用于使用预设的认证公钥和所述协商公钥对所述第二获取模块得到的所述签名结果进行验证;
所述第四发送模块,用于当所述验证模块使用所述预设的认证公钥和所述协商公钥验证所述签名结果通过时,向所述生产工具返回成功响应;当所述验证模块使用所述预设的认证公钥和所述协商公钥验证所述签名结果失败时,向所述生产工具返回异常信息;
所述存储模块,用于当所述验证模块使用所述预设的认证公钥和所述协商公钥验证所述签名结果通过时,保存所述签名结果。
可选地,所述第二获取模块,还用于生成所述协商密钥对,所述协商密钥对包括所述协商公钥和所述协商私钥。
优选地,上述验证模块,具体用于使用所述预设的认证公钥对所述第二获取模块得到的所述签名结果进行解密,得到第一填充数据,从所述第一填充数据中提取第一运算结果;对所述协商公钥做哈希运算,得到第二运算结果;判断所述第一运算结果是否与所述第二运算结果相等;
相应地,所述第四发送模块,具体用于当所述验证模块判断所述第一运算结果与所述第二运算结果相等时,向所述生产工具返回成功响应;当所述验证模块判断所述第一运算结果与所述第二运算结果不相等时,向所述生产工具返回异常信息;
所述存储模块,具体用于当所述验证模块判断所述第一运算结果与所述第二运算结果相等时,保存所述签名结果。
进一步地,上述智能密钥设备还包括更新模块,
所述判断模块,还用于判断所述智能密钥设备保存的控制数据是否更新;
所述第四发送模块,还用于当所述判断模块判断所述控制数据已经更新时,向所述生产工具返回异常信息;
所述更新模块,用于当所述判断模块判断所述控制数据未更新时,更新所述控制数据;
相应地,所述第二获取模块,具体用于当所述判断模块判断所述控制数据未更新时,解析所述第四接收模块接收的所述第二APDU指令得到所述签名结果。
本发明与现有技术相比的有益效果是:智能密钥设备与上位机使用上位机中预设的认证公钥、智能密钥设备中的协商密钥对(包括协商公钥和协商私钥)和智能密钥设备中的签名结果进行协商生成会话密钥,上位机与智能密钥设备使用会话密钥对传输的信息进行加密。由于本发明中协商生成会话密钥的协商模式复杂,使协商生成的会话密钥不易被恶意程序破解、抗攻击能力比较强,因此传输的信息使用会话密钥加密后很难被恶意程序截取。另外,在本发明中,智能密钥设备中只保存签名结果不保存认证私钥,在上位机与智能密钥设备传输信息时可以保证认证私钥不被盗取,加强了认证私钥的保密力度。
附图说明
图1所示为本发明实施例1中协商会话密钥的方法流程图;
图2-图3所示为本发明实施例2中协商会话密钥的方法流程图;
图4所示为本发明实施例2中智能密钥设备初始化的密钥协商方法流程图;
图5所示为本发明实施例4中协商会话密钥的方法流程图;
图6-图8所示为本发明实施例5中会话密钥的使用方法流程图;
图9所示为本发明实施例6中智能密钥设备的模块组成框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本实施例提供了一种协商会话密钥的方法,以智能密钥设备为操作主体进行介绍,如图1所示,包括以下步骤:
步骤201:智能密钥设备接收来自上位机的第三APDU指令,将自身保存的协商密钥对中的协商公钥返回给上位机;接收来自上位机的第四APDU指令,将自身保存的签名结果返回给上位机。
可选地,步骤201还可以为:智能密钥设备先接收来自上位机的第四APDU指令,将自身保存的签名结果返回给上位机;再接收来自上位机的第三APDU指令,将自身保存的协商秘钥对中的协商公钥返回给上位机。
具体地,第三APDU指令为读取协商公钥的APDU指令。
例如,第三APDU指令为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x80 | 0xAA | 0x3F | 0x00 | 无 | 无 | 0x00 |
具体地,第四APDU指令为读取签名结果的APDU指令。
例如,第四APDU指令为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x80 | 0xAB | 0x3F | 0x00 | 无 | 无 | 0x00 |
具体地,上述签名结果为生产工具或密钥存储装置使用预设的认证私钥对协商公钥进行签名得到的签名结果。
可选地,在步骤201中智能密钥设备接收来自上位机的第三APDU指令之前还包括,智能密钥设备与上位机建立连接。
步骤202:智能密钥设备接收来自上位机的第五APDU指令,解析第五APDU指令,得到加密数据,使用协商密钥对中的协商私钥对加密数据进行解密得到第二填充数据,判断第二填充数据的填充格式是否为预设的填充格式,如果是,则执行步骤203;否则向上位机返回异常信息。
例如,第五APDU指令为:
具体地,第二填充数据预设的填充格式为:
第1字节 | 第2字节 | 第3~119字节 | 第120字节 | 第121~128字节 |
0x00 | 0x02 | 非0随机数 | 0x00 | 随机数 |
步骤203:智能密钥设备从第二填充数据的预定位置提取预设长度的数据作为会话密钥,向上位机返回成功响应。
具体地,向上位机返回的成功响应具体为:向上位机返回的状态码为9000。
具体地,步骤203中的会话秘钥具体为八字节的随机数。
优选地,会话密钥为对称密钥。使用对称密钥在通信层做加密和解密的速度比非对称密钥快,传输效率高。
在本实施例中,步骤203之后,上位机与智能密钥设备通过会话密钥对所传输的数据进行加密和解密,具体会话密钥的使用方法参考实施例5,在此不再赘述。
进一步地,在步骤201之前,还包括:
步骤A01:智能密钥设备接收来自生产工具的第一APDU指令,将协商密钥对中的协商公钥返回给生产工具。
具体地,第一APDU指令为读取协商密钥的APDU指令。
例如,第一APDU指令具体为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x80 | 0xAA | 0x3F | 0x00 | 无 | 无 | 0x00 |
步骤A02:智能密钥设备接收来自生产工具的第二APDU指令,解析第二APDU指令得到签名结果,使用预设的认证公钥和协商公钥对签名结果进行验证,如果验证通过,则保存签名结果,向生产工具返回成功响应,执行步骤201;否则验证失败,向生产工具返回异常信息。
具体地,智能密钥设备向生产工具返回成功响应具体为:智能密钥设备向生产工具返回的状态码为9000。
具体地,第二APDU指令为导入签名结果的APDU指令。
例如,第二APDU指令具体为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x00 | 0x2C | 0x2C | 0x4F | 0x80 | 签名结果 | 无 |
可选地,步骤A01中,智能密钥设备接收来自生产工具的第一APDU指令之前,还包括:
智能密钥设备生成协商密钥对,协商密钥对包括协商公钥和协商私钥;
或者,步骤A01中,智能密钥设备接收来自生产工具的第一APDU指令之后,还包括:
智能密钥设备生成协商密钥对,协商密钥对包括协商公钥和协商私钥。
优选地,步骤A02中智能密钥设备使用认证公钥和协商公钥对签名结果进行验证,具体为:
步骤A021:智能密钥设备使用预设的认证公钥对签名结果进行解密,得到第一填充数据,从第一填充数据中提取第一运算结果;对协商公钥做哈希运算,得到第二运算结果;
步骤A022:智能密钥设备判断第一运算结果是否与第二运算结果相等,如果是,则验证通过,保存签名结果,向生产工具返回成功响应,执行步骤201;否则,验证失败,向生产工具返回异常信息。
具体地,第一运算结果为第一散列值,第二运算结果具体为第二散列值。
具体地,智能密钥设备判断第一运算结果是否与第二运算结果相等,具体为:智能密钥设备判断第一散列值是否与第二散列值相等。
例如,第一填充数据的填充格式为:
第1字节 | 第2字节 | 第3~107字节 | 第108字节 | 第109~128字节 |
0x00 | 0x02 | 非0随机数 | 0x00 | 第一运算结果 |
在步骤A02中,智能密钥设备接解析第二APDU指令得到签名结果之后,可以先使用预设的认证公钥对签名结果进行解密得到第一填充数据,并提取第一填充数据中的第一运算结果,再对协商公钥做哈希运算生成第二运算结果;
或者,智能密钥设备先对协商公钥做哈希运算生成第二运算结果;再使用预设的认证公钥对签名结果进行解密,得到第一填充数据,并提取第一填充数据中的第一运算结果。
优选地,步骤A02中,智能密钥设备接收来自生产工具的第二APDU指令之后、解析第二APDU指令得到签名结果之前之前,还包括:
智能密钥设备判断自身保存的控制数据是否更新,如果是,则向生产工具返回异常信息;
相应地,当智能密钥设备判断自身保存的控制数据未更新时,智能密钥设备解析第二APDU指令得到签名结果之后,还包括:智能密钥设备更新控制数据;
相应地,智能密钥设备解析第二APDU指令得到签名结果,具体为:
当智能密钥设备判断数据未更新时,智能密钥设备解析第二APDU指令得到签名结果。
智能密钥设备通过控制数据控制签名结果的导入次数,在本实施例中,智能密钥设备中只允许导入一次签名结果,当智能密钥设备将签名结果导入并保存后,智能密钥设备对自身保存的控制数据进行更新,控制数据更新之后再也不能导入签名结果,如此可以防止一些恶意程序随意导入签名结果。
在步骤A02中,智能密钥设备保存签名结果、向生产工具返回成功响应之后,还包括智能密钥设备的PKI初始化过程,PKI初始化过程包括初始化密钥协商和初始化密文通信两个阶段,初始化密钥协商的方法参考实施例2中的步骤1121—步骤1127,由于初始化密文通信不属于本发明保护的范围,在此不进行详细说明。
可选地,在智能密钥设备接收来自生产工具的第一APDU指令之前,还包括智能密钥设备与生产工具建立连接。
可选地,在智能密钥设备完成初始化密钥协商和初始化密文通信之后、智能密钥设备与上位机建立连接之前,还包括:
智能密钥设备与生产工具解除连接。
在本实施例的步骤A01之后、步骤A02之前,还包括生产工具的工作步骤,具体包括:
生产工具使用预设的认证私钥对协商公钥进行签名得到签名结果,并根据签名结果生成上述第二APDU指令;
优选地,生产工具使用预设的认证私钥对协商公钥进行签名生成签名结果,具体为:
步骤M11:生产工具对协商公钥做哈希运算,得到第一运算结果,并将第一运算结果进行填充生成上述第一填充数据;
步骤M12:生产工具使用预设的认证私钥对第一填充数据进行签名,得到签名结果;
或者,在本实施例的步骤A01之后、步骤A02之前,还包括生产工具和密钥存储装置的工作步骤,具体包括:
生产工具接收来自密钥存储装置的签名结果,并根据签名结果生成上述第二APDU指令。
进一步地,生产工具接收来自密钥存储装置的签名结果之前,还包括:
步骤N1:生产工具根据协商公钥生成第六APDU指令,并将第六APDU指令发送给密钥存储装置;
具体地,密钥存储装置用于存储认证私钥,并使用认证私钥对协商公钥进行签名得到签名结果。例如,密钥存储装置可以为存储认证私钥的智能密钥设备。
具体地,第六APDU指令为对协商公钥签名的APDU指令。
例如,第六APDU指令具体为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x80 | 0xAC | 0x3F | 0x00 | 0x8A | 协商公钥 | 0x00 |
步骤N2:密钥存储装置解析第六APDU指令得到协商公钥,使用预设的认证私钥对协商公钥进行签名,得到上述签名结果。
优选地,步骤N2中密钥存储装置使用认证私钥对协商公钥进行签名,得到签名结果,具体为:
步骤N21:密钥存储装置对协商公钥做哈希运算生成第一运算结果,并将第一运算结果进行填充生成上述第一填充数据;
步骤N22:密钥存储装置使用预设的认证私钥对第一填充数据进行签名,得到上述签名结果。
进一步地,在本实施例的步骤202之前,还包括上位机的工作步骤,具体包括:
步骤T1:上位机接收来自智能密钥设备返回的协商公钥和签名结果,使用预设的认证公钥和协商公钥对签名结果进行验证,如果验证通过,则执行步骤T2;否则报错,结束流程;
具体地,步骤T1中上位机接收的来自智能密钥设备返回的签名结果为生产工具或密钥存储装置使用预设的认证私钥对协商公钥进行签名得到的签名结果;
步骤T2:上位机生成随机数,将随机数进行填充生成上述第二填充数据,使用协商公钥对第二填充数据加密生成,得到加密数据,根据加密数据生成上述第五APDU指令;
在上述步骤203之后,还包括:
步骤204:上位机将生成的随机数作为会话密钥。
在步骤204之后,上位机与智能密钥设备通过会话密钥对传输的数据进行加密和解密,具体会话密钥的使用方法参考实施例5,在此不再赘述。
优选地,步骤T1中,上位机使用预设的认证公钥和协商公钥对签名结果进行验证,具体为:
步骤T11:上位机使用预设的认证公钥对签名结果进行解密,得到第一填充数据,提取第一填充数据中的第一运算结果;对协商公钥做哈希运算生成第三运算结果;
步骤T12:上位机判断第一运算结果是否与第三运算结果相等,如果是,则验证通过,执行步骤T2;否则报错,结束流程。
在本实施例中,智能密钥设备与上位机使用上位机中预设的认证公钥、智能密钥设备中的协商密钥对(包括协商公钥和协商私钥)和智能密钥设备中的签名结果进行协商生成会话密钥,上位机与智能密钥设备使用会话密钥对传输的信息进行加密。由于本实施例提供的协商方法生成会话密钥的协商模式复杂,使协商生成的会话密钥不易被恶意程序破解、抗攻击能力比较强,因此传输的信息使用会话密钥加密后很难被恶意程序截取。智能密钥设备中只保存由生产工具导入的签名结果不保存认证私钥,在上位机与智能密钥设备协商会话密钥时可以保证认证私钥不被盗取;另外,将存有认证私钥的密钥存储装置或生产工具交给专人管理,相关开发人员只对智能密钥设备进行操作,不对保存有认证私钥的密钥存储装置或生产工具进行操作,在认证私钥的管理上也加强了保密力度。
实施例2
本实施例提供了一种协商会话密钥系统的工作方法,应用于包括上位机、智能密钥设备、生产工具和密钥存储装置组成的系统中,如图2和图3所示,包括以下步骤:
步骤101:智能密钥设备生成协商密钥对,接收来自生产工具的第一APDU指令。
在本实施例中,步骤101具体为:智能密钥设备上电自动生成协商密钥对,接收来自生产工具的第一APDU指令;
或者,智能密钥设备上电,接收到来自生产工具的第一APDU指令后生成协商密钥对。
具体地,第一APDU指令为读取协商公钥的APDU指令。
例如,第一APDU指令具体为:
具体地,步骤101中的协商密钥对包括协商公钥和协商私钥。
步骤102:智能密钥设备向生产工具发送协商密钥对中的协商公钥。
步骤103:生产工具根据协商公钥生成第六APDU指令。
步骤104:生产工具向密钥存储装置发送第六APDU指令。
具体地,密钥存储装置用于存储认证私钥,并使用预设的认证私钥对协商公钥进行签名得到签名结果。例如,密钥存储装置可以为存储认证私钥的智能密钥设备。
具体地,第六APDU指令为对协商公钥签名的APDU指令。
例如,第六APDU指令具体为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x80 | 0xAC | 0x3F | 0x00 | 0x8A | 协商公钥 | 0x00 |
步骤105:密钥存储装置解析第六APDU指令得到协商公钥,对协商公钥做哈希运算生成第一运算结果,并将第一运算结果进行填充生成第一填充数据。
具体地:第一运算结果为第一散列值。
例如,第一填充数据的填充格式具体为:
第1字节 | 第2字节 | 第3~107字节 | 第108字节 | 第109~128字节 |
0x00 | 0x02 | 非0随机数 | 0x00 | 第一运算结果 |
步骤106:密钥存储装置使用预设的认证私钥对第一填充数据进行签名,得到签名结果。
步骤107:密钥存储装置向生产工具返回签名结果。
步骤108:生产工具根据签名结果生成第二APDU指令。
步骤109:生产工具向智能密钥设备发送第二APDU指令。
具体地,第二APDU指令为导入签名结果的APDU指令。
例如,第二APDU指令具体为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x00 | 0x2C | 0x2C | 0x4F | 0x80 | 签名结果 | 无 |
步骤110:智能密钥设备解析第二APDU指令得到签名结果,使用预设的认证公钥对签名结果进行解密,得到第一填充数据,从第一填充数据中提取第一运算结果;对协商公钥做哈希运算生成第二运算结果。
具体地,第二运算结果具体为第二散列值。
在步骤110中,智能密钥设备解析第二APDU指令获取得到签名结果之后,可以先使用预设的认证公钥对签名结果解密,得到第一填充数据,从第一填充数据中提取第一运算结果,再对协商公钥做哈希运算生成第二运算结果;
或者,先对协商公钥做哈希运算生成第二运算结果,再使用预设的认证公钥对签名结果解密得到第一填充数据,从第一填充数据中提取第一运算结果。
步骤111:智能密钥设备判断第一运算结果是否与第二运算结果相等,如果是,则执行步骤112;否则向生产工具返回异常信息。
具体地,智能密钥设备判断第一运算结果是否与第二运算结果相等,具体为:
智能密钥设备判断第一散列值是否与第二散列值相等。
步骤112:智能密钥设备保存签名结果,向生产工具返回成功响应。
具体地,智能密钥设备向生产工具返回的成功响应具体为:向生产工具返回的状态码为9000。
步骤113:智能密钥设备接收来自上位机的第三APDU指令。
具体地,第三APDU指令为读取协商公钥的APDU指令。
例如,第三APDU指令为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x80 | 0xAA | 0x3F | 0x00 | 无 | 无 | 0x00 |
步骤114:智能密钥设备向上位机返回协商密钥对中的协商公钥。
步骤115:上位机向智能密钥设备发送第四APDU指令。
具体地,第四APDU指令为读签名结果的APDU指令。
例如,第四APDU指令为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x80 | 0xAB | 0x3F | 0x00 | 无 | 无 | 0x00 |
步骤116:智能密钥设备向上位机返回签名结果。
步骤117:上位机使用预设的认证公钥对签名结果进行解密得到第一填充数据,提取第一填充数据中的第一运算结果。
具体地,第一运算结果为第一散列值。
步骤118:上位机对协商公钥做哈希运算生成第三运算结果。
具体地,第三运算结果为第三散列值。
步骤119:上位机判断第一运算结果是否与第三运算结果相等,如果是,则执行步骤120;否则报错,结束流程。
具体地,上位机判断第一运算结果是否与第三运算结果相等,具体为:
上位机判断第一散列值是否与第三散列值相等。
步骤120:上位机生成随机数,将随机数进行填充生成第二填充数据,使用协商公钥对第二填充数据加密生成加密数据,根据加密数据组织第五APDU指令。
具体地,第二填充数据的填充格式为:
第1字节 | 第2字节 | 第3~119字节 | 第120字节 | 第121~128字节 |
0x00 | 0x02 | 非0随机数 | 0x00 | 随机数 |
例如,第五APDU指令为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x00 | 0x2C | 0x2C | 0x4A | 0x80 | 加密数据 | 0x00 |
具体地,上位机生成的随机数为八字节的随机数。
步骤121:上位机向智能密钥设备发送第五APDU指令。
步骤122:智能密钥设备解析第五APDU指令得到加密数据,使用协商密钥对中的协商私钥对加密数据进行解密得到第二填充数据,判断第二填充数据的填充格式是否为预设的填充格式,如果是,则执行步骤123;否则向上位机返回异常信息。
具体地,第二填充数据正确的填充格式为:
第1字节 | 第2字节 | 第3~119字节 | 第120字节 | 第121~128字节 |
0x00 | 0x02 | 非0随机数 | 0x00 | 随机数 |
步骤123:智能密钥设备从第二填充数据的预定位置提取预设长度的数据作为会话密钥。
优选地,会话密钥为对称密钥,使用对称密钥在通信层做加密和解密速度比非对称密钥快,传输效率也比较高。
具体地,第二填充数据中的随机数为八字节的随机数,与步骤120中上位机生成的随机数相同。
步骤124:智能密钥设备向上位机返回成功响应。
具体地,向上位机返回的成功响应具体为:向上位机返回的状态码为9000。
步骤125:上位机将生成的随机数作为会话密钥。
在步骤125之后,上位机与智能密钥设备通过会话密钥对传输的数据进行加密和解密,具体会话密钥的使用方法参考实施例5,在此不再赘述。
进一步地,在步骤110中智能密钥设备接收来自生产工具的第二APDU指令之后、解析第二APDU指令得到签名结果之前,还包括:
智能密钥设备判断自身保存的控制数据是否更新,如果是,则向生产工具返回异常信息;
当智能密钥设备判断控制数据未更新时,智能密钥设备解析第二APDU指令得到签名结果之后,还包括:智能密钥设备更新控制数据;
智能密钥设备通过自身保存的控制数据控制签名结果的导入次数,在本实施例中,智能密钥设备中只允许导入一次签名结果,当智能密钥设备将签名结果导入并保存后,智能密钥设备对控制数据进行更新,控制数据更新之后再也不能导入签名结果,如此可以防止一些恶意程序随意导入签名结果。
相应地,智能密钥设备解析第二APDU指令得到签名结果,具体为:
当智能密钥设备判断自身保存的控制数据未更新时,智能密钥设备解析第二APDU指令得到签名结果。
在本实施例中,步骤113至步骤118的顺序可以相对调换,例如步骤113至步骤118可以为:
步骤1:智能密钥设备接收来自上位机的第四APDU指令;
步骤2:智能密钥设备向上位机返回签名结果;
步骤3:上位机向智能密钥设备发送第三APDU指令;
步骤4:智能密钥设备向上位机返回协商密钥对中的协商公钥;
步骤5:上位机使用预设的认证公钥对签名结果进行解密得到第一填充数据,提取第一填充数据中的第一运算结果;
步骤6:上位机对协商公钥做哈希运算生成第三运算结果。
其中,步骤5和步骤6的顺序可以调换,即完成步骤4之后可以执行步骤6,再执行步骤5。
或者,步骤113至步骤118可以为:
步骤11:智能密钥设备接收来自上位机的第四APDU指令;
步骤12:智能密钥设备向上位机返回签名结果;
步骤13:上位机使用预设的认证公钥对签名结果进行解密得到第一填充数据,提取第一填充数据中的第一运算结果;
步骤14:上位机向智能密钥设备发送第三APDU指令;
步骤15:智能密钥设备向上位机返回协商密钥对中的协商公钥;
步骤16:上位机对协商公钥做哈希运算生成第三运算结果。
或者,步骤113至步骤118可以为:
步骤21:智能密钥设备接收来自上位机的第三APDU指令;
步骤22:智能密钥设备向上位机返回协商密钥对中的协商公钥;
步骤23:上位机对协商公钥做哈希运算生成第三运算结果;
步骤24:上位机向智能密钥设备发送第四APDU指令;
步骤25:智能密钥设备向上位机返回签名结果;
步骤26:上位机使用预设的认证公钥对签名结果进行解密得到第一填充数据,提取第一填充数据中的第一运算结果。
本实施例中,在步骤112中生产工具接收到智能密钥设备返回的成功响应之后,进入智能密钥设备的PKI初始化过程,PKI初始化过程包括初始化密钥协商和初始化密文通信两个阶段。
其中,初始化密钥协商的方法流程图如图4所示,包括以下步骤:
步骤1121:生产工具生成第一随机数。
具体地,第一随机数为八字节的随机数。
步骤1122:生产工具将生成的第一随机数进行填充生成第三填充数据,使用协商公钥对第三填充数据进行加密生成第一加密数据,根据第一加密数据组织第七APDU指令。
具体地,第三填充数据的格式如下:
第1字节 | 第2字节 | 第3~119字节 | 第120字节 | 第121~128字节 |
0x00 | 0x02 | 非0随机数 | 0x00 | 第一随机数 |
例如,步骤1122中生产工具生成的第七APDU指令如下:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x00 | 0x2C | 0x2C | 0x4A | 0x80 | 第一加密数据 | 0x00 |
步骤1123:生产工具向智能密钥设备发送第七APDU指令。
步骤1124:智能密钥设备解析第七APDU指令得到第一加密数据,使用协商私钥对第一加密数据进行解密得到第三填充数据,并判断第三填充数据的填充格式是否为预设的填充格式,如果是,则执行步骤1125;否则向生产工具返回异常信息。
具体地,步骤1124中第三填充数据预设的填充格式与步骤1122中第三填充数据的填充格式相同。
步骤1125:智能密钥设备从第三填充数据的预定位置提取预设长度的数据作为第一会话密钥。
步骤1126:智能密钥设备向生产工具返回成功响应。
具体地,步骤1126中的成功响应具体为:状态码为9000。
步骤1127:生产工具将生成的第一随机数作为第一会话密钥。
完成初始化密钥协商之后,进入对智能密钥设备初始化的密文通信阶段,在此阶段中,智能密钥设备与生产工具使用第一会话密钥对传输的数据进行加密,与上位机和智能密钥设备使用会话密钥进行密文通信的过程雷同,具体的会话密钥使用方法可参考实施例5,在此不再赘述。
进一步地,智能密钥设备接收到第三APDU指令之前,还包括,与上位机建立连接(即上电)。
可选地,智能密钥设备完成初始化密文通信之后,与上位机建立连接之前,还包括:智能密钥设备与生产工具解除连接。
在本实施例中,智能密钥设备与上位机使用上位机中预设的认证公钥、智能密钥设备中的协商密钥对(包括协商公钥和协商私钥)和智能密钥设备中的签名结果进行协商生成会话密钥,上位机与智能密钥设备使用会话密钥对传输的信息进行加密。由于本实施例提供的协商方法生成会话密钥的协商模式复杂,使协商生成的会话密钥不易被恶意程序破解、抗攻击能力比较强,因此传输的信息使用会话密钥加密后很难被恶意程序截取。另外,在本实施例中,智能密钥设备中只保存签名结果不保存认证私钥,在上位机与智能密钥设备传输信息时可以保证认证私钥不被盗取,加强了认证私钥的保密力度。
在本实施例中,密钥存储装置存放认证私钥,密钥存储装置使用认证私钥对协商公钥进行签名得到签名结果,生产工具将密钥存储装置中的签名结果导入智能密钥设备中,如此智能密钥设备中只保存签名结果不保存认证私钥,在上位机与智能密钥设备进行密文通信时可以保证认证私钥不会被窃取;另外,将存有认证私钥的密钥存储装置交给专人管理,相关开发人员只对智能密钥设备进行操作,不对保存有认证私钥的密钥存储装置操作,如此在认证私钥的管理上也加强了保密力度。
实施例3
本实施例提供了一种协商会话密钥系统的工作方法,应用于包括上位机、智能密钥设备和生产工具组成的系统中。
在本实施例中,将实施例2中的步骤103-步骤108改成步骤C11-步骤C12,其他步骤与实施例2中的相同,即本实施例步骤C11之前的步骤与实施例2中步骤103之前的步骤相同,本实施例中C12之后的步骤与实施例2中步骤108之后的步骤相同,在此不再赘述。
具体地,步骤C11-步骤C12如下:
步骤C11:生产工具对协商公钥做哈希运算生成第一运算结果,并将第一运算结果进行填充生成第一填充数据。
具体地:第一运算结果为第一散列值。
例如,第一填充数据的填充格式具体为:
第1字节 | 第2字节 | 第3~107字节 | 第108字节 | 第109~128字节 |
0x00 | 0x02 | 非0随机数 | 0x00 | 第一运算结果 |
步骤C12:生产工具使用预设的认证私钥对第一填充数据进行签名,得到签名结果,根据签名结果组织第二APDU指令。
具体地,第二APDU指令为导入签名结果的APDU指令。
例如,第二APDU指令具体为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x00 | 0x2C | 0x2C | 0x4F | 0x80 | 签名结果 | 无 |
在本实施例中,智能密钥设备与上位机使用上位机中预设的认证公钥、智能密钥设备中的协商密钥对(包括协商公钥和协商私钥)和智能密钥设备中的签名结果进行协商生成会话密钥,上位机与智能密钥设备使用会话密钥对传输的信息进行加密。由于本实施例提供的协商方法生成会话密钥的协商模式复杂,使协商生成的会话密钥不易被恶意程序破解、抗攻击能力比较强,因此传输的信息使用会话密钥加密后很难被恶意程序截取。另外,在本实施例中,智能密钥设备中只保存签名结果不保存认证私钥,在上位机与智能密钥设备传输信息时可以保证认证私钥不被盗取,加强了认证私钥的保密力度。
在本实施例中,生产工具存放认证私钥,生产工具使用预设的认证私钥对协商公钥进行签名得到签名结果,并将签名结果导入智能密钥设备中,如此智能密钥设备中只保存签名结果不保存认证私钥,在上位机与智能密钥设备进行密文通信时可以保证认证私钥不会被窃取;另外,可将存有认证私钥的生产工具交给专人管理,相关开发人员只对智能密钥设备进行操作,不对存放有认证私钥的生产工具操作,如此在认证私钥的管理上也加强了保密力度。
实施例4
本实施例提供了一种协商会话密钥系统的工作方法,应用于包括上位机、智能密钥设备组成的系统中,如图5所示,包括以下步骤:
步骤301:智能密钥设备生成协商密钥对,接收来自上位机的第一APDU指令。
可选地,在步骤301之前还包括:智能密钥设备与上位机建立连接。
具体地,当智能密钥设备与上位机建立连接时自动产生协商密钥对,然后接收来自上位机的第一APDU指令;
或者,智能密钥设备首先与上位机建立连接,当接收来自上位机的第一APDU指令后生成协商密钥对。
具体地,步骤301中的协商密钥对包括协商公钥和协商私钥。
具体地,第一APDU指令为读取协商公钥的APDU指令。
例如,第一APDU指令具体为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x80 | 0xAA | 0x3F | 0x00 | 无 | 无 | 0x00 |
步骤302:智能密钥设备向上位机返回协商密钥对中的协商公钥。
步骤303:上位机向智能密钥设备发送第二APDU指令。
具体地,第二APDU指令具体为读签名结果的APDU指令。
例如,第二APDU指令具体为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x80 | 0xAC | 0x3F | 0x00 | 无 | 无 | 0x00 |
步骤304:智能密钥设备对协商公钥做哈希运算生成第一运算结果,将第一运算结果进行填充,生成第一填充数据。
具体地:第一运算结果为第一散列值。
例如,第一填充数据的填充格式具体为:
步骤305:智能密钥设备使用预设的认证私钥对第一填充数据签名得到签名结果。
步骤306:智能密钥设备向上位机返回签名结果。
步骤307:上位机使用预设的认证公钥对签名结果进行解密得到第一填充数据,提取第一填充数据中的第一运算结果。
步骤308:上位机对协商公钥做哈希运算,生成第二运算结果。
具体地,第二运算结果为第二散列值。
步骤309:上位机判断第一运算结果是否与第二运算结果相等,如果是,则执行步骤310;否则报错,结束流程。
具体地,上位机判断第一运算结果是否与第二运算结果相等,具体为:
上位机判断第一散列值是否与第二散列值相等。
步骤310:上位机生成随机数。
可选地,上位机生成的随机数可以为八字节的随机数。
步骤311:上位机将随机数进行填充,生成第二填充数据,使用协商公钥对第二填充数据加密,得到加密数据,根据加密数据组织第三APDU指令。
具体地,第二填充数据的填充格式为:
第1字节 | 第2字节 | 第3~119字节 | 第120字节 | 第121~128字节 |
0x00 | 0x02 | 非0随机数 | 0x00 | 随机数 |
具体地,第三APDU指令为:
CLA | INS | P1 | P2 | Lc | Data | Le |
0x00 | 0x2C | 0x2C | 0x4A | 0x80 | 加密数据 | 0x00 |
步骤312:上位机向智能密钥设备发送第三APDU指令。
步骤313:智能密钥设备解析第三APDU指令得到加密数据,使用协商密钥对中的协商私钥对加密数据进行解密得到第二填充数据,判断第二填充数据的填充格式是否为预设的填充格式,如果是,则执行步骤314;否则向上位机返回异常信息。
具体地,步骤313中,第二填充数据预设的填充格式与步骤311中第二填充数据的格式相同。
步骤314:智能密钥设备从第二填充数据的预定位置提取预设长度的数据作为会话密钥。
步骤315:智能密钥设备向上位机返回成功响应。
具体地,向上位机返回的成功响应具体为:向上位机返回的状态码为9000。
具体地,会话密钥为对称密钥。使用对称密钥在通信层做加密和解密过程速度比非对称密钥快,传输效率高。
步骤316:上位机将生成的随机数作为会话密钥。
在步骤316之后,上位机与智能密钥设备通过会话密钥对所传输的数据进行加密和解密,具体会话密钥的使用方法参考实施例5,在此不再赘述。
在本实施例中,认证公钥和认证私钥可以定期由生产密钥的管理程序进行更换。在本发明中,认证公钥和认证私钥在有效期内是固定不变的,如何更换认证公钥和认证私钥不是本发明的说明范围。
在本实施例中,通过智能密钥设备生成的协商密钥对(包括协商公钥和协商私钥)与一对固定密钥(包括认证公钥和认证私钥)进行协商生成会话密钥,通过会话密钥对智能密钥设备与上位机之间传输的信息进行加密。由于通过协商密钥对与一对固定密钥协商生成会话密钥的协商模式复杂,使协商生成的会话密钥不易被恶意程序破解、抗攻击能力比较强,因此密文通信中传输的信息通过会话密钥加密后很难被恶意程序截取。
实施例5
本实施例提供了实施例1、实施例2、实施例3和实施例4中协商方法生成的会话密钥的使用方法,即智能密钥设备与上位机使用会话密钥进行密文通信的实施例,如图6所示,具体包括以下步骤:
步骤W1:上位机使用会话密钥对APDU指令加密得到第一密文数据,将第一密文数据发送给智能密钥设备。
步骤W2:智能密钥设备使用会话密钥对第一密文数据进行解密,得到第一解密数据。
具体地,第一解密数据为步骤W1中的APDU指令。
步骤W3:智能密钥设备对第一解密数据进行处理,得到需要返回的数据。
步骤W4:智能密钥设备对需要返回的数据使用会话密钥加密得到第二密文数据,将第二密文数据返回上位机。
步骤W5:上位机使用会话密钥对第二密文数据进行解密,得到第二解密数据。
具体地,第二解密数据即为需要从智能密钥设备传输给上位机的数据。
本实施例提供了一个协商密钥使用方法的具体实施例,如图7所示为上位机使用会话密钥取随机数的例子,具体步骤如下:
步骤C1:上位机使用会话密钥对取随机数的APDU指令加密得到第一密文数据,将第一密文数据发送给智能密钥设备。
例如,步骤C1中取随机数的APDU指令如下:
CLA | INS | P1 | P2 | Lc | Data |
0x00 | 0x84 | 0x00 | 0x00 | 0x08 | 0x00 |
步骤C2:智能密钥设备使用会话密钥对第一密文数据进行解密,得到取随机数的APDU指令。
步骤C3:智能密钥设备生成需要返回的数据。
例如,步骤C3中生成的需要返回的数据如下:
DATA | SW1 | SW2 |
随机数 | 90 | 00 |
步骤C4:智能密钥设备对需要返回的数据使用会话密钥加密得到第二密文数据,将第二密文数据返回上位机。
步骤C5:上位机使用会话密钥对第二密文数据进行解密,得到随机数。例如随机数为8字节的随机数。
本实施例还提供了另一个会话密钥的使用方法的具体实施例,如图8所示为上位机使用会话密钥写二进制文件的例子,具体步骤如下:
步骤D1:上位机使用会话密钥对写二进制文件的APDU指令加密得到第一密文数据,将第一密文数据发送给智能密钥设备。
具体地,第一密文数据为使用会话密钥加密后的写二进制文件的APDU指令。
例如,步骤D1中写二进制文件的APDU指令如下:
CLA | INS | P1 | P2 | Lc | Data |
0x00 | 0Xd6 | 0x00 | 0x00 | 0x0f | 00 65 46 53 05 30 07 25 00 76 00 00 82 00 00 |
具体地,Data中对应的数据00 65 46 53 05 30 07 25 00 76 00 00 82 0000为需要写进的二进制文件。
步骤D2:智能密钥设备使用会话密钥对第一密文数据进行解密,得到写二进制文件的APDU指令。
步骤D3:智能密钥设备生成需要返回的数据。
例如,步骤D3中生成的需要返回的数据如下:
SW1 | SW2 |
90 | 00 |
步骤D3中智能密钥设备生成的数据为9000时,则上位机成功将二进制文件写入智能密钥设备。
步骤D4:智能密钥设备对需要返回的数据使用会话密钥加密得到第二密文数据,并将第二密文数据返回上位机。
步骤D5:上位机使用会话密钥对第二密文数据解密,得到返回码。
具体地,如果步骤D5中的返回码为9000,则写入二进制文件成功,如果返回码不是9000,则写入二进制文件失败,结束流程。
在本实施例中,智能密钥设备与上位机之间传输的数据都通过会话密钥进行加密,由于会话密钥的协商模式复杂,恶意程序很难获取传输的数据。
实施例6
本实施例提供一种智能密钥设备,如图9所示,包括:
第一接收模块01,用于接收来自上位机的第三APDU指令;接收来自上位机的第四APDU指令;
第一发送模块02,用于将自身保存的协商密钥对中的协商公钥返回给上位机;用于将自身保存的签名结果返回给上位机;
具体地,签名结果具体为生产工具或密钥存储装置使用预设的认证私钥对协商公钥进行签名得到的签名结果。
第二接收模块03,用于接收来自上位机的第五APDU指令;
第一获取模块04,用于解析第二接收模块03接收的第五APDU指令得到加密数据,使用协商密钥对中的协商私钥对加密数据进行解密得到第二填充数据;
判断模块05,用于判断第一获取模块04得到的第二填充数据的填充格式是否为预设的填充格式;
提取模块06,用于当判断模块05判断第二填充数据的填充格式为预设的填充格式时,从第一获取模块04得到的第二填充数据的预定位置提取预设长度的数据作为会话密钥;
第二发送模块07,用于当判断模块05判断第二填充数据的填充格式不是预设的填充格式时,向上位机返回异常信息;用于当判断模块05判断第二填充数据的填充格式为预设的填充格式时,向上位机返回成功响应。
进一步地,上述智能密钥设备,还包括第三接收模块、第三发送模块、第四接收模块、第四发送模块、第二获取模块、存储模块和验证模块;
第三接收模块,用于接收来自生产工具的第一APDU指令;
第三发送模块,用于将协商公钥返回给生产工具;
第四接收模块,用于接收来自生产工具的第二APDU指令;
第二获取模块,用于解析第四接收模块接收的第二APDU指令得到签名结果;
验证模块,用于使用预设的认证公钥和协商公钥对第二获取模块得到的签名结果进行验证;
第四发送模块,用于当验证模块使用预设的认证公钥和协商公钥验证签名结果通过时,向生产工具返回成功响应;当验证模块使用预设的认证公钥和协商公钥验证签名结果失败时,向生产工具返回异常信息;
存储模块,用于当验证模块使用预设的认证公钥和协商公钥验证签名结果通过时,保存签名结果。
可选地,第二获取模块,还用于生成协商密钥对,协商密钥对包括协商公钥和协商私钥。
优选地,上述验证模块,具体用于使用预设的认证公钥对第二获取模块得到的签名结果进行解密,得到第一填充数据,从第一填充数据中提取第一运算结果;对协商公钥做哈希运算,得到第二运算结果;判断第一运算结果是否与第二运算结果相等;
相应地,第四发送模块,具体用于当验证模块判断第一运算结果与第二运算结果相等时,向生产工具返回成功响应;当验证模块判断第一运算结果与第二运算结果不相等时,向生产工具返回异常信息;
存储模块,具体用于当验证模块判断第一运算结果与第二运算结果相等时,保存签名结果。
进一步地,上述智能密钥设备还包括更新模块,
判断模块05,还用于判断智能密钥设备保存的控制数据是否更新;
相应地,第四发送模块,还用于当判断模块05判断控制数据已经更新时,向生产工具返回异常信息;
更新模块,用于当判断模块05判断控制数据未更新时,更新控制数据;
相应地,第二获取模块,具体用于当判断模块05判断控制数据未更新时,解析第四接收模块接收的第二APDU指令得到签名结果。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (20)
1.一种协商会话密钥的方法,其特征在于,用于包括智能密钥设备和上位机的系统中,包括以下步骤:
所述智能密钥设备执行的步骤包括:
步骤S1:所述智能密钥设备接收来自上位机的第三APDU指令,将自身保存的协商密钥对中的协商公钥返回给所述上位机;接收来自所述上位机的第四APDU指令,将自身保存的签名结果返回给所述上位机;
步骤S2:所述智能密钥设备接收来自所述上位机的第五APDU指令,解析所述第五APDU指令,得到加密数据,使用所述协商密钥对中的协商私钥对所述加密数据进行解密得到第二填充数据,判断所述第二填充数据的填充格式是否为预设的填充格式,如果是,则执行步骤S3;否则向所述上位机返回异常信息;
步骤S3:所述智能密钥设备从所述第二填充数据的预定位置提取预设长度的数据作为会话密钥,向所述上位机返回成功响应;
所述上位机执行的步骤包括:
步骤A1:所述上位机接收来自所述智能密钥设备返回的所述协商公钥和所述签名结果,使用预设的认证公钥和所述协商公钥对所述签名结果进行验证,如果是验证通过,执行步骤A2;否则,报错,结束;
步骤A2:所述上位机生成随机数,将所述随机数进行填充生成第二填充数据,使用所述协商公钥对所述第二填充数据进行加密,得到所述加密数据,根据所述加密数据生成第五APDU指令。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1之前,还包括:
步骤A1:所述智能密钥设备接收来自生产工具的第一APDU指令,将所述协商公钥返回给所述生产工具;
步骤A2:所述智能密钥设备接收来自所述生产工具的第二APDU指令,解析所述第二APDU指令得到所述签名结果,使用预设的认证公钥和所述协商公钥对所述签名结果进行验证,如果验证通过,则保存所述签名结果,向所述生产工具返回成功响应,执行所述步骤S1;否则验证失败,向所述生产工具返回异常信息。
3.根据权利要求2所述的方法,其特征在于,所述步骤A1中,所述智能密钥设备接收来自所述生产工具的第一APDU指令之前,还包括:
所述智能密钥设备生成所述协商密钥对,所述协商密钥对包括所述协商公钥和所述协商私钥。
4.根据权利要求2所述的方法,其特征在于,所述步骤A1中,所述智能密钥设备接收来自所述生产工具的第一APDU指令之后,还包括:
所述智能密钥设备生成所述协商密钥对,所述协商密钥对包括所述协商公钥和所述协商私钥。
5.根据权利要求2所述的方法,其特征在于,所述步骤A2中所述智能密钥设备使用预设的认证公钥和所述协商公钥对所述签名结果进行验证,具体为:
步骤A21:所述智能密钥设备使用所述预设的认证公钥对所述签名结果进行解密,得到第一填充数据,从所述第一填充数据中提取第一运算结果;对所述协商公钥做哈希运算,得到第二运算结果;
步骤A22:所述智能密钥设备判断所述第一运算结果是否与所述第二运算结果相等,如果是,则验证通过,保存所述签名结果,并向所述生产工具返回成功响应,执行所述步骤S1;否则,验证失败,向所述生产工具返回异常信息。
6.根据权利要求2所述的方法,其特征在于,所述步骤A2中,所述智能密钥设备接收来自所述生产工具的第二APDU指令之后、解析所述第二APDU指令得到所述签名结果之前,还包括:
所述智能密钥设备判断自身保存的控制数据是否更新,如果是,则向所述生产工具返回异常信息;
当所述智能密钥设备判断所述控制数据未更新时,所述智能密钥设备解析所述第二APDU指令得到所述签名结果之后,还包括:所述智能密钥设备更新所述控制数据;
所述智能密钥设备解析所述第二APDU指令得到所述签名结果,具体为:
当所述智能密钥设备判断所述控制数据未更新时,所述智能密钥设备解析所述第二APDU指令得到所述签名结果。
7.根据权利要求2所述的方法,其特征在于,所述步骤A2之前,还包括:
所述生产工具使用预设的认证私钥对所述协商公钥进行签名得到所述签名结果,并根据所述签名结果生成所述第二APDU指令。
8.根据权利要求7所述的方法,其特征在于,所述生产工具使用预设的认证私钥对所述协商公钥进行签名得到所述签名结果,具体为:
步骤D11:所述生产工具对所述协商公钥做哈希运算,得到第一运算结果,并将所述第一运算结果进行填充生成第一填充数据;
步骤D12:所述生产工具使用所述预设的认证私钥对所述第一填充数据进行签名,得到所述签名结果。
9.根据权利要求2所述的方法,其特征在于,所述步骤A2之前,还包括:
所述生产工具接收来自密钥存储装置的所述签名结果,并根据所述签名结果生成所述第二APDU指令。
10.根据权利要求9所述的方法,其特征在于,所述生产工具接收来自密钥存储装置的所述签名结果之前,还包括:
步骤L1:所述生产工具根据所述协商公钥生成第六APDU指令,并将所述第六APDU指令发送给所述密钥存储装置;
步骤L2:所述密钥存储装置解析所述第六APDU指令得到所述协商公钥,使用预设的认证私钥对所述协商公钥进行签名,得到所述签名结果。
11.根据权利要求10所述的方法,其特征在于,所述步骤L2中,所述密钥存储装置使用预设的认证私钥对所述协商公钥进行签名,得到所述签名结果,具体为:
步骤L21:所述密钥存储装置对所述协商公钥做哈希运算生成第一运算结果,并将所述第一运算结果进行填充生成第一填充数据;
步骤L22:所述密钥存储装置使用所述预设的认证私钥对所述第一填充数据进行签名,得到所述签名结果。
12.根据权利要求1所述的方法,其特征在于,所述步骤S2之前,还包括:
步骤S201:所述上位机接收来自所述智能密钥设备返回的所述协商公钥和所述签名结果,使用预设的认证公钥和所述协商公钥对所述签名结果进行验证,如果验证通过,则执行步骤S202;否则报错,结束流程;
步骤S202:所述上位机生成随机数,将所述随机数进行填充生成所述第二填充数据,使用所述协商公钥对所述第二填充数据进行加密,得到所述加密数据,根据所述加密数据生成所述第五APDU指令;
所述步骤S3之后,还包括:
步骤S4:所述上位机将生成的所述随机数作为所述会话密钥。
13.根据权利要求12所述的方法,其特征在于,所述步骤S201中,所述上位机使用预设的认证公钥和所述协商公钥对所述签名结果进行验证,具体为:
步骤S2011:所述上位机使用所述预设的认证公钥对所述签名结果进行解密,得到第一填充数据,提取所述第一填充数据中的第一运算结果;对所述协商公钥做哈希运算生成第三运算结果;
步骤S2012:所述上位机判断所述第一运算结果是否与所述第三运算结果相等,如果是,则验证通过,执行所述步骤S202;否则报错,结束流程。
14.根据权利要求1所述的方法,其特征在于,所述签名结果具体为生产工具或密钥存储装置使用预设的认证私钥对所述协商公钥进行签名得到的签名结果。
15.一种协商会话密钥的系统,其特征在于,包括智能密钥设备和上位机
所述智能密钥设备包括:
第一接收模块,用于接收来自上位机的第三APDU指令;接收来自所述上位机的第四APDU指令;
第一发送模块,用于将自身保存的协商密钥对中的协商公钥返回给所述上位机;用于将自身保存的签名结果返回给所述上位机;
第二接收模块,用于接收来自所述上位机的第五APDU指令;
第一获取模块,用于解析所述第二接收模块接收的所述第五APDU指令得到加密数据,使用所述协商密钥对中的协商私钥对所述加密数据进行解密得到第二填充数据;
判断模块,用于判断所述第一获取模块得到的所述第二填充数据的填充格式是否为预设的填充格式;
提取模块,用于当所述判断模块判断所述第二填充数据的填充格式为预设的填充格式时,从所述第一获取模块得到的所述第二填充数据的预定位置提取预设长度的数据作为会话密钥;
第二发送模块,用于当所述判断模块判断所述第二填充数据的填充格式不是预设的填充格式时,向所述上位机返回异常信息;用于当所述判断模块判断所述第二填充数据的填充格式为预设的填充格式时,向所述上位机返回成功响应;
所述上位机包括:
接收模块,用于接收所述智能密钥设备返回的所述协商密钥和所述签名结果;
验证模块,用于使用预设的认证公钥和所述协商公钥对所述签名结果进行验证;
生成模块,用于生成随机数,将所述随机数进行填充生成第二填充数据;
加密模块,用于使用所述协商公钥对所述第二填充数据进行加密得到加密数据,根据所述加密数据生成所述第五APDU指令。
16.根据权利要求15所述的协商会话密钥的系统,其特征在于,还包括第三接收模块、第三发送模块、第四接收模块、第四发送模块、第二获取模块、存储模块和验证模块;
所述第三接收模块,用于接收来自上位机的第一APDU指令;
所述第三发送模块,用于将所述协商公钥返回给所述上位机;
所述第四接收模块,用于接收来自所述上位机的第二APDU指令;
所述第二获取模块,用于解析所述第四接收模块接收的所述第二APDU指令得到所述签名结果;
所述验证模块,用于使用预设的认证公钥和所述协商公钥对所述第二获取模块得到的所述签名结果进行验证;
所述第四发送模块,用于当所述验证模块使用所述预设的认证公钥和所述协商公钥验证所述签名结果通过时,向所述上位机返回成功响应;当所述验证模块使用所述预设的认证公钥和所述协商公钥验证所述签名结果失败时,向所述上位机返回异常信息;
所述存储模块,用于当所述验证模块使用所述预设的认证公钥和所述协商公钥验证所述签名结果通过时,保存所述签名结果。
17.根据权利要求16所述的协商会话密钥的系统,其特征在于,
所述第二获取模块,还用于生成所述协商密钥对,所述协商密钥对包括所述协商公钥和所述协商私钥。
18.根据权利要求16所述的协商会话密钥的系统,其特征在于,
所述验证模块,具体用于使用所述预设的认证公钥对所述第二获取模块得到的所述签名结果进行解密,得到第一填充数据,从所述第一填充数据中提取第一运算结果;对所述协商公钥做哈希运算,得到第二运算结果;判断所述第一运算结果是否与所述第二运算结果相等;
所述第四发送模块,具体用于当所述验证模块判断所述第一运算结果与所述第二运算结果相等时,向所述上位机返回成功响应;当所述验证模块判断所述第一运算结果与所述第二运算结果不相等时,向所述上位机返回异常信息;
所述存储模块,具体用于当所述验证模块判断所述第一运算结果与所述第二运算结果相等时,保存所述签名结果。
19.根据权利要求16所述的协商会话密钥的系统,其特征在于,还包括更新模块,
所述判断模块,还用于判断所述智能密钥设备保存的控制数据是否更新;
所述第四发送模块,还用于当所述判断模块判断所述控制数据已经更新时,向所述上位机返回异常信息;
所述更新模块,用于当所述判断模块判断所述控制数据未更新时,更新所述控制数据;
所述第二获取模块,具体用于当所述判断模块判断所述控制数据未更新时,解析所述第四接收模块接收的所述第二APDU指令得到所述签名结果。
20.根据权利要求15所述的协商会话密钥的系统,其特征在于,所述签名结果具体为上位机或密钥存储装置使用预设的认证私钥对所述协商公钥进行签名得到的签名结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511001009.5A CN105634742B (zh) | 2015-12-28 | 2015-12-28 | 一种协商会话密钥的方法及智能密钥设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511001009.5A CN105634742B (zh) | 2015-12-28 | 2015-12-28 | 一种协商会话密钥的方法及智能密钥设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105634742A CN105634742A (zh) | 2016-06-01 |
CN105634742B true CN105634742B (zh) | 2019-03-05 |
Family
ID=56049298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511001009.5A Active CN105634742B (zh) | 2015-12-28 | 2015-12-28 | 一种协商会话密钥的方法及智能密钥设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105634742B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411653B (zh) * | 2016-10-26 | 2019-03-29 | 飞天诚信科技股份有限公司 | 一种对智能密钥设备进行测试的方法及装置 |
CN108809656B (zh) * | 2018-07-18 | 2021-03-02 | 陕西师范大学 | 一种基于双重认证防护签名的密钥交换协议构造方法 |
CN109068321B (zh) * | 2018-07-19 | 2021-07-02 | 飞天诚信科技股份有限公司 | 协商会话密钥的方法、系统、移动终端及智能家居设备 |
CN109039657B (zh) * | 2018-11-02 | 2021-01-08 | 美的集团股份有限公司 | 密钥协商方法、设备、终端、存储介质以及系统 |
CN109039627A (zh) * | 2018-11-02 | 2018-12-18 | 美的集团股份有限公司 | 密钥协商方法、设备、存储介质以及系统 |
CN111490878B (zh) * | 2020-04-09 | 2021-07-27 | 腾讯科技(深圳)有限公司 | 密钥生成方法、装置、设备及介质 |
CN112054906B (zh) * | 2020-08-21 | 2022-02-11 | 郑州信大捷安信息技术股份有限公司 | 一种密钥协商方法及系统 |
CN113242121B (zh) * | 2021-04-15 | 2023-07-25 | 哈尔滨工业大学 | 一种基于组合加密的安全通信方法 |
CN115412252B (zh) * | 2022-07-07 | 2023-05-23 | 渔翁信息技术股份有限公司 | 一种数据传输方法、传输发起端及传输接收端 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564514A (zh) * | 2004-03-26 | 2005-01-12 | 中兴通讯股份有限公司 | 无线局域网自组网模式共享密钥认证和会话密钥协商方法 |
CN1941701A (zh) * | 2005-09-30 | 2007-04-04 | 三星电子株式会社 | 利用智能卡执行安全功能的设备和方法 |
CN101183938A (zh) * | 2007-10-22 | 2008-05-21 | 华中科技大学 | 一种无线网络安全传输方法、系统及设备 |
CN101662469A (zh) * | 2009-09-25 | 2010-03-03 | 浙江维尔生物识别技术股份有限公司 | 基于USBKey网上银行交易信息认证的方法和系统 |
CN102868526A (zh) * | 2012-08-17 | 2013-01-09 | 上海华申智能卡应用系统有限公司 | 智能卡或usb key保护方法及系统 |
CN105071934A (zh) * | 2015-08-08 | 2015-11-18 | 海门市明阳实业有限公司 | 一种数据有效传输方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890634B2 (en) * | 2005-03-18 | 2011-02-15 | Microsoft Corporation | Scalable session management |
-
2015
- 2015-12-28 CN CN201511001009.5A patent/CN105634742B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564514A (zh) * | 2004-03-26 | 2005-01-12 | 中兴通讯股份有限公司 | 无线局域网自组网模式共享密钥认证和会话密钥协商方法 |
CN1941701A (zh) * | 2005-09-30 | 2007-04-04 | 三星电子株式会社 | 利用智能卡执行安全功能的设备和方法 |
CN101183938A (zh) * | 2007-10-22 | 2008-05-21 | 华中科技大学 | 一种无线网络安全传输方法、系统及设备 |
CN101662469A (zh) * | 2009-09-25 | 2010-03-03 | 浙江维尔生物识别技术股份有限公司 | 基于USBKey网上银行交易信息认证的方法和系统 |
CN102868526A (zh) * | 2012-08-17 | 2013-01-09 | 上海华申智能卡应用系统有限公司 | 智能卡或usb key保护方法及系统 |
CN105071934A (zh) * | 2015-08-08 | 2015-11-18 | 海门市明阳实业有限公司 | 一种数据有效传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105634742A (zh) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105634742B (zh) | 一种协商会话密钥的方法及智能密钥设备 | |
CN103595530B (zh) | 软件密钥更新方法和装置 | |
CN100468438C (zh) | 实现硬件和软件绑定的加密和解密方法 | |
US20170302646A1 (en) | Identity authentication method and apparatus | |
CN108377190A (zh) | 一种认证设备及其工作方法 | |
CN104579679B (zh) | 用于农配网通信设备的无线公网数据转发方法 | |
CN110889696A (zh) | 一种基于sgx技术的联盟区块链秘钥存储方法、装置、设备及介质 | |
WO2016058404A1 (zh) | 基于预共享密钥的实体鉴别方法及装置 | |
CN107888381A (zh) | 一种密钥导入的实现方法、装置及系统 | |
CN105721443B (zh) | 一种链路会话密钥协商方法及装置 | |
CN103067161B (zh) | 一种密钥分发方法及系统 | |
CN101741823B (zh) | 一种交叉验证的安全通讯方法及系统 | |
CN113868672B (zh) | 模组无线固件升级方法、安全芯片和无线固件升级平台 | |
CN103428204A (zh) | 一种可抵御计时攻击的数据安全实现方法及设备 | |
CN108011719A (zh) | 一种签名方法、装置及数字签名系统 | |
CN108900540A (zh) | 一种基于双重加密的配电终端的业务数据处理方法 | |
Kohlweiss et al. | (De-) Constructing TLS | |
CN110300396A (zh) | 智能设备的wifi配网方法、装置及终端 | |
CN101997835B (zh) | 网络安全通讯方法、数据安全处理装置和用于金融的系统 | |
CN106599697B (zh) | 一种安全升级pci密码卡卡内程序的方法及系统 | |
CN113591109B (zh) | 可信执行环境与云端通信的方法及系统 | |
CN101834852B (zh) | 一种保护平台信息的可信OpenSSH的实现方法 | |
CN103916237B (zh) | 对用户加密密钥恢复进行管理的方法和系统 | |
CN108134777A (zh) | 一种基于时间戳的通信加密系统 | |
CN107566125A (zh) | 一种多算法结合的安全认证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |