CN110061848B - 一种安全导入支付终端密钥的方法、支付终端及系统 - Google Patents
一种安全导入支付终端密钥的方法、支付终端及系统 Download PDFInfo
- Publication number
- CN110061848B CN110061848B CN201910310576.0A CN201910310576A CN110061848B CN 110061848 B CN110061848 B CN 110061848B CN 201910310576 A CN201910310576 A CN 201910310576A CN 110061848 B CN110061848 B CN 110061848B
- Authority
- CN
- China
- Prior art keywords
- key
- payment terminal
- module
- certificate
- instruction
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- 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/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
Abstract
本发明公开了一种安全导入支付终端密钥的方法、支付终端及系统;支付终端经过双向认证阶段、下载传输密钥阶段和校验传输密钥阶段后成功导入传输密钥;下载传输密钥阶段密钥注入设备使用第二保护密钥对第一传输密钥加密得到第一密钥块的数据域进行传输,支付终端使用第一保护密钥解密第一密钥块的数据域得到第二传输密钥;本发明的第一保护密钥经过双向认证且以密文的形式进行传输,可以有效地保证通信双方的真实性和可靠性,达到安全通信的目的,安全性更高。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种安全导入支付终端密钥的方法、支付终端及系统。
背景技术
支付终端的主要任务是提供商品和服务的交易数据服务和管理功能,并处理非现金结算。由于其具有非现金结算功能,必须很好地保证支付终端的安全性,例如确保支付终端密钥存储的安全性,才能保证交易过程的安全性。
支付终端对于密钥存储的安全性要求极高,尤其密钥导入环节更为重要,现有技术中,支付终端在密钥下载过程通常使用保护密钥对传输密钥加密后进行传输,由于保护密钥一般都是通过明文的形式从支付终端外部进行导入,存在安全隐患。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种安全导入支付终端密钥的方法、支付终端及系统。
本发明提供了一种安全导入支付终端密钥的方法,包括:
步骤S1:支付终端向密钥注入设备发送操作指令请求;当所述支付终端接收到所述密钥注入设备发送的操作指令时,根据所述操作指令判断认证状态是否合法,如合法则判断所述操作指令的类型,否则报错;
当判断操作指令的类型为双向认证指令时,执行步骤A1;
步骤A1:所述支付终端产生第一随机数并发送给所述密钥注入设备;
步骤A2:所述支付终端接收所述密钥注入设备发送的证书和签名值,根据所述证书、所述签名值和所述第一随机数判断所述密钥注入设备是否合法,是则执行步骤A3,否则报错;所述证书包括加密证书;
步骤A3:所述支付终端产生第三随机数并作为第一保护密钥,使用所述加密证书中的公钥加密所述第一保护密钥得到第二密钥并发送给所述密钥注入设备;
步骤A4:当所述支付终端接收到所述密钥注入设备发送的第二密钥解密成功响应时将所述第一保护密钥导入所述支付终端的密钥容器中,返回步骤S1;
当判断操作指令的类型为下载传输密钥指令时,执行步骤B1;
步骤B1:所述支付终端向所述密钥注入设备发送获取第一密钥块请求;当所述支付终端接收到所述密钥注入设备发送的第一密钥块时,分析所述第一密钥块的头域得到传输密钥索引,对所述传输密钥索引的合法性进行验证,如验证合法则执行步骤B2,否则报错;
步骤B2:所述支付终端检索第一保护密钥是否存在,是则所述支付终端根据所述第一保护密钥分析所述第一密钥块的数据域得到第二传输密钥,并将所述第二传输密钥和所述传输密钥索引进行关联,执行步骤B3,否则报错;
步骤B3:所述支付终端根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用分析得到的所述第二传输密钥替换保存在密钥容器中的第二传输密钥,返回步骤S1,否则保存分析得到的所述第二传输密钥至所述密钥容器中,返回步骤S1;
当判断操作指令的类型为校验传输密钥指令时,执行步骤C1;
步骤C1:所述支付终端向所述密钥注入设备发送随机数请求,当所述支付终端接收到所述密钥注入设备发送的第四随机数时,所述支付终端检索第二传输密钥是否存在于密钥容器中,是则从所述密钥容器中取出所述第二传输密钥,使用所述第二传输密钥对所述第四随机数进行加密得到第一加密值,并将所述第一加密值发送给所述密钥注入设备,执行步骤C2;否则报错;
步骤C2:所述支付终端接收所述密钥注入设备发送的响应,并根据所述响应判断校验传输密钥是否成功,是则安全导入支付终端传输密钥成功,否则重新下载传输密钥,返回步骤S1。
本发明还提供了一种安全导入支付终端密钥的支付终端,包括:
第一发送模块,用于向密钥注入设备发送操作指令请求;
第一接收模块,用于接收所述密钥注入设备发送的操作指令;
第一判断模块,用于根据所述第一接收模块接收到的所述操作指令判断认证状态是否合法,如合法则触发第二判断模块,否则触发第一报错模块;
所述第二判断模块,用于判断所述第一接收模块接收到的所述操作指令的类型,如为双向认证指令触发第一生成发送模块,如为下载传输密钥指令触发第二发送模块,如为校验传输指令触发第三发送模块;
所述第一报错模块,用于报错;
所述第一生成发送模块,用于产生第一随机数,并发送所述第一随机数给所述密钥注入设备;
接收验证模块,用于接收所述密钥注入设备发送的证书和签名值,根据接收到的证书、签名值和所述第一生成发送模块产生的第一随机数判断所述密钥注入设备是否合法,是则触发第二生成发送模块,否则触发所述第一报错模块;所述证书包括加密证书;
所述第二生成发送模块,用于产生第三随机数并作为第一保护密钥,使用所述加密证书中的公钥加密所述第一保护密钥得到第二密钥,并发送所述第二密钥给所述密钥注入设备;
接收导入模块,用于接收所述密钥注入设备发送的第二密钥解密成功响应,并将所述第一保护密钥导入所述支付终端的密钥容器中,触发所述第一发送模块;
所述第二发送模块,用于发送获取第一密钥块请求给所述密钥注入设备;
接收分析模块,用于接收所述密钥注入设备发送的第一密钥块,分析所述第一密钥块的头域得到传输密钥索引;
验证模块,用于对所述接收分析模块得到的所述传输密钥索引的合法性进行验证,如验证合法则触发第三判断模块,否则触发所述第一报错模块;
所述第三判断模块,用于检索第一保护密钥是否存在,是则触发分析关联模块,否则触发所述第一报错模块;
所述分析关联模块,用于根据所述第三判断模块判断存在的所述第一保护密钥分析所述第一密钥块的数据域得到第二传输密钥,并将所述第二传输密钥和所述传输密钥索引进行关联,触发第一判断保存模块;
所述第一判断保存模块,用于根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用所述分析关联模块分析得到的所述第二传输密钥替换保存在密钥容器中的第二传输密钥,触发所述第一发送模块;否则保存所述分析关联模块分析得到的所述第二传输密钥至所述密钥容器中,触发所述第一发送模块;
所述第三发送模块,用于发送随机数请求给所述密钥注入设备;
第一接收判断模块,用于接收所述密钥注入设备发送的第四随机数,检索第二传输密钥是否存在于密钥容器中,是则触发加密发送模块,否则触发所述第一报错模块;
所述加密发送模块,用于从所述密钥容器中取出所述第二传输密钥,使用所述第二传输密钥对所述第四随机数进行加密得到第一加密值,并将所述第一加密值发送给所述密钥注入设备;
第二接收判断模块,用于接收所述密钥注入设备发送的响应,根据所述响应判断校验传输密钥是否成功,是则安全导入支付终端密钥成功,否则触发所述第一发送模块。
本发明还提供了一种安全导入支付终端密钥的方法,包括:
步骤R1:支付终端向密钥注入设备发送操作指令请求;
步骤R2:所述密钥注入设备接收所述支付终端发送的操作指令请求,发送操作指令给所述支付终端;
步骤R3:所述支付终端接收所述密钥注入设备发送的操作指令,根据所述操作指令判断认证状态是否合法,如合法则执行步骤R4,否则报错;
步骤R4:所述支付终端判断所述操作指令的类型,如为双向认证指令时执行步骤D1,如为下载传输密钥指令时执行步骤E1,如为校验传输密钥指令时执行步骤F1;
步骤D1:所述支付终端产生第一随机数并发送给所述密钥注入设备;
步骤D2:所述密钥注入设备接收所述支付终端发送的所述第一随机数,发送证书和签名值给所述支付终端;所述证书包括加密证书;
步骤D3:所述支付终端接收所述密钥注入设备发送的所述证书和所述签名值,根据所述证书、所述签名值和所述第一随机数判断所述密钥注入设备是否合法,是则执行步骤D4,否则报错;
步骤D4:所述支付终端产生第三随机数并作为第一保护密钥,使用所述加密证书中的公钥加密所述第一保护密钥得到第二密钥并发送给所述密钥注入设备;
步骤D5:所述密钥注入设备接收所述支付终端发送的所述第二密钥,使用所述加密证书中的私钥解密所述第二密钥,判断解密所述第二密钥是否成功,是则保存解密得到的第二保护密钥,发送第二密钥解密成功响应给所述支付终端,执行步骤D6,否则发送第二密钥解密失败响应给所述支付终端,执行步骤D6;
步骤D6:当所述支付终端接收到所述密钥注入设备发送的第二密钥解密成功响应时将所述第一保护密钥导入所述支付终端的密钥容器中,返回步骤R1;
步骤E1:所述支付终端向所述密钥注入设备发送获取第一密钥块请求;
步骤E2:所述密钥注入设备接收到所述支付终端发送的获取第一密钥块请求,发送第一密钥块给所述支付终端;
步骤E3:所述支付终端接收所述密钥注入设备发送的所述第一密钥块,分析所述第一密钥块的头域得到传输密钥索引,对所述传输密钥索引的合法性进行验证,如验证合法则执行步骤E4,否则报错;
步骤E4:所述支付终端检索第一保护密钥是否存在,是则所述支付终端根据所述第一保护密钥分析所述第一密钥块的数据域得到第二传输密钥,并将所述第二传输密钥和所述传输密钥索引进行关联,执行步骤E5,否则报错;
步骤E5:所述支付终端根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用分析得到的所述第二传输密钥替换保存在密钥容器中的第二传输密钥,返回步骤S1,否则保存分析得到的所述第二传输密钥至所述密钥容器中,返回步骤S1;
步骤F1:所述支付终端向所述密钥注入设备发送随机数请求;
步骤F2:所述密钥注入设备接收所述支付终端发送的随机数请求,发送第四随机数给所述支付终端;
步骤F3:所述支付终端接收所述密钥注入设备发送的所述第四随机数,所述支付终端检索第二传输密钥是否存在于密钥容器中,是则从所述密钥容器中取出所述第二传输密钥,使用所述第二传输密钥对所述第四随机数进行加密得到第一加密值,并将所述第一加密值发送给所述密钥注入设备,执行步骤F4,否则报错;
步骤F4:所述密钥注入设备接收所述支付终端发送的所述第一加密值,利用保存的第一传输密钥对所述第一加密值解密得到第五随机数,判断保存的所述第四随机数和所述第五随机数是否相等,是则发送校验成功响应给所述支付终端,执行步骤F5,否则发送校验失败响应给所述支付终端,执行步骤F5;
步骤F5:所述支付终端接收所述密钥注入设备发送的响应,并根据所述响应判断校验传输密钥是否成功,是则安全导入支付终端传输密钥成功,否则重新下载传输密钥,返回步骤R1。
本发明还提供了一种安全导入支付终端密钥的系统,包括:支付终端和密钥注入设备;
所述支付终端包括:
第一发送模块,用于向密钥注入设备发送操作指令请求;
第一接收模块,用于接收所述密钥注入设备发送的操作指令;
第一判断模块,用于根据所述第一接收模块接收到的所述操作指令判断认证状态是否合法,如合法则触发第二判断模块,否则触发第一报错模块;
所述第二判断模块,用于判断所述第一接收模块接收到的所述操作指令的类型,如为双向认证指令触发第一生成发送模块,如为下载传输密钥指令触发第二发送模块,如为校验传输指令触发第三发送模块;
所述第一报错模块,用于报错;
所述第一生成发送模块,用于产生第一随机数,并发送所述第一随机数给所述密钥注入设备;
接收验证模块,用于接收所述密钥注入设备发送的证书和签名值,根据接收到的证书、签名值和所述第一生成发送模块产生的第一随机数判断所述密钥注入设备是否合法,是则触发第二生成发送模块,否则触发所述第一报错模块;所述证书包括加密证书;
所述第二生成发送模块,用于产生第三随机数并作为第一保护密钥,使用所述加密证书中的公钥加密所述第一保护密钥得到第二密钥,并发送所述第二密钥给所述密钥注入设备;
接收导入模块,用于接收所述密钥注入设备发送的第二密钥解密成功响应,并将所述第一保护密钥导入所述支付终端的密钥容器中,触发所述第一发送模块;
所述第二发送模块,用于发送获取第一密钥块请求给所述密钥注入设备;
接收分析模块,用于接收所述密钥注入设备发送的第一密钥块,分析所述第一密钥块的头域得到传输密钥索引;
验证模块,用于对所述接收分析模块得到的所述传输密钥索引的合法性进行验证,如验证合法则触发第三判断模块,否则触发所述第一报错模块;
所述第三判断模块,用于检索第一保护密钥是否存在,是则触发分析关联模块,否则触发所述第一报错模块;
所述分析关联模块,用于根据所述第三判断模块判断存在的所述第一保护密钥分析所述第一密钥块的数据域得到第二传输密钥,并将所述第二传输密钥和所述传输密钥索引进行关联,触发第一判断保存模块;
所述第一判断保存模块,用于根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用所述分析关联模块分析得到的所述第二传输密钥替换保存在密钥容器中的第二传输密钥,触发所述第一发送模块;否则保存所述分析关联模块分析得到的所述第二传输密钥至所述密钥容器中,触发所述第一发送模块;
所述第三发送模块,用于发送随机数请求给所述密钥注入设备;
第一接收判断模块,用于接收所述密钥注入设备发送的第四随机数,检索第二传输密钥是否存在于密钥容器中,是则触发加密发送模块,否则触发所述第一报错模块;
所述加密发送模块,用于从所述密钥容器中取出所述第二传输密钥,使用所述第二传输密钥对所述第四随机数进行加密得到第一加密值,并将所述第一加密值发送给所述密钥注入设备;
第二接收判断模块,用于接收所述密钥注入设备发送的响应,根据所述响应判断校验传输密钥是否成功,是则安全导入支付终端密钥成功,否则触发所述第一发送模块;
所述密钥注入设备包括:
第二接收模块,用于接收所述支付终端发送的操作指令请求;
第四发送模块,用于发送操作指令给所述支付终端;
第一接收发送模块,用于接收所述支付终端发送的第一随机数,发送证书和签名值给所述支付终端;
第一接收解密模块,用于接收所述支付终端发送的第二密钥,使用所述加密证书中的私钥解密所述第二密钥;
第二判断保存模块,用于判断解密所述第二密钥是否成功,是则保存解密得到的第二保护密钥并触发所述第四发送模块给所述支付终端发送第二密钥解密成功响应,否则触发第四发送模块给所述支付终端发送第二密钥解密失败响应;
第二接收发送模块,用于接收所述支付终端发送的获取第一密钥块请求,发送第一密钥块给所述支付终端;
第三接收发送模块,用于接收所述支付终端发送的随机数请求,发送第四随机数给所述支付终端;
第二接收解密模块,用于接收所述支付终端发送的第一加密值,用所述第一传输密钥对所述第一加密值解密得到第五随机数,触发第六判断模块;
所述第六判断模块,用于判断保存的第四随机数和所述接收解密模块解密得到的所述第五随机数是否相等,是则触发所述第四发送模块给所述支付终端发送校验成功响应,否则触发所述第四发送模块给所述支付终端发送校验失败响应。
本发明取得的有益效果是:采用本发明的技术方案,经过双向认证阶段、下载传输密钥阶段和校验传输密钥阶段后成功导入传输密钥,第一保护密钥经过双向认证且以密文的形式进行传输,可以有效地保证通信双方的真实性和可靠性,达到安全通信的目的,安全性更高。
附图说明
图1为本发明实施例一提供的一种安全导入支付终端密钥的方法的流程图;
图2为本发明实施例一中步骤103的细化流程图;
图3为本发明实施例一中步骤107的细化流程图;
图4为本发明实施例一中步骤111的细化流程图;
图5为本发明实施例一中步骤113的细化流程图;
图6为本发明实施例一中步骤506的细化流程图;
图7为本发明实施例一中步骤508的细化流程图;
图8为本发明实施例一中步骤115的细化流程图;
图9为本发明实施例二提供的一种安全导入支付终端密钥的方法的流程图;
图10为本发明实施例二中步骤903的细化流程图;
图11-1和图11-2为本发明实施例二中步骤907的细化流程图;
图12为本发明实施例二中步骤911的细化流程图;
图13为本发明实施例二中步骤913的细化流程图;
图14为本发明实施例二中步骤1304的细化流程图;
图15为本发明实施例二中步骤1307的细化流程图;
图16为本发明实施例二中步骤1309的细化流程图;
图17为本发明实施例二中步骤915的细化流程图;
图18为本发明实施例三提供的一种安全导入支付终端密钥的支付终端的方框图;
图19为本发明实施例四提供的一种安全导入支付终端密钥的系统的方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种安全导入支付终端密钥的方法,如图1所示,包括:
步骤101:支付终端向密钥注入设备发送操作指令请求;
步骤102:支付终端接收密钥注入设备发送的操作指令;
具体的,操作指令包括设置实时时钟指令、双向认证指令、获取支付终端信息指令、设置支付终端序列号指令、下载传输密钥指令、校验传输密钥指令;
步骤103:支付终端根据操作指令判断认证状态是否合法,是则执行步骤104,否则报错;
在本实施例中,步骤103的实现过程如图2所示,具体包括:
步骤201:支付终端判断认证状态是否处于未认证状态或双向证书认证完成状态,是则执行步骤202,否则执行步骤203;
具体的,步骤201具体通过认证标识进行判断,如果认证标识是未认证状态(例如AUTH_FLAG=0)或认证标识是双向证书认证完成状态(例如AUTH_FLAG=1)则执行步骤202;
步骤202:支付终端判断操作指令是否为第一预设指令,是则认证状态合法,执行步骤104,否则报错;
具体的,第一预设指令包括设置实时时钟指令、双向认证指令、获取支付终端信息指令、设置支付终端序列号指令;
步骤203:支付终端判断认证状态是否处于生成保护密钥状态,是则执行步骤204,否则认证状态合法,执行步骤104;
具体的,步骤203具体通过标识进行判断,例如AUTH_FLAG=2则判断认证状态处于生成保护密钥状态;
步骤204:支付终端判断操作指令是否为第二预设指令,是则认证状态合法,执行步骤104,否则报错;
具体的,第二预设指令为校验传输密钥指令或下载传输密钥指令;
步骤104:支付终端判断操作指令的类型,如为设置实时时钟指令则执行步骤105,如为双向认证指令则执行步骤107,如为设置支付终端序列号指令则执行步骤109,如为获取支付终端信息指令则执行步骤111,如为下载传输密钥指令则执行步骤113,如为校验传输密钥指令则执行步骤115;
步骤105:支付终端从密钥注入设备下发的设置实时时钟指令中提取实时时间并对支付终端的计时模块进行设置;
具体的,支付终端包括计时模块、第一电源模块和第二电源模块,第一电源模块与支付终端中各个模块相连,为其提供电力,当支付终端关机后,第二电源模块为计时模块提供电力;
步骤106:支付终端判断设置实时时间是否成功,是则返回步骤101,否则报错;
具体的,如果支付终端发送设置实时时间成功响应则设置实时时间成功,反之失败;
步骤107:支付终端根据密钥注入设备下发的双向认证指令进行认证;
在本实施例中,步骤107实现过程如图3所示,具体包括:
步骤301:支付终端产生第一随机数并发送给密钥注入设备;
可选的,第一随机数长度为24字节;
具体的,第一随机数为{0x03,0x47,0x43,0x73,0x86,0x36,0x96,0x47,0x36,0x61,0x46,0x98,0x63,0x71,0x62,0x97,0x74,0x24,0x67,0x62,0x42,0x81,0x14,0x57};
具体的,密钥注入设备接收第一随机数并保存后发送用户证书名称的长度给支付终端;
具体的,用户证书名称的长度为38;
步骤302:支付终端接收并判断密钥注入设备发送的用户证书名称的长度是否合法,是则执行步骤303,否则报错;
具体的,如果用户证书名称的长度超过设定的第一阈值则不合法,不超过则合法;
步骤303:支付终端向密钥注入设备发送请求用户证书名称的指令;
步骤304:支付终端根据用户证书名称长度接收密钥注入设备发送的相应长度的用户证书名称并保存;
具体的,用户证书名称为KLD Authentication v2/C01100000000 000;
步骤305:支付终端向密钥注入设备发送请求用户证书内容长度的指令;
步骤306:支付终端接收密钥注入设备发送的用户证书内容长度;
具体的,用户证书内容长度为1067;
步骤307:支付终端向密钥注入设备发送请求用户证书内容的指令;
步骤308:支付终端根据用户证书内容长度接收密钥注入设备发送的相应长度的用户证书并保存用户证书;
具体的,用户证书包括头域、证书体和签名值;
步骤309:支付终端对用户证书中的证书体进行哈希运算得到第一哈希值;
步骤310:支付终端使用保存的CA证书中的公钥解密用户证书中的签名值得到第二哈希值;
步骤311:支付终端判断第一哈希值和第二哈希值是否相等,是则执行步骤312,否则报错;
步骤312:支付终端提取用户证书的证书有效时间;
具体的,证书有效时间为2015/1/29到2025/1/29;
步骤313:支付终端提取计时模块中的当前时间并判断其是否在证书有效时间内,是则执行步骤314,否则报错;
步骤314:支付终端向密钥注入设备发送请求加密证书信息的指令;
步骤315:支付终端接收密钥注入设备发送的加密证书信息;
具体的,加密证书信息包括加密证书长度、名称和内容,其中内容包括头域、证书体和签名值;
步骤316:支付终端对加密证书中的证书体进行哈希运算得到第三哈希值;
步骤317:支付终端使用保存的CA证书中的公钥解密加密证书中的签名值得到第四哈希值;
步骤318:支付终端判断第三哈希值和第四哈希值是否相等,是则执行步骤319,否则报错;
具体的,步骤302至步骤313为支付终端接收用户证书并对用户证书的合法性及有效性进行验证,步骤314至步骤318为支付终端接收加密证书并对加密证书的合法性进行验证,支付终端可以先接收用户证书并对用户证书的合法性及有效性进行验证后接收加密证书并对加密证书的合法性进行验证,也可以先接收加密证书并对加密证书的合法性进行验证后接收用户证书并对用户证书的合法性及有效性进行验证;
步骤319:支付终端发送用户证书和加密证书的合法响应给密钥注入设备;
步骤320:支付终端接收密钥注入设备发送的签名值;
在本实施例中,密钥注入设备对第一随机数进行哈希运算得到第一摘要值,根据密钥算法和签名机制填充模式算法使用用户证书中的私钥对第一摘要值进行签名得到签名值;
具体的,签名值为{0x1F,0xE8,0x97,0x17,0xF7,0x96,0x27,0x88,0x35,0xD2,0x8F,0x0D,0x81,0x99,0x9C,0xBC,
0xBE,0x1E,0xE0,0xCB,0x08,0xD0,0xFA,0x62,0xF1,0x63,0x48,0xFB,0xBD,0x3F,0xE3,0x67,
0x51,0x07,0x64,0x63,0x21,0xE7,0x49,0x1C,0x45,0xFE,0xEA,0x08,0xA9,0x60,0xB5,0xC6,
0x0F,0x00,0x7D,0xE8,0xD9,0x50,0x12,0x80,0x97,0x56,0x71,0x3C,0x38,0x28,0xD1,0x1E,
0x3A,0x86,0x79,0xB5,0x86,0xF7,0x20,0xF3,0x50,0x32,0x7C,0x48,0x69,0x09,0x01,0xBB,
0xD2,0xE5,0x6D,0xB0,0xC6,0x1A,0x8A,0x8B,0x3C,0xCE,0xBD,0xA9,0xE8,0xB0,0x9C,0xCC,
0xDA,0x03,0xB8,0xA5,0xFE,0x70,0x2E,0x8B,0x52,0x4B,0x32,0x8A,0x67,0xCD,0x50,0xBA,
0x25,0xDA,0x63,0xE2,0x18,0x5F,0x3F,0x95,0xC0,0xA1,0x00,0x2E,0x3F,0xFD,0x25,0x68,
0xED,0xCC,0x5E,0x31,0xB5,0x53,0xFD,0xFF,0xEC,0x1E,0x7C,0x2D,0xDD,0x6E,0x0C,0x2E,
0x12,0x65,0x96,0x69,0xB9,0x29,0xC1,0x55,0x74,0x03,0x5E,0xBA,0xA8,0x68,0xD1,0x0B,
0xB8,0xB6,0x96,0x09,0x3F,0x08,0x99,0xFB,0xEF,0x6D,0x14,0xD8,0x75,0xAD,0x7D,0x50,
0xC1,0x84,0x8F,0x6B,0x9B,0x98,0x37,0x6E,0x10,0x1E,0x1D,0xE7,0x55,0x99,0x54,0x5D,
0xB7,0xEB,0x56,0x3C,0x58,0x8A,0xA5,0x63,0x44,0xE8,0xE1,0x47,0x57,0x23,0xE3,0x09,
0x0E,0xCA,0x7D,0x13,0x93,0xF9,0xD8,0xCE,0x8F,0x6A,0xB7,0xCA,0xB7,0x91,0x73,0x35,
0xF2,0xDE,0x16,0x13,0xAF,0x3D,0xD2,0x60,0xB5,0xD3,0x71,0xEB,0xF4,0xDE,0xD9,0x46,
0x48,0x01,0x38,0x9B,0x8A,0x57,0x6D,0x80,0xDC,0xE8,0x2A,0x44,0x51,0x21,0xFB,0xF0};
步骤321:支付终端对第一随机数进行哈希运算得到第二摘要值;
具体的,第二摘要值为{0xC9,0xD6,0xCE,0x1A,0x8B,0x53,0x17,0x4B,0x2C,0xC7,0x80,0xED,0xF0,0x76,0x0B,0x3A,
0x73,0x9A,0x0E,0x60,0x6E,0xAB,0x2E,0x20,0x19,0x37,0x28,0x75,0x11,0xBC,0x33,0x17};
步骤322:支付终端使用用户证书中的公钥对签名值进行解密得到第三摘要值;
具体的,第三摘要值为{0xC9,0xD6,0xCE,0x1A,0x8B,0x53,0x17,0x4B,0x2C,0xC7,0x80,0xED,0xF0,0x76,0x0B,0x3A,
0x73,0x9A,0x0E,0x60,0x6E,0xAB,0x2E,0x20,0x19,0x37,0x28,0x75,0x11,0xBC,0x33,0x17};
步骤323:支付终端判断第二摘要值和第三摘要值是否相等,是则执行步骤324,否则报错;
步骤324:支付终端产生第三随机数并作为第一保护密钥,使用加密证书中的公钥加密第一保护密钥得到第二密钥并发送给密钥注入设备;
在本实施例中,密钥注入设备用加密证书中的私钥解密第二密钥,判断解密是否成功,是则保存解密得到的第二保护密钥,发送第二密钥解密成功响应给支付终端,否则发送第二密钥解密失败响应给支付终端;
具体的,第三随机数为{0xDE,0x6A,0x62,0xCB,0x56,0x36,0x1A,0xC0,0x7A,0x8A,0x82,0x4E,0x7B,0x3A,0x22,0x02,0x78,0x76,0xBA,0x00,0x61,0xD4,0x3E,0xB3};
具体的,第二密钥为{0x2E,0x39,0x51,0x03,0xC8,0xED,0x40,0x2D,0x9F,0xA5,0xB4,0x30,0x89,0x83,0xB7,0xFA,
0x41,0x46,0x0C,0xED,0x5A,0x33,0x4C,0x07,0xF4,0xB3,0x49,0x02,0xAB,0xAF,0x65,0xEF,
0x63,0x57,0x0C,0x43,0xA5,0x5A,0xE4,0x15,0xAC,0x10,0x1B,0x03,0x61,0x22,0x63,0x1C,
0x9D,0xAE,0x87,0x5D,0xE2,0xCB,0x14,0x43,0xA0,0x47,0xAD,0x77,0x5F,0x81,0xD1,0x54,
0xE6,0x6F,0x67,0x45,0xEF,0x3B,0x80,0x6B,0x4E,0x2F,0xA2,0x22,0x0D,0x4F,0x5A,0x19,
0xFE,0x2F,0x96,0x14,0x32,0x4C,0x0E,0x04,0xE5,0xB1,0xDE,0x1A,0x33,0xA7,0x3C,0x81,
0xE8,0xD8,0xB8,0x6B,0x0C,0xB5,0xAA,0x28,0x89,0x6D,0x9C,0xBA,0x27,0x4D,0x01,0x52,
0xA3,0xB6,0x62,0x76,0x77,0x6D,0x0D,0x01,0xAD,0x44,0xB5,0xB6,0x31,0x3C,0x81,0x7F,
0x33,0x56,0x1B,0x17,0x11,0x1E,0x7B,0x92,0x66,0xC8,0x4F,0xD9,0x43,0x48,0x80,0x1B,
0x71,0x6E,0xDF,0x60,0x3B,0x38,0x24,0xC5,0x4A,0xF4,0x57,0x89,0xC0,0xBB,0xBD,0x75,
0x84,0x47,0x91,0x86,0xA9,0x63,0x76,0x5E,0x2C,0x96,0x16,0x0E,0xFE,0x96,0xAA,0x6D,
0x0C,0x40,0xCA,0x9F,0x13,0xDB,0x1E,0xCA,0x19,0xD6,0x38,0xE6,0x6F,0x65,0xDD,0x8D,
0x35,0x83,0xAF,0xCA,0x56,0xEB,0x9F,0x32,0x7F,0xE3,0x50,0x0E,0x15,0x45,0x0C,0x94,
0xF2,0xF7,0x66,0x9A,0xB0,0xAC,0xE7,0xEF,0x90,0x8B,0x0C,0x27,0x8D,0x69,0x56,0x9C,
0xD6,0x5F,0x16,0x25,0x2A,0xE9,0xD4,0x44,0x3C,0xB5,0xCF,0x23,0x65,0xAA,0xD6,0x2C,
0xD9,0x6F,0xFB,0x34,0x17,0xD3,0x93,0x6B,0x78,0xF1,0xF0,0x29,0x9E,0x6C,0xA0,0xFF};
步骤325:当支付终端接收到密钥注入设备发送的第二密钥解密成功响应时,将第一保护密钥导入密钥容器中;
具体的,密钥容器是支付终端开辟的一块区域进行存储密钥,这块区域是非易失性随机访问存储器;
步骤326:支付终端设置认证状态为生成保护密钥状态;
具体的,步骤326具体为将认证标识设为生成保护密钥状态,例如AUTH_FLAG=2;
步骤108:支付终端判断认证是否成功,是则返回步骤101,否则报错;
具体的,支付终端的认证状态为生成保护密钥状态则认证成功;
步骤109:支付终端从密钥注入设备下发的设置支付终端序列号指令中提取支付终端序列号并对支付终端进行设置;
具体的,支付终端序列号为R25860001061;
步骤110:支付终端判断设置支付终端序列号是否成功,是则返回步骤101,否则报错;
步骤111:支付终端根据获取支付终端信息指令将支付终端信息发送给密钥注入设备;
具体的,支付终端信息包括支付终端序列号和支付终端实时时钟;
在本实施例中,步骤111实现过程如图4所示,具体包括:
步骤401:支付终端收集支付终端信息;
步骤402:支付终端发送支付终端信息给密钥注入设备;
步骤403:支付终端接收密钥注入设备发送的响应;
步骤112:支付终端判断发送支付终端信息是否成功,是则返回步骤101,否则报错;
具体的,支付终端根据接收密钥注入设备发送的响应判断发送支付终端信息是否成功,如响应为1则成功,响应给0则失败;
步骤113:支付终端根据密钥注入设备下发的下载传输密钥指令进行下载传输密钥;
在本实施例中,步骤113实现过程如图5所示,具体包括:
步骤501:支付终端向密钥注入设备发送获取第一密钥块长度请求;
步骤502:支付终端接收密钥注入设备发送的第一密钥块长度;
具体的,第一密钥块长度为104;
步骤503:支付终端发送获取第一密钥块请求给密钥注入设备;
具体的,第一密钥块包括头域、数据域和MAC值;
在本实施例中,密钥注入设备根据保存的第二保护密钥分散生成第一加密密钥,利用第一加密密钥对第一传输密钥进行加密得到第一密钥块的数据域,结合第一密钥块的头域和第一密钥块的MAC值组成第一密钥块发送给支付终端;
步骤504:支付终端根据第一密钥块长度接收密钥注入设备发送的第一密钥块;
具体的,第一密钥块为{0x42,0x30,0x31,0x30,0x34,0x44,0x30,0x54,0x42,0x30,0x30,0x45,0x30,0x31,0x30,0x30,0x4B,0x53,0x30,0x38,0x30,0x32,0x35,0x35,0x2F,0x96,0x14,0x32,0x4C,0x0E,0x04,0xE5,0xB1,0xDE,0x1A,0x33,0xA7,0x3C,0x81,0xE8,0xD8,0xB8,0x6B,0x0C,0xB5,0xAA,0x28,0x89,0x6D,0x9C,0xBA,0x27,0x4D,0x01,0x52,0xA3,0xB6,0x62,0x76,0x77,0x6D,0x0D,0x01,0xAD,0x44,0xB5,0xB6,0x31,0x3C,0x81,0x7F,0x33,0x56,0x1B,0x17,0x11,0x1E,0x7B,0x92,0x66,0xC8,0x4F,0xD9,0x43,0x48,0x80,0x1B,0x71,0x8D,0x53,0x02,0x43,0x42,0x27,0x42,0xCA,0xC8,0x15,0x07,0xF3,0xE9,0xC2,0x54,0xFF};
步骤505:支付终端分析第一密钥块的头域得到传输密钥索引;
具体的,传输密钥索引为{0x00,0x32,0x35,0x35};
步骤506:支付终端对传输密钥索引的合法性进行验证,如验证合法执行步骤507,否则报错;
在本实施例中,步骤506实现过程如图6所示,具体包括:
步骤601:支付终端分析第一密钥块的头域得到第一密钥集标识符;
具体的,第一密钥集标识符为{0x00,0xFF};
步骤602:支付终端判断第一密钥集标识符与保存的密钥集标识符是否相等,是则传输密钥索引合法,执行步骤507,否则报错;
具体的,保存的标识符为{0x00,0xFF};
步骤507:支付终端检索第一保护密钥是否存在,是则执行步骤508,否则报错;
步骤508:支付终端根据第一保护密钥分析第一密钥块的数据域得到第二传输密钥,并将第二传输密钥和传输密钥索引进行关联;
在本实施例中,步骤508的实现过程如图7所示,具体包括:
步骤701:支付终端根据第一保护密钥分散生成第二加密密钥;
具体的,第二加密密钥为{0x17,0x06,0x23,0xC9,0xA6,0x8A,0x08,0xA7,0xF7,0x32,0xC6,0x14,0xD7,0xA4,0xB4,0xE7,0x59,0x98,0x7B,0x1B,0xAD,0x11,0xD0,0xD3};
步骤702:支付终端利用第二加密密钥解密第一密钥块的数据域得到第二传输密钥,并将第二传输密钥和传输密钥索引进行关联;
具体的,第二传输密钥为{0x29,0x34,0x38,0x88,0x44,0xF9,0x85,0xA8,0x01,0xCB,0x86,0x40,0x53,0x97,0xFA,0x6F,0x9E,0x26,0x2D,0xD1,0x32,0x2F,0xDC,0x5A};
步骤509:支付终端根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用分析得到的第二传输密钥替换保存在密钥容器中的第二传输密钥,否则保存分析得到的第二传输密钥至密钥容器中;
具体的,传输密钥索引存在则传输密钥索引状态非空,传输密钥索引不存在则传输密钥索引状态为空,如传输密钥索引状态非空则密钥容器中保存有第二传输密钥,如传输密钥索引状态为空则密钥容器中无第二传输密钥;
步骤114:支付终端判断下载传输密钥是否成功,是则返回步骤101,否则报错;
步骤115:支付终端根据密钥注入设备下发的校验传输密钥指令进行校验;
在本实施例中,步骤115实现过程如图8所示,具体包括:
步骤801:支付终端向密钥注入设备发送随机数请求;
步骤802:支付终端接收密钥注入设备发送的第四随机数;
具体的,第四随机数为{0x5E,0x5B,0x97,0x76,0x3A,0xF4,0xAB,0x9B,0xC5,0x18,0x23,0x25,0x82,0xEE,0xDA,0xBE,0xA3,0x44,0x5D,0xCC,0xF1,0xDD,0x41,0xBE};
步骤803:支付终端检索第二传输密钥是否存在于密钥容器中,是则执行步骤804,否则报错;
步骤804:支付终端从密钥容器中取出第二传输密钥;
具体的,密钥容器是支付终端开辟的一块区域进行存储密钥,这块区域是非易失性随机访问存储器;
步骤805:支付终端使用第二传输密钥对第四随机数进行加密得到第一加密值;
具体的,支付终端使用3DES算法;
具体的,第一加密值为{0x71,0x5B,0xA3,0x5A,0x76,0x05,0x5B,0x3E,0x4E,0x5B,0x56,0xE4,0x24,0xFC,0x75,0x2A,0xCF,0x9E,0x18,0x89,0xF0,0x48,0x0D,0x26};
步骤806:支付终端发送第一加密值给密钥注入设备;
在本实施例中,密钥注入设备利用第一传输密钥对第一加密值解密得到第五随机数,判断保存的第四随机数和第五随机数是否相等,是则发送校验成功响应给支付终端,否则发送校验失败响应给支付终端;
步骤807:支付终端接收密钥注入设备发送的响应,并根据响应判断校验传输密钥是否成功,是则执行步骤808,否则报错;
步骤808:支付终端设置认证状态为传输密钥校验完成状态;
具体的,步骤808具体为将认证标识设为传输密钥校验完成状态,例如AUTH_FLAG=3;
步骤116:支付终端判断校验传输密钥是否成功,是则安全导入支付终端传输密钥成功,否则返回步骤101;
具体的,步骤116通过认证标识进行判断,如果认证标识是传输校验完成状态(例如AUTH_FLAG=3)则导入传输密钥成功。
实施例二
本发明实施例二提供一种安全导入支付终端密钥的方法,如图9所示,包括:
步骤901:支付终端向密钥注入设备发送操作指令请求;
步骤902:密钥注入设备接收支付终端发送的操作指令请求,发送操作指令给支付终端;
具体的,操作指令包括设置实时时钟指令、双向认证指令、获取支付终端信息指令、设置支付终端序列号指令、下载传输密钥指令、校验传输密钥指令;
步骤903:支付终端接收密钥注入设备发送的操作指令,根据操作指令判断认证状态是否合法,是则执行步骤904,否则报错;
在本实施例中,步骤903的实现过程如图10所示,具体包括:
步骤1001:支付终端判断认证状态是否处于未认证状态或双向证书认证完成状态,是则执行步骤1002,否则执行步骤1003;
具体的,步骤1001具体通过标识进行判断,如果认证标识是未认证状态(例如AUTH_FLAG=0)或认证标识是双向证书认证完成状态(例如AUTH_FLAG=1)则执行步骤1002;
步骤1002:支付终端判断操作指令是否为第一预设指令,是则认证状态合法,执行步骤904,否则报错;
具体的,第一预设指令包括设置实时时钟指令、双向认证指令、获取支付终端信息指令、设置支付终端序列号指令;
步骤1003:支付终端判断认证状态是否处于生成保护密钥状态,是则执行步骤1004,否则认证状态合法,执行步骤904;
具体的,步骤1003具体通过标识进行判断,例如AUTH_FLAG=2则判断认证状态处于生成保护密钥状态;
步骤1004:支付终端判断操作指令是否为第二预设指令,是则认证状态合法,执行步骤904,否则报错;
具体的,第二预设指令为校验传输密钥指令或下载传输密钥指令;
步骤904:支付终端判断操作指令的类型,如为设置实时时钟指令则执行步骤905,如为双向认证指令则执行步骤907,如为设置支付终端序列号指令则执行步骤909;如为获取支付终端信息指令则执行步骤911,如为下载传输密钥指令则执行步骤913,如为校验传输密钥指令则执行步骤915;
步骤905:支付终端从密钥注入设备下发的设置实时时钟指令中提取实时时间并对支付终端的计时模块进行设置;
具体的,支付终端包括计时模块、第一电源模块和第二电源模块,第一电源模块与支付终端中各个模块相连,为其提供电力,当支付终端关机后,第二电源模块为计时模块提供电力;
步骤906:支付终端判断设置实时时间是否成功,是则返回步骤901,否则报错;
具体的,如果支付终端发送设置实时时间成功响应则设置实时时间成功,反之失败;
步骤907:支付终端根据密钥注入设备下发的双向认证指令进行双向认证;
在本实施例中,步骤907实现过程如图11-1和图11-2所示,具体包括:
步骤1101:支付终端产生第一随机数并发送给密钥注入设备;
可选的,第一随机数长度为24字节;
具体的,第一随机数为{0x03,0x47,0x43,0x73,0x86,0x36,0x96,0x47,0x36,0x61,0x46,0x98,0x63,0x71,0x62,0x97,0x74,0x24,0x67,0x62,0x42,0x81,0x14,0x57};
步骤1102:密钥注入设备接收支付终端发送的第一随机数,发送用户证书名称的长度给支付终端;
具体的,用户证书名称的长度为38;
步骤1103:支付终端判断用户证书名称的长度是否合法,是则执行步骤1104,否则报错;
具体的,如果用户证书名称的长度超过设定的第一阈值则不合法,不超过则合法;
步骤1104:支付终端向密钥注入设备发送请求用户证书名称的指令;
步骤1105:密钥注入设备发送指定长度的用户证书名称给支付终端;
具体的,用户证书名称为KLD Authentication v2/C01100000000 000;
步骤1106:支付终端根据用户证书名称长度接收指定长度的用户证书名称并保存;
步骤1107:支付终端向密钥注入设备发送请求用户证书内容长度的指令;
步骤1108:密钥注入设备发送用户证书内容长度给支付终端;
具体的,用户证书内容长度为1067;
步骤1109:支付终端向密钥注入设备发送请求用户证书内容的指令;
步骤1110:密钥注入设备发送指定长度的用户证书内容给支付终端;
步骤1111:支付终端根据用户证书内容长度接收指定长度的用户证书并保存;
具体的,用户证书包括头域、证书体和签名值;
步骤1112:支付终端对用户证书中的证书体进行哈希运算得到第一哈希值;
步骤1113:支付终端使用保存的CA证书中的公钥解密用户证书中的签名值得到第二哈希值;
步骤1114:支付终端判断第一哈希值和第二哈希值是否相等,是则执行步骤1115,否则报错;
步骤1115:支付终端提取用户证书的证书有效时间;
具体的,证书有效时间为2015/1/29到2025/1/29;
步骤1116:支付终端提取计时模块中的当前时间并判断其是否在证书有效时间内,是则执行步骤1117,否则报错;
步骤1117:支付终端向密钥注入设备发送请求加密证书信息的指令;
具体的,加密证书信息包括加密证书长度、名称和内容,其中内容包括头域、证书体和签名值;
步骤1118:密钥注入设备发送加密证书信息给支付终端;
步骤1119:支付终端对加密证书中的证书体进行哈希运算得到第三哈希值;
步骤1120:支付终端使用保存的CA证书中的公钥解密加密证书中的签名值得到第四哈希值;
步骤1121:支付终端判断第三哈希值和第四哈希值是否相等,是则执行步骤1122,否则报错;
具体的,步骤1102至步骤1116为支付终端接收用户证书并对用户证书的合法性及有效性进行验证,步骤1117至步骤1121为支付终端接收加密证书并对加密证书的合法性进行验证,支付终端可以先接收用户证书并对用户证书的合法性及有效性进行验证后接收加密证书并对加密证书的合法性进行验证,也可以先接收加密证书并对加密证书的合法性进行验证后接收用户证书并对用户证书的合法性及有效性进行验证;
步骤1122:支付终端向密钥注入设备发送用户证书和加密证书的合法响应;
步骤1123:密钥注入设备对第一随机数进行哈希运算得到第一摘要值;
步骤1124:密钥注入设备根据算法使用用户证书中的私钥对第一摘要值进行签名得到签名值;
具体的,算法为定义RSA公开密钥算法加密和签名机制填充模式算法;
具体的,签名值为{0x1F,0xE8,0x97,0x17,0xF7,0x96,0x27,0x88,0x35,0xD2,0x8F,0x0D,0x81,0x99,0x9C,0xBC,
0xBE,0x1E,0xE0,0xCB,0x08,0xD0,0xFA,0x62,0xF1,0x63,0x48,0xFB,0xBD,0x3F,0xE3,0x67,
0x51,0x07,0x64,0x63,0x21,0xE7,0x49,0x1C,0x45,0xFE,0xEA,0x08,0xA9,0x60,0xB5,0xC6,
0x0F,0x00,0x7D,0xE8,0xD9,0x50,0x12,0x80,0x97,0x56,0x71,0x3C,0x38,0x28,0xD1,0x1E,
0x3A,0x86,0x79,0xB5,0x86,0xF7,0x20,0xF3,0x50,0x32,0x7C,0x48,0x69,0x09,0x01,0xBB,
0xD2,0xE5,0x6D,0xB0,0xC6,0x1A,0x8A,0x8B,0x3C,0xCE,0xBD,0xA9,0xE8,0xB0,0x9C,0xCC,
0xDA,0x03,0xB8,0xA5,0xFE,0x70,0x2E,0x8B,0x52,0x4B,0x32,0x8A,0x67,0xCD,0x50,0xBA,
0x25,0xDA,0x63,0xE2,0x18,0x5F,0x3F,0x95,0xC0,0xA1,0x00,0x2E,0x3F,0xFD,0x25,0x68,
0xED,0xCC,0x5E,0x31,0xB5,0x53,0xFD,0xFF,0xEC,0x1E,0x7C,0x2D,0xDD,0x6E,0x0C,0x2E,
0x12,0x65,0x96,0x69,0xB9,0x29,0xC1,0x55,0x74,0x03,0x5E,0xBA,0xA8,0x68,0xD1,0x0B,
0xB8,0xB6,0x96,0x09,0x3F,0x08,0x99,0xFB,0xEF,0x6D,0x14,0xD8,0x75,0xAD,0x7D,0x50,
0xC1,0x84,0x8F,0x6B,0x9B,0x98,0x37,0x6E,0x10,0x1E,0x1D,0xE7,0x55,0x99,0x54,0x5D,
0xB7,0xEB,0x56,0x3C,0x58,0x8A,0xA5,0x63,0x44,0xE8,0xE1,0x47,0x57,0x23,0xE3,0x09,
0x0E,0xCA,0x7D,0x13,0x93,0xF9,0xD8,0xCE,0x8F,0x6A,0xB7,0xCA,0xB7,0x91,0x73,0x35,
0xF2,0xDE,0x16,0x13,0xAF,0x3D,0xD2,0x60,0xB5,0xD3,0x71,0xEB,0xF4,0xDE,0xD9,0x46,
0x48,0x01,0x38,0x9B,0x8A,0x57,0x6D,0x80,0xDC,0xE8,0x2A,0x44,0x51,0x21,0xFB,0xF0};
步骤1125:密钥注入设备将签名值发送给支付终端;
步骤1126:支付终端接收密钥注入设备发送的签名值,对第一随机数进行哈希运算得到第二摘要值;
具体的,第二摘要值为{0xC9,0xD6,0xCE,0x1A,0x8B,0x53,0x17,0x4B,0x2C,0xC7,0x80,0xED,0xF0,0x76,0x0B,0x3A,
0x73,0x9A,0x0E,0x60,0x6E,0xAB,0x2E,0x20,0x19,0x37,0x28,0x75,0x11,0xBC,0x33,0x17};
步骤1127:支付终端使用用户证书中的公钥对接收到的签名值进行解密得到第三摘要值;
具体的,第三摘要值为{0xC9,0xD6,0xCE,0x1A,0x8B,0x53,0x17,0x4B,0x2C,0xC7,0x80,0xED,0xF0,0x76,0x0B,0x3A,
0x73,0x9A,0x0E,0x60,0x6E,0xAB,0x2E,0x20,0x19,0x37,0x28,0x75,0x11,0xBC,0x33,0x17};
步骤1128:支付终端判断第二摘要值和第三摘要值是否相等,是则执行步骤1129,否则报错;
步骤1129:支付终端产生第三随机数作为第一保护密钥,用加密证书中的公钥加密第一保护密钥得到第二密钥;
具体的,第三随机数为{0xDE,0x6A,0x62,0xCB,0x56,0x36,0x1A,0xC0,0x7A,0x8A,0x82,0x4E,0x7B,0x3A,0x22,0x02,0x78,0x76,0xBA,0x00,0x61,0xD4,0x3E,0xB3};
具体的,第二密钥为{0x2E,0x39,0x51,0x03,0xC8,0xED,0x40,0x2D,0x9F,0xA5,0xB4,0x30,0x89,0x83,0xB7,0xFA,
0x41,0x46,0x0C,0xED,0x5A,0x33,0x4C,0x07,0xF4,0xB3,0x49,0x02,0xAB,0xAF,0x65,0xEF,
0x63,0x57,0x0C,0x43,0xA5,0x5A,0xE4,0x15,0xAC,0x10,0x1B,0x03,0x61,0x22,0x63,0x1C,
0x9D,0xAE,0x87,0x5D,0xE2,0xCB,0x14,0x43,0xA0,0x47,0xAD,0x77,0x5F,0x81,0xD1,0x54,
0xE6,0x6F,0x67,0x45,0xEF,0x3B,0x80,0x6B,0x4E,0x2F,0xA2,0x22,0x0D,0x4F,0x5A,0x19,
0xFE,0x2F,0x96,0x14,0x32,0x4C,0x0E,0x04,0xE5,0xB1,0xDE,0x1A,0x33,0xA7,0x3C,0x81,
0xE8,0xD8,0xB8,0x6B,0x0C,0xB5,0xAA,0x28,0x89,0x6D,0x9C,0xBA,0x27,0x4D,0x01,0x52,
0xA3,0xB6,0x62,0x76,0x77,0x6D,0x0D,0x01,0xAD,0x44,0xB5,0xB6,0x31,0x3C,0x81,0x7F,
0x33,0x56,0x1B,0x17,0x11,0x1E,0x7B,0x92,0x66,0xC8,0x4F,0xD9,0x43,0x48,0x80,0x1B,
0x71,0x6E,0xDF,0x60,0x3B,0x38,0x24,0xC5,0x4A,0xF4,0x57,0x89,0xC0,0xBB,0xBD,0x75,
0x84,0x47,0x91,0x86,0xA9,0x63,0x76,0x5E,0x2C,0x96,0x16,0x0E,0xFE,0x96,0xAA,0x6D,
0x0C,0x40,0xCA,0x9F,0x13,0xDB,0x1E,0xCA,0x19,0xD6,0x38,0xE6,0x6F,0x65,0xDD,0x8D,
0x35,0x83,0xAF,0xCA,0x56,0xEB,0x9F,0x32,0x7F,0xE3,0x50,0x0E,0x15,0x45,0x0C,0x94,
0xF2,0xF7,0x66,0x9A,0xB0,0xAC,0xE7,0xEF,0x90,0x8B,0x0C,0x27,0x8D,0x69,0x56,0x9C,
0xD6,0x5F,0x16,0x25,0x2A,0xE9,0xD4,0x44,0x3C,0xB5,0xCF,0x23,0x65,0xAA,0xD6,0x2C,
0xD9,0x6F,0xFB,0x34,0x17,0xD3,0x93,0x6B,0x78,0xF1,0xF0,0x29,0x9E,0x6C,0xA0,0xFF};
步骤1130:支付终端发送第二密钥给密钥注入设备;
步骤1131:密钥注入设备接收支付终端发送的第二密钥,使用加密证书中的私钥解密第二密钥;
步骤1132:密钥注入设备判断第二密钥是否解密成功,是则执行步骤1133,否则发送第二密钥解密失败响应给支付终端;
步骤1133:密钥注入设备保存解密得到的第二保护密钥;
步骤1134:密钥注入设备发送第二密钥解密成功响应给支付终端;
步骤1135:支付终端判断是否接收到密钥注入设备发送的第二密钥解密成功响应,是则执行步骤1136;否则报错;
步骤1136:支付终端将第一保护密钥导入密钥容器中,设置认证状态为生成保护密钥状态;
具体的,密钥容器是支付终端开辟的一块区域进行存储密钥,这块区域是非易失性随机访问存储器;
具体的,步骤1136具体为将认证标识设为生成保护密钥状态,例如AUTH_FLAG=2;
步骤908:支付终端判断双向认证是否成功,是则返回步骤901,否则报错;
具体的,支付终端的认证状态为生成保护密钥状态则双向认证成功;
步骤909:支付终端从密钥注入设备下发的设置支付终端序列号指令中提取支付终端序列号并对支付终端进行设置;
具体的,支付终端序列号为R25860001061;
步骤910:支付终端判断设置支付终端序列号是否成功,是则返回步骤901,否则报错;
步骤911:支付终端根据获取支付终端信息指令将支付终端信息发送给密钥注入设备;
具体的,支付终端信息包括支付终端序列号和支付终端实时时钟;
在本实施例中,步骤911实现过程如图12所示,具体包括:
步骤1201:支付终端收集支付终端信息;
步骤1202:支付终端发送支付终端信息给密钥注入设备;
步骤1203:密钥注入设备判断是否接收到支付终端发送的支付终端信息,是则执行步骤1204,否则发送失败响应给支付终端;
步骤1204:密钥注入设备保存支付终端信息,根据支付终端信息中的支付终端序列号生成第一传输密钥;
步骤1205:密钥注入设备发送成功响应给支付终端;
步骤912:支付终端判断发送支付终端信息是否成功,是则返回步骤901,否则报错;
具体的,支付终端根据接收的密钥注入设备发送的响应判断发送支付终端信息是否成功;
步骤913:支付终端根据密钥注入设备下发的下载传输密钥指令进行下载传输密钥;
在本实施例中,步骤913实现过程如图13所示,具体包括:
步骤1301:支付终端向密钥注入设备发送获取第一密钥块长度请求;
具体的,第一密钥块长度为104;
步骤1302:密钥注入设备接收支付终端发送的获取第一密钥块长度请求,发送第一密钥块长度给支付终端;
步骤1303:支付终端接收密钥注入设备发送的第一密钥块长度,向密钥注入设备发送获取第一密钥块请求;
步骤1304:密钥注入设备接收支付终端发送的获取第一密钥块请求,发送第一密钥块给支付终端;
具体的,第一密钥块为{0x42,0x30,0x31,0x30,0x34,0x44,0x30,0x54,0x42,0x30,0x30,0x45,0x30,0x31,0x30,0x30,0x4B,0x53,0x30,0x38,0x30,0x32,0x35,0x35,0x2F,0x96,0x14,0x32,0x4C,0x0E,0x04,0xE5,0xB1,0xDE,0x1A,0x33,0xA7,0x3C,0x81,0xE8,0xD8,0xB8,0x6B,0x0C,0xB5,0xAA,0x28,0x89,0x6D,0x9C,0xBA,0x27,0x4D,0x01,0x52,0xA3,0xB6,0x62,0x76,0x77,0x6D,0x0D,0x01,0xAD,0x44,0xB5,0xB6,0x31,0x3C,0x81,0x7F,0x33,0x56,0x1B,0x17,0x11,0x1E,0x7B,0x92,0x66,0xC8,0x4F,0xD9,0x43,0x48,0x80,0x1B,0x71,0x8D,0x53,0x02,0x43,0x42,0x27,0x42,0xCA,0xC8,0x15,0x07,0xF3,0xE9,0xC2,0x54,0xFF};
具体的,第一密钥块包括头域、数据域和MAC值;
在本实施例中,步骤1304实现过程如图14所示,具体包括:
步骤1401:密钥注入设备根据保存的第二保护密钥分散生成第一加密密钥;
步骤1402:密钥注入设备利用第一加密密钥对第一传输密钥加密得到第一密钥块的数据域;
步骤1403:密钥注入设备根据第一密钥块的数据域,结合头域和MAC值形成第一密钥块;
步骤1305:支付终端根据第一密钥块长度接收第一密钥块;
步骤1306:支付终端分析第一密钥块的头域得到传输密钥索引;
具体的,传输密钥索引为{0x00,0x32,0x35,0x35};
步骤1307:支付终端对传输密钥索引的合法性进行验证,如验证合法则执行步骤1308,否则报错;
在本实施例中,步骤1307实现过程如图15所示,具体包括:
步骤1501:支付终端分析第一密钥块的头域得到第一密钥集标识符;
具体的,第一密钥集标识符为{0x00,0xFF};
步骤1502:支付终端判断第一密钥集标识符与保存的密钥集标识符是否相等,是则传输密钥索引合法,执行步骤1308,否则报错;
具体的,保存的标识符为{0x00,0xFF};
步骤1308:支付终端检索第一保护密钥是否存在,是则执行步骤1309,否则报错;
步骤1309:支付终端根据第一保护密钥分析第一密钥块的数据域得到第二传输密钥,并将第二传输密钥和传输密钥索引进行关联;
在本实施例中,步骤1309的实现过程如图16所示,具体包括:
步骤1601:支付终端根据第一保护密钥分散生成第二加密密钥;
具体的,第二加密密钥为{0x17,0x06,0x23,0xC9,0xA6,0x8A,0x08,0xA7,0xF7,0x32,0xC6,0x14,0xD7,0xA4,0xB4,0xE7,0x59,0x98,0x7B,0x1B,0xAD,0x11,0xD0,0xD3};
步骤1602:支付终端利用第二加密密钥解密第一密钥块的数据域得到第二传输密钥,并将第二传输密钥和传输密钥索引进行关联;
具体的,第二传输密钥为{0x29,0x34,0x38,0x88,0x44,0xF9,0x85,0xA8,0x01,0xCB,0x86,0x40,0x53,0x97,0xFA,0x6F,0x9E,0x26,0x2D,0xD1,0x32,0x2F,0xDC,0x5A};
步骤1310:支付终端根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用分析得到的第二传输密钥替换保存在密钥容器中的第二传输密钥,否则保存分析得到的第二传输密钥至密钥容器中;
具体的,传输密钥索引存在则传输密钥索引状态非空,传输密钥索引不存在则传输密钥索引状态为空,如传输密钥索引状态非空则密钥容器中保存有第二传输密钥,如传输密钥索引状态为空则密钥容器中无第二传输密钥;
步骤914:支付终端判断下载传输密钥是否成功,是则返回步骤901,否则报错;
步骤915:支付终端根据密钥注入设备下发的校验传输密钥指令进行校验;
在本实施例中,步骤915实现过程如图17所示,具体包括:
步骤1701:支付终端向密钥注入设备发送随机数请求;
步骤1702:密钥注入设备接收支付终端发送的随机数请求,生成第四随机数,保存并发送给支付终端;
具体的,第四随机数为{0x5E,0x5B,0x97,0x76,0x3A,0xF4,0xAB,0x9B,0xC5,0x18,0x23,0x25,0x82,0xEE,0xDA,0xBE,0xA3,0x44,0x5D,0xCC,0xF1,0xDD,0x41,0xBE};
步骤1703:支付终端接收密钥注入设备发送的第四随机数,检索第二传输密钥是否存在于密钥容器中,是则执行步骤1704,否则报错;
步骤1704:支付终端从密钥容器中取出第二传输密钥;
具体的,密钥容器是支付终端开辟的一块区域进行存储密钥,这块区域是非易失性随机访问存储器;
步骤1705:支付终端使用第二传输密钥对第四随机数进行加密得到第一加密值;
具体的,支付终端使用3DES算法;
具体的,第一加密值为{0x71,0x5B,0xA3,0x5A,0x76,0x05,0x5B,0x3E,0x4E,0x5B,0x56,0xE4,0x24,0xFC,0x75,0x2A,0xCF,0x9E,0x18,0x89,0xF0,0x48,0x0D,0x26};
步骤1706:支付终端发送第一加密值给密钥注入设备;
步骤1707:密钥注入设备接收支付终端发送的第一加密值,使用第一传输密钥对第一加密值解密得到第五随机数;
步骤1708:密钥注入设备判断保存的第四随机数和第五随机数是否相等,是则执行步骤1709,否则密钥注入设备发送校验失败响应给支付终端,执行步骤1710;
步骤1709:密钥注入设备发送校验成功响应给支付终端,执行步骤1710;
步骤1710:支付终端接收密钥注入设备发送的响应,根据响应判断校验传输密钥是否成功,是则执行步骤1711,否则报错;
步骤1711:支付终端设置认证状态为传输密钥校验完成状态;
具体的,步骤1711具体为将认证标识设为传输密钥校验完成状态,例如AUTH_FLAG=3;
步骤916:支付终端判断校验传输密钥是否成功,是则安全导入支付终端传输密钥成功,否则返回步骤901;
具体的,步骤916通过认证标识进行判断,如果认证标识是传输校验完成状态(例如AUTH_FLAG=3)则导入传输密钥成功。
实施例三
本发明实施例三提供一种安全导入支付终端密钥的支付终端,如图18所示,包括:
第一发送模块11,用于向密钥注入设备发送操作指令请求;
第一接收模块12,用于接收密钥注入设备发送的操作指令;
第一判断模块13,用于根据第一接收模块12接收到的操作指令判断认证状态是否合法,如合法则触发第二判断模块14,否则触发第一报错模块15;
第二判断模块14,用于判断第一接收模块12接收到的操作指令的类型,如为双向认证指令触发第一生成发送模块16,如为下载传输密钥指令触发第二发送模块20,如为校验传输指令触发第三发送模块26;
第一报错模块15,用于报错;
第一生成发送模块16,用于产生第一随机数,并发送第一随机数给密钥注入设备;
接收验证模块17,用于接收密钥注入设备发送的证书和签名值,根据接收到的证书、签名值和第一生成发送模块16产生的第一随机数判断密钥注入设备是否合法,是则触发第二生成发送模块18,否则触发第一报错模块15;所述证书包括加密证书;
第二生成发送模块18,用于产生第三随机数并作为第一保护密钥,使用所述加密证书中的公钥加密第一保护密钥得到第二密钥,并发送第二密钥给密钥注入设备;
接收导入模块19,用于接收密钥注入设备发送的第二密钥解密成功响应,并将第一保护密钥导入支付终端的密钥容器中,触发第一发送模块11;
第二发送模块20,用于发送获取第一密钥块请求给密钥注入设备;
接收分析模块21,用于接收密钥注入设备发送的第一密钥块,分析第一密钥块的头域得到传输密钥索引;
验证模块22,用于对接收分析模块21得到的传输密钥索引的合法性进行验证,如验证合法则触发第三判断模块23,否则触发第一报错模块15;
第三判断模块23,用于检索第一保护密钥是否存在,是则触发分析关联模块24,否则触发第一报错模块15;
分析关联模块24,用于根据第三判断模块23判断存在的第一保护密钥分析第一密钥块的数据域得到第二传输密钥,并将第二传输密钥和传输密钥索引进行关联,触发第一判断保存模块25;
第一判断保存模块25,用于根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用分析关联模块24分析得到的第二传输密钥替换保存在密钥容器中的第二传输密钥,触发第一发送模块11,否则保存分析关联模块24分析得到的第二传输密钥至密钥容器中,触发第一发送模块11;
第三发送模块26,用于发送随机数请求给密钥注入设备;
第一接收判断模块27,用于接收密钥注入设备发送的第四随机数,检索第二传输密钥是否存在于密钥容器中,是则触发加密发送模块28,否则触发第一报错模块15;
加密发送模块28,用于从密钥容器中取出第二传输密钥,使用第二传输密钥对第四随机数进行加密得到第一加密值,并将第一加密值发送给密钥注入设备;
第二接收判断模块29,用于接收密钥注入设备发送的响应,根据响应判断校验传输密钥是否成功,是则安全导入支付终端密钥成功,否则触发第一发送模块11。
可选的,在本实施例中,还包括:
第一获取设置模块,用于当第二判断模块判断操作指令的类型为设置实时时钟指令时,从设置实时时钟指令中提取实时时间,根据实时时间对支付终端内的计时模块进行设置;
计时模块,用于计时;
第四判断模块,用于判断第一获取设置模块设置支付终端的计时模块是否成功,是则触发第一发送模块,否则触发第一报错模块。
可选的,在本实施例中,接收验证模块17包括:
第一接收单元,用于根据证书名称接收密钥注入设备发送的用户证书和加密证书;
第一判断单元,用于判断第一接收单元接收到的用户证书和加密证书是否均合法且判断计时模块中的当前时间是否在用户证书的证书有效时间内,如判断均为是则触发第一发送单元,否则触发第一报错模块;
第一发送单元,用于发送用户证书和加密证书的合法响应给密钥注入设备,触发接收验证单元;
接收验证单元,用于接收密钥注入设备发送的签名值,根据第一随机数对签名值进行验证,如验证成功则触发第二生成发送模块,如验证失败则触发第一报错模块。
可选的,在本实施例中,还包括:
第二获取设置模块,用于当第二判断模块判断操作指令的类型为设置支付终端序列号指令时从设置支付终端序列号指令中提取支付终端序列号,根据支付终端序列号对支付终端进行设置;
第五判断模块,用于判断第二获取设置模块是否设置成功,是则触发第一发送模块,否则触发第一报错模块。
可选的,在本实施例中,还包括:
收集发送模块,用于当第二判断模块判断操作指令的类型为获取支付终端信息指令时,收集支付终端信息并将支付终端信息发送给密钥注入设备;支付终端信息包括支付终端序列号;
第三接收判断模块,用于接收密钥注入设备发送的响应,根据响应判断收集发送模块发送支付终端信息是否成功,是则触发第一发送模块,否则触发第一报错模块。
可选的,在本实施例中,第一判断单元用于判断用户证书是否合法,具体为:对用户证书中的证书体进行哈希运算得到第一哈希值;使用保存的CA证书中的公钥解密用户证书中的签名值得到第二哈希值;判断第一哈希值和第二哈希值是否相等,是则用户证书合法,否则用户证书不合法。
可选的,在本实施例中,第一判断单元用于判断加密证书是否合法,具体为:对加密证书中的证书体进行哈希运算得到第三哈希值;使用保存的CA证书中的公钥解密加密证书中的签名值得到第四哈希值;判断第三哈希值和第四哈希值是否相等,是则加密证书合法,否则加密证书不合法。
可选的,在本实施例中,接收验证单元包括:
接收子单元,用于接收密钥注入设备发送的签名值;
运算子单元,用于对第一随机数进行哈希运算得到第二摘要值;
解密子单元,用于使用用户证书中的公钥对签名值进行解密得到第三摘要值;
判断子单元,用于判断运算子单元得到的第二摘要值和解密子单元得到的第三摘要值是否相等,是则签名值验证成功,触发第二生成发送模块,否则触发第一报错模块。
可选的,在本实施例中,第一判断模块13包括:
第二判断单元,用于判断认证状态是否处于未认证状态或双向认证完成状态,是则触发第三判断单元,否则触发第四判断单元;
第三判断单元,用于判断操作指令是否为第一预设指令,是则认证状态合法,触发第二判断模块,否则触发第一报错模块;
第四判断单元,用于判断认证状态是否处于生成保护密钥状态,是则触发第五判断单元,否则认证状态合法,触发第二判断模块;
第五判断单元,用于判断操作指令是否为第二预设指令,是则认证状态合法,触发第二判断模块,否则触发第一报错模块。
可选的,在本实施例中,第一预设指令为设置实时时钟指令或双向认证指令或获取支付终端信息指令或设置支付终端序列号指令。
可选的,在本实施例中,第二预设指令为校验传输密钥指令或下载传输密钥指令。
可选的,在本实施例中,验证模块22包括:
分析单元,用于分析第一密钥块的头域得到第一密钥集标识符;
第六判断单元,用于判断分析单元分析得到的第一密钥集标识符与支付终端内保存的密钥集标识符是否相等,是则传输密钥索引合法,触发第三判断模块,否则触发第一报错模块。
可选的,在本实施例中,分析关联模块24包括:
运算解密单元,用于根据第一保护密钥分散生成第二加密密钥,使用第二加密密钥解密第一密钥块的数据域得到第二传输密钥;
关联单元,用于将运算解密单元得到的第二传输密钥和传输密钥索引进行关联,触发第一判断保存模块。
实施例四
本发明实施例四提供一种安全导入支付终端密钥的系统,如图19所示,包括支付终端和密钥注入设备;
支付终端包括:
第一发送模块11,用于向密钥注入设备发送操作指令请求;
第一接收模块12,用于接收密钥注入设备发送的操作指令;
第一判断模块13,用于根据第一接收模块12接收到的操作指令判断认证状态是否合法,如合法则触发第二判断模块14,否则触发第一报错模块15;
第二判断模块14,用于判断第一接收模块12接收到的操作指令的类型,如为双向认证指令触发第一生成发送模块16,如为下载传输密钥指令触发第二发送模块20,如为校验传输指令触发第三发送模块26;
第一报错模块15,用于报错;
第一生成发送模块16,用于产生第一随机数,并发送第一随机数给密钥注入设备;
接收验证模块17,用于接收密钥注入设备发送的证书和签名值,根据接收到的证书、签名值和第一生成发送模块16产生的第一随机数判断密钥注入设备是否合法,是则触发第二生成发送模块18,否则触发第一报错模块15;所述证书包括加密证书;
第二生成发送模块18,用于产生第三随机数并作为第一保护密钥,使用所述加密证书中的公钥加密第一保护密钥得到第二密钥,并发送第二密钥给密钥注入设备;
接收导入模块19,用于接收密钥注入设备发送的第二密钥解密成功响应,并将第一保护密钥导入支付终端的密钥容器中,触发第一发送模块11;
第二发送模块20,用于发送获取第一密钥块请求给密钥注入设备;
接收分析模块21,用于接收密钥注入设备发送的第一密钥块,分析第一密钥块的头域得到传输密钥索引;
验证模块22,用于对接收分析模块21得到的传输密钥索引的合法性进行验证,如验证合法则触发第三判断模块23,否则触发第一报错模块15;
第三判断模块23,用于检索第一保护密钥是否存在,是则触发分析关联模块24,否则触发第一报错模块15;
分析关联模块24,用于根据第三判断模块23判断存在的第一保护密钥分析第一密钥块的数据域得到第二传输密钥,并将第二传输密钥和传输密钥索引进行关联,触发第一判断保存模块25;
第一判断保存模块25,用于根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用分析关联模块24分析得到的第二传输密钥替换保存在密钥容器中的第二传输密钥,触发第一发送模块11,否则保存分析关联模块24分析得到的第二传输密钥至密钥容器中,触发第一发送模块11;
第三发送模块26,用于发送随机数请求给密钥注入设备;
第一接收判断模块27,用于接收密钥注入设备发送的第四随机数,检索第二传输密钥是否存在于密钥容器中,是则触发加密发送模块28,否则触发第一报错模块15;
加密发送模块28,用于从密钥容器中取出第二传输密钥,使用第二传输密钥对第四随机数进行加密得到第一加密值,并将第一加密值发送给密钥注入设备;
第二接收判断模块29,用于接收密钥注入设备发送的响应,根据响应判断校验传输密钥是否成功,是则安全导入支付终端密钥成功,否则触发第一发送模块11;
密钥注入设备包括:
第二接收模块30,用于接收支付终端发送的操作指令请求;
第四发送模块31,用于发送操作指令给支付终端;
第一接收发送模块32,接收支付终端发送的第一随机数,发送证书和签名值给支付终端;
第一接收解密模块33,用于接收支付终端发送的第二密钥,使用加密证书中的私钥解密第二密钥;
第二判断保存模块34,用于判断解密第二密钥是否成功,是则保存解密得到的第二保护密钥并触发第四发送模块31给支付终端发送第二密钥解密成功响应,否则触发第四发送模块31给支付终端发送第二密钥解密失败响应;;
第二接收发送模块35,用于接收支付终端发送的第一密钥块请求,发送第一密钥块给支付终端;
第三接收发送模块36,用于接收支付终端发送的随机数请求,发送第四随机数给支付终端;
第二接收解密模块37,用于接收支付终端发送的第一加密值,用第一传输密钥对第一加密值解密得到第五随机数,触发第六判断模块38;
第六判断模块38,用于判断保存的第四随机数和第二接收解密模块37解密得到的第五随机数是否相等,是则触发第四发送模块31给支付终端发送校验成功响应,否则触发第四发送模块31给支付终端发送校验失败响应。
可选的,在本实施例中,支付终端还包括:
第一获取设置模块,用于当第二判断模块判断操作指令的类型为设置实时时钟指令时,从设置实时时钟指令中提取实时时间,根据实时时间对支付终端内的计时模块进行设置;
计时模块,用于计时;
第四判断模块,用于判断第一获取设置模块设置支付终端的计时模块是否成功,是则触发第一发送模块,否则触发第一报错模块。
可选的,在本实施例中,接收验证模块17包括:
第一接收单元,用于根据证书名称接收密钥注入设备发送的用户证书和加密证书;
第一判断单元,用于判断第一接收单元接收到的用户证书和加密证书是否均合法且判断计时模块中的当前时间是否在用户证书的证书有效时间内,如判断均为是则触发第一发送单元,否则触发第一报错模块;
第一发送单元,用于发送用户证书和加密证书的合法响应给密钥注入设备,触发接收验证单元;
接收验证单元,用于接收密钥注入设备发送的签名值,根据第一随机数对签名值进行验证,如验证成功则触发第二生成发送模块,如验证失败则触发第一报错模块;
第一接收发送模块32包括:
第二接收单元,用于接收支付终端发送的第一随机数;
第三发送单元,用于发送用户证书和加密证书给支付终端;
第二接收单元,还用于接收支付终端发送的用户证书和加密证书的合法响应;
运算发送单元,用于对第一随机数进行哈希运算得到第一摘要值,根据算法使用用户证书中的私钥对第一摘要值进行签名得到签名值,发送签名值给支付终端。
可选的,在本实施例中,支付终端还包括:
第二获取设置模块,用于当第二判断模块判断操作指令的类型为设置支付终端序列号指令时从设置支付终端序列号指令中提取支付终端序列号,根据支付终端序列号对支付终端进行设置;
第五判断模块,用于判断第二获取设置模块是否设置成功,是则触发第一发送模块,否则触发第一报错模块。
可选的,在本实施例中,支付终端还包括:
收集发送模块,用于当第二判断模块判断操作指令的类型为获取支付终端信息指令时,收集支付终端信息并将支付终端信息发送给密钥注入设备;支付终端信息包括支付终端序列号;
第三接收判断模块,用于接收密钥注入设备发送的响应,根据响应判断发送支付终端信息是否成功,是则触发第一发送模块,否则触发第一报错模块;
密钥注入设备还包括:
第二接收模块,还用于接收支付终端发送的支付终端信息;
生成模块,用于根据第二接收模块接收的支付终端信息中的支付终端序列号生成第一传输密钥;
第四发送模块,还用于发送响应给支付终端。
可选的,在本实施例中,第一判断单元用于判断用户证书是否合法,具体为:对用户证书中的证书体进行哈希运算得到第一哈希值;使用保存的CA证书中的公钥解密用户证书中的签名值得到第二哈希值;判断第一哈希值和第二哈希值是否相等,是则用户证书合法,否则用户证书不合法。
可选的,在本实施例中,第一判断单元用于判断加密证书是否合法,具体为:对加密证书中的证书体进行哈希运算得到第三哈希值;使用保存的CA证书中的公钥解密加密证书中的签名值得到第四哈希值;判断第三哈希值和第四哈希值是否相等,是则加密证书合法,否则加密证书不合法。
可选的,在本实施例中,接收验证单元包括:
接收子单元,用于接收密钥注入设备发送的签名值;
运算子单元,用于对第一随机数进行哈希运算得到第二摘要值;
解密子单元,用于使用用户证书中的公钥对签名值进行解密得到第三摘要值;
判断子单元,用于判断运算子单元得到的第二摘要值和解密子单元得到的第三摘要值是否相等,是则签名值验证成功,触发第二生成发送模块,否则触发第一报错模块。
可选的,在本实施例中,第一判断模块13包括:
第二判断单元,用于判断认证状态是否处于未认证状态或双向认证完成状态,是则触发第三判断单元,否则触发第四判断单元;
第三判断单元,用于判断操作指令是否为第一预设指令,是则认证状态合法,触发第二判断模块,否则触发第一报错模块;
第四判断单元,用于判断认证状态是否处于生成保护密钥状态,是则触发第五判断单元,否则认证状态合法,触发第二判断模块;
第五判断单元,用于判断操作指令是否为第二预设指令,是则认证状态合法,触发第二判断模块,否则触发第一报错模块。
可选的,在本实施例中,第一预设指令为设置实时时钟指令或双向认证指令或获取支付终端信息指令或设置支付终端序列号指令。
可选的,在本实施例中,第二预设指令为校验传输密钥指令或下载传输密钥指令。
可选的,在本实施例中,验证模块22包括:
分析单元,用于分析第一密钥块的头域得到第一密钥集标识符;
第六判断单元,用于判断分析单元分析得到的第一密钥集标识符与支付终端内保存的密钥集标识符是否相等,是则传输密钥索引合法,触发第三判断模块,否则触发第一报错模块。
可选的,在本实施例中,分析关联模块24包括:
运算解密单元,用于根据第一保护密钥分散生成第二加密密钥,使用第二加密密钥解密第一密钥块的数据域得到第二传输密钥;
关联单元,用于将运算解密单元得到的第二传输密钥和传输密钥索引进行关联,触发第一判断保存模块。
实施例五
本发明实施例五提供一种安全导入支付终端密钥的方法,包括:
步骤S1:支付终端向密钥注入设备发送操作指令请求;当支付终端接收到密钥注入设备发送的操作指令时,根据操作指令判断认证状态是否合法,如合法则判断操作指令的类型,否则报错;
当判断操作指令的类型为双向认证指令时,执行步骤A1;
步骤A1:支付终端产生第一随机数并发送给密钥注入设备;
步骤A2:支付终端接收密钥注入设备发送的证书和签名值,根据证书、签名值和第一随机数判断密钥注入设备是否合法,是则执行步骤A3,否则报错;证书包括加密证书;
步骤A3:支付终端产生第三随机数并作为第一保护密钥,使用加密证书中的公钥加密第一保护密钥得到第二密钥并发送给密钥注入设备;
步骤A4:当支付终端接收到密钥注入设备发送的第二密钥解密成功响应时将第一保护密钥导入支付终端的密钥容器中,返回步骤S1;
当判断操作指令的类型为下载传输密钥指令时,执行步骤B1;
步骤B1:支付终端向密钥注入设备发送获取第一密钥块请求;当支付终端接收到密钥注入设备发送的第一密钥块时,分析第一密钥块的头域得到传输密钥索引,对传输密钥索引的合法性进行验证,如验证合法则执行步骤B2,否则报错;
步骤B2:支付终端检索第一保护密钥是否存在,是则支付终端根据第一保护密钥分析第一密钥块的数据域得到第二传输密钥,并将第二传输密钥和传输密钥索引进行关联,执行步骤B3,否则报错;
步骤B3:支付终端根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用分析得到的第二传输密钥替换保存在密钥容器中的第二传输密钥,返回步骤S1,否则保存分析得到的第二传输密钥至密钥容器中,返回步骤S1;
当判断操作指令的类型为校验传输密钥指令时,执行步骤C1;
步骤C1:支付终端向密钥注入设备发送随机数请求,当支付终端接收到密钥注入设备发送的第四随机数时,支付终端检索第二传输密钥是否存在于密钥容器中,是则从密钥容器中取出第二传输密钥,使用第二传输密钥对第四随机数进行加密得到第一加密值,并将第一加密值发送给密钥注入设备,执行步骤C2;否则报错;
步骤C2:支付终端接收密钥注入设备发送的响应,并根据响应判断校验传输密钥是否成功,是则安全导入支付终端传输密钥成功,否则重新下载传输密钥,返回步骤S1。
实施例六
本发明实施例六提供一种安全导入支付终端密钥的方法,包括:
步骤R1:支付终端向密钥注入设备发送操作指令请求;
步骤R2:密钥注入设备接收支付终端发送的操作指令请求,发送操作指令给支付终端;
步骤R3:支付终端接收密钥注入设备发送的操作指令,根据操作指令判断认证状态是否合法,如合法则执行步骤R4,否则报错;
步骤R4:支付终端判断操作指令的类型,如为双向认证指令时执行步骤D1,如为下载传输密钥指令时执行步骤E1,如为校验传输密钥指令时执行步骤F1;
步骤D1:支付终端产生第一随机数并发送给密钥注入设备;
步骤D2:密钥注入设备接收支付终端发送的第一随机数,发送证书和签名值给支付终端;证书包括加密证书;
步骤D3:支付终端接收密钥注入设备发送的证书和签名值,根据证书、签名值和第一随机数判断密钥注入设备是否合法,是则执行步骤D4,否则报错;
步骤D4:支付终端产生第三随机数并作为第一保护密钥,使用加密证书中的公钥加密第一保护密钥得到第二密钥并发送给密钥注入设备;
步骤D5:密钥注入设备接收支付终端发送的第二密钥,使用加密证书中的私钥解密第二密钥,判断解密第二密钥是否成功,是则保存解密得到的第二保护密钥,发送第二密钥解密成功响应给支付终端,执行步骤D6,否则发送第二密钥解密失败响应给支付终端,执行步骤D6;
步骤D6:当支付终端接收到密钥注入设备发送的第二密钥解密成功响应时将第一保护密钥导入支付终端的密钥容器中,返回步骤R1;
步骤E1:支付终端向密钥注入设备发送获取第一密钥块请求;
步骤E2:密钥注入设备接收到支付终端发送的获取第一密钥块请求,发送第一密钥块给支付终端;
步骤E3:支付终端接收密钥注入设备发送的第一密钥块,分析第一密钥块的头域得到传输密钥索引,对传输密钥索引的合法性进行验证,如验证合法则执行步骤E4,否则报错;
步骤E4:支付终端检索第一保护密钥是否存在,是则支付终端根据第一保护密钥分析第一密钥块的数据域得到第二传输密钥,并将第二传输密钥和传输密钥索引进行关联,执行步骤E5,否则报错;
步骤E5:支付终端根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用分析得到的第二传输密钥替换保存在密钥容器中的第二传输密钥,返回步骤S1,否则保存分析得到的第二传输密钥至密钥容器中,返回步骤S1;
步骤F1:支付终端向密钥注入设备发送随机数请求;
步骤F2:密钥注入设备接收支付终端发送的随机数请求,发送第四随机数给支付终端;
步骤F3:支付终端接收密钥注入设备发送的第四随机数,支付终端检索第二传输密钥是否存在于密钥容器中,是则从密钥容器中取出第二传输密钥,使用第二传输密钥对第四随机数进行加密得到第一加密值,并将第一加密值发送给密钥注入设备,执行步骤F4,否则报错;
步骤F4:密钥注入设备接收支付终端发送的第一加密值,利用保存的第一传输密钥对第一加密值解密得到第五随机数,判断保存的第四随机数和第五随机数是否相等,是则发送校验成功响应给支付终端,执行步骤F5,否则发送校验失败响应给支付终端,执行步骤F5;
步骤F5:支付终端接收密钥注入设备发送的响应,并根据响应判断校验传输密钥是否成功,是则安全导入支付终端传输密钥成功,否则重新下载传输密钥,返回步骤R1。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (48)
1.一种安全导入支付终端密钥的方法,其特征在于,包括:
步骤S1:支付终端向密钥注入设备发送操作指令请求;当所述支付终端接收到所述密钥注入设备发送的操作指令时,根据所述操作指令判断认证状态是否合法,如合法则判断所述操作指令的类型,否则报错;
当判断操作指令的类型为双向认证指令时,执行步骤A1;
步骤A1:所述支付终端产生第一随机数并发送给所述密钥注入设备;
步骤A2:所述支付终端接收所述密钥注入设备发送的证书和签名值,根据所述证书、所述签名值和所述第一随机数判断所述密钥注入设备是否合法,是则执行步骤A3,否则报错;所述证书包括加密证书;
步骤A3:所述支付终端产生第三随机数并作为第一保护密钥,使用所述加密证书中的公钥加密所述第一保护密钥得到第二密钥并发送给所述密钥注入设备;
步骤A4:当所述支付终端接收到所述密钥注入设备发送的第二密钥解密成功响应时将所述第一保护密钥导入所述支付终端的密钥容器中,返回步骤S1;
当判断操作指令的类型为下载传输密钥指令时,执行步骤B1;
步骤B1:所述支付终端向所述密钥注入设备发送获取第一密钥块请求;当所述支付终端接收到所述密钥注入设备发送的第一密钥块时,分析所述第一密钥块的头域得到传输密钥索引,对所述传输密钥索引的合法性进行验证,如验证合法则执行步骤B2,否则报错;
步骤B2:所述支付终端检索第一保护密钥是否存在,是则所述支付终端根据所述第一保护密钥分析所述第一密钥块的数据域得到第二传输密钥,并将所述第二传输密钥和所述传输密钥索引进行关联,执行步骤B3,否则报错;
步骤B3:所述支付终端根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用分析得到的所述第二传输密钥替换保存在密钥容器中的第二传输密钥,返回步骤S1,否则保存分析得到的所述第二传输密钥至所述密钥容器中,返回步骤S1;
当判断操作指令的类型为校验传输密钥指令时,执行步骤C1;
步骤C1:所述支付终端向所述密钥注入设备发送随机数请求,当所述支付终端接收到所述密钥注入设备发送的第四随机数时,所述支付终端检索第二传输密钥是否存在于密钥容器中,是则从所述密钥容器中取出所述第二传输密钥,使用所述第二传输密钥对所述第四随机数进行加密得到第一加密值,并将所述第一加密值发送给所述密钥注入设备,执行步骤C2;否则报错;
步骤C2:所述支付终端接收所述密钥注入设备发送的响应,并根据所述响应判断校验传输密钥是否成功,是则安全导入支付终端传输密钥成功,否则重新下载传输密钥,返回步骤S1;
所述步骤S1中,根据所述操作指令判断认证状态是否合法具体为:
步骤P1:所述支付终端判断所述认证状态是否处于未认证状态或双向证书认证完成状态,是则执行步骤P2,否则执行步骤P3;
步骤P2:所述支付终端判断所述操作指令是否为第一预设指令,是则所述认证状态合法,否则报错;
步骤P3:所述支付终端判断所述认证状态是否处于生成保护密钥状态,是则执行步骤P4,否则所述认证状态合法;
步骤P4:所述支付终端判断所述操作指令是否为第二预设指令,是则所述认证状态合法,否则报错。
2.如权利要求1所述的方法,其特征在于,还包括:
当判断操作指令的类型为设置实时时钟指令时,所述支付终端从所述设置实时时钟指令中提取实时时间,根据所述实时时间对所述支付终端的计时模块进行设置并判断是否设置成功,是则返回步骤S1,否则报错。
3.如权利要求2所述的方法,其特征在于,所述步骤A2具体为:
步骤A2-1:所述支付终端根据证书名称接收所述密钥注入设备发送的用户证书和加密证书,判断所述用户证书和所述加密证书是否均合法并判断所述支付终端的计时模块中的当前时间是否在用户证书的证书有效时间内,如判断均为是则发送所述用户证书和所述加密证书的合法响应给所述密钥注入设备,执行步骤A2-2,否则报错;
步骤A2-2:所述支付终端接收所述密钥注入设备发送的签名值,根据所述第一随机数对所述签名值进行验证,如验证成功则所述密钥注入设备合法,执行步骤A3,如验证失败则报错。
4.如权利要求1所述的方法,其特征在于,还包括:
当判断操作指令的类型为设置支付终端序列号指令时,所述支付终端从所述设置支付终端序列号指令中提取支付终端序列号,根据所述支付终端序列号对所述支付终端进行设置,并判断是否设置成功,是则返回步骤S1,否则报错。
5.如权利要求4所述的方法,其特征在于,还包括:
当判断操作指令的类型为获取支付终端信息指令时,所述支付终端收集支付终端信息并将所述支付终端信息发送给所述密钥注入设备,所述支付终端根据接收到的所述密钥注入设备发送的响应判断发送所述支付终端信息是否成功,是则返回步骤S1,否则报错;所述支付终端信息包括支付终端序列号。
6.如权利要求3所述的方法,其特征在于,所述步骤A2-1中的判断所述用户证书是否合法,具体为:
所述支付终端对所述用户证书中的证书体进行哈希运算得到第一哈希值,使用保存的CA证书中的公钥解密所述用户证书中的签名值得到第二哈希值,判断所述第一哈希值和所述第二哈希值是否相等,是则所述用户证书合法,否则报错。
7.如权利要求3所述的方法,其特征在于,所述步骤A2-1中的判断所述加密证书是否合法,具体为:
所述支付终端对所述加密证书中的证书体进行哈希运算得到第三哈希值,使用保存的CA证书中的公钥解密所述加密证书中的签名值得到第四哈希值,判断所述第三哈希值和所述第四哈希值是否相等,是则所述加密证书合法,否则报错。
8.如权利要求3所述的方法,其特征在于,所述步骤A2-2中根据所述第一随机数对所述签名值进行验证具体为:
所述支付终端对所述第一随机数进行哈希运算得到第二摘要值,使用所述用户证书中的公钥对所述签名值进行解密得到第三摘要值,判断所述第二摘要值和所述第三摘要值是否相等,是则所述签名值验证成功,否则验证失败。
9.如权利要求1所述的方法,其特征在于,所述步骤P2中的所述第一预设指令具体为设置实时时钟指令或双向认证指令或获取支付终端信息指令或设置支付终端序列号指令。
10.如权利要求1所述的方法,其特征在于,所述步骤P4中的所述第二预设指令具体为校验传输密钥指令或下载传输密钥指令。
11.如权利要求1所述的方法,其特征在于,所述步骤B1中,对所述传输密钥索引的合法性进行验证具体为:
所述支付终端分析所述第一密钥块的头域得到第一密钥集标识符,判断所述第一密钥集标识符与保存的密钥集标识符是否相等,是则所述传输密钥索引合法,否则报错。
12.如权利要求1所述的方法,其特征在于,所述步骤B2中,所述支付终端根据所述第一保护密钥分析所述第一密钥块的数据域得到第二传输密钥具体为:
所述支付终端根据所述第一保护密钥分散生成第二加密密钥,利用所述第二加密密钥解密所述第一密钥块的数据域得到所述第二传输密钥。
13.一种安全导入支付终端密钥的支付终端,其特征在于,包括:
第一发送模块,用于向密钥注入设备发送操作指令请求;
第一接收模块,用于接收所述密钥注入设备发送的操作指令;
第一判断模块,用于根据所述第一接收模块接收到的所述操作指令判断认证状态是否合法,如合法则触发第二判断模块,否则触发第一报错模块;
所述第二判断模块,用于判断所述第一接收模块接收到的所述操作指令的类型,如为双向认证指令触发第一生成发送模块,如为下载传输密钥指令触发第二发送模块,如为校验传输指令触发第三发送模块;
所述第一报错模块,用于报错;
所述第一生成发送模块,用于产生第一随机数,并发送所述第一随机数给所述密钥注入设备;
接收验证模块,用于接收所述密钥注入设备发送的证书和签名值,根据接收到的证书、签名值和所述第一生成发送模块产生的第一随机数判断所述密钥注入设备是否合法,是则触发第二生成发送模块,否则触发所述第一报错模块;所述证书包括加密证书;
所述第二生成发送模块,用于产生第三随机数并作为第一保护密钥,使用所述加密证书中的公钥加密所述第一保护密钥得到第二密钥,并发送所述第二密钥给所述密钥注入设备;
接收导入模块,用于接收所述密钥注入设备发送的第二密钥解密成功响应,并将所述第一保护密钥导入所述支付终端的密钥容器中,触发所述第一发送模块;
所述第二发送模块,用于发送获取第一密钥块请求给所述密钥注入设备;
接收分析模块,用于接收所述密钥注入设备发送的第一密钥块,分析所述第一密钥块的头域得到传输密钥索引;
验证模块,用于对所述接收分析模块得到的所述传输密钥索引的合法性进行验证,如验证合法则触发第三判断模块,否则触发所述第一报错模块;
所述第三判断模块,用于检索第一保护密钥是否存在,是则触发分析关联模块,否则触发所述第一报错模块;
所述分析关联模块,用于根据所述第三判断模块判断存在的所述第一保护密钥分析所述第一密钥块的数据域得到第二传输密钥,并将所述第二传输密钥和所述传输密钥索引进行关联,触发第一判断保存模块;
所述第一判断保存模块,用于根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用所述分析关联模块分析得到的所述第二传输密钥替换保存在密钥容器中的第二传输密钥,触发所述第一发送模块;否则保存所述分析关联模块分析得到的所述第二传输密钥至所述密钥容器中,触发所述第一发送模块;
所述第三发送模块,用于发送随机数请求给所述密钥注入设备;
第一接收判断模块,用于接收所述密钥注入设备发送的第四随机数,检索第二传输密钥是否存在于密钥容器中,是则触发加密发送模块,否则触发所述第一报错模块;
所述加密发送模块,用于从所述密钥容器中取出所述第二传输密钥,使用所述第二传输密钥对所述第四随机数进行加密得到第一加密值,并将所述第一加密值发送给所述密钥注入设备;
第二接收判断模块,用于接收所述密钥注入设备发送的响应,根据所述响应判断校验传输密钥是否成功,是则安全导入支付终端密钥成功,否则触发所述第一发送模块;
所述第一判断模块具体包括:
第二判断单元,用于判断所述认证状态是否处于未认证状态或双向认证完成状态,是则触发第三判断单元,否则触发第四判断单元;
所述第三判断单元,用于判断所述操作指令是否为第一预设指令,是则所述认证状态合法,触发所述第二判断模块,否则触发所述第一报错模块;
所述第四判断单元,用于判断所述认证状态是否处于生成保护密钥状态,是则触发第五判断单元,否则所述认证状态合法,触发所述第二判断模块;
所述第五判断单元,用于判断所述操作指令是否为第二预设指令,是则所述认证状态合法,触发所述第二判断模块,否则触发所述第一报错模块。
14.如权利要求13所述的支付终端,其特征在于,还包括:
第一获取设置模块,用于当所述第二判断模块判断所述操作指令的类型为设置实时时钟指令时,从所述设置实时时钟指令中提取实时时间,根据所述实时时间对所述支付终端内的计时模块进行设置;
所述计时模块,用于计时;
第四判断模块,用于判断所述第一获取设置模块设置所述支付终端的计时模块是否成功,是则触发所述第一发送模块,否则触发所述第一报错模块。
15.如权利要求14所述的支付终端,其特征在于,所述接收验证模块具体包括:
第一接收单元,用于根据证书名称接收所述密钥注入设备发送的用户证书和加密证书;
第一判断单元,用于判断所述第一接收单元接收到的所述用户证书和所述加密证书是否均合法且判断所述计时模块中的当前时间是否在所述用户证书的证书有效时间内,如判断均为是则触发第一发送单元,否则触发所述第一报错模块;
所述第一发送单元,用于发送所述用户证书和所述加密证书的合法响应给所述密钥注入设备,触发接收验证单元;
所述接收验证单元,用于接收所述密钥注入设备发送的签名值,根据所述第一随机数对所述签名值进行验证,如验证成功则触发所述第二生成发送模块,如验证失败则触发所述第一报错模块。
16.如权利要求13所述的支付终端,其特征在于,还包括:
第二获取设置模块,用于当所述第二判断模块判断所述操作指令的类型为设置支付终端序列号指令时从所述设置支付终端序列号指令中提取支付终端序列号,根据所述支付终端序列号对所述支付终端进行设置;
第五判断模块,用于判断所述第二获取设置模块是否设置成功,是则触发所述第一发送模块,否则触发所述第一报错模块。
17.如权利要求16所述的支付终端,其特征在于,还包括:
收集发送模块,用于当所述第二判断模块判断所述操作指令的类型为获取支付终端信息指令时,收集支付终端信息并将所述支付终端信息发送给所述密钥注入设备;所述支付终端信息包括支付终端序列号;
第三接收判断模块,用于接收所述密钥注入设备发送的响应,根据所述响应判断所述收集发送模块发送所述支付终端信息是否成功,是则触发所述第一发送模块,否则触发所述第一报错模块。
18.如权利要求15所述的支付终端,其特征在于,所述第一判断单元用于判断所述用户证书是否合法,具体为:对所述用户证书中的证书体进行哈希运算得到第一哈希值;使用保存的CA证书中的公钥解密所述用户证书中的签名值得到第二哈希值;判断所述第一哈希值和所述第二哈希值是否相等,是则所述用户证书合法,否则所述用户证书不合法。
19.如权利要求15所述的支付终端,其特征在于,所述第一判断单元用于判断所述加密证书是否合法,具体为:对所述加密证书中的证书体进行哈希运算得到第三哈希值;使用保存的CA证书中的公钥解密所述加密证书中的签名值得到第四哈希值;判断所述第三哈希值和所述第四哈希值是否相等,是则所述加密证书合法,否则所述加密证书不合法。
20.如权利要求15所述的支付终端,其特征在于,所述接收验证单元具体包括:
接收子单元,用于接收所述密钥注入设备发送的签名值;
运算子单元,用于对所述第一随机数进行哈希运算得到第二摘要值;
解密子单元,用于使用所述用户证书中的公钥对所述签名值进行解密得到第三摘要值;
判断子单元,用于判断所述运算子单元得到的所述第二摘要值和所述解密子单元得到的所述第三摘要值是否相等,是则所述签名值验证成功,触发所述第二生成发送模块,否则触发所述第一报错模块。
21.如权利要求13所述的支付终端,其特征在于,所述第一预设指令为设置实时时钟指令或双向认证指令或获取支付终端信息指令或设置支付终端序列号指令。
22.如权利要求13所述的支付终端,其特征在于,所述第二预设指令为校验传输密钥指令或下载传输密钥指令。
23.如权利要求13所述的支付终端,其特征在于,所述验证模块包括:
分析单元,用于分析所述第一密钥块的头域得到第一密钥集标识符;
第六判断单元,用于判断所述分析单元分析得到的所述第一密钥集标识符与所述支付终端内保存的密钥集标识符是否相等,是则所述传输密钥索引合法,触发第三判断模块,否则触发所述第一报错模块。
24.如权利要求13所述的支付终端,其特征在于,所述分析关联模块包括:
运算解密单元,用于根据所述第一保护密钥分散生成第二加密密钥,使用所述第二加密密钥解密所述第一密钥块的数据域得到所述第二传输密钥;
关联单元,用于将所述运算解密单元得到的第二传输密钥和所述传输密钥索引进行关联,触发所述第一判断保存模块。
25.一种安全导入支付终端密钥的方法,其特征在于,包括:
步骤R1:支付终端向密钥注入设备发送操作指令请求;
步骤R2:所述密钥注入设备接收所述支付终端发送的操作指令请求,发送操作指令给所述支付终端;
步骤R3:所述支付终端接收所述密钥注入设备发送的操作指令,根据所述操作指令判断认证状态是否合法,如合法则执行步骤R4,否则报错;
步骤R4:所述支付终端判断所述操作指令的类型,如为双向认证指令时执行步骤D1,如为下载传输密钥指令时执行步骤E1,如为校验传输密钥指令时执行步骤F1;
步骤D1:所述支付终端产生第一随机数并发送给所述密钥注入设备;
步骤D2:所述密钥注入设备接收所述支付终端发送的所述第一随机数,发送证书和签名值给所述支付终端;所述证书包括加密证书;
步骤D3:所述支付终端接收所述密钥注入设备发送的所述证书和所述签名值,根据所述证书、所述签名值和所述第一随机数判断所述密钥注入设备是否合法,是则执行步骤D4,否则报错;
步骤D4:所述支付终端产生第三随机数并作为第一保护密钥,使用所述加密证书中的公钥加密所述第一保护密钥得到第二密钥并发送给所述密钥注入设备;
步骤D5:所述密钥注入设备接收所述支付终端发送的所述第二密钥,使用所述加密证书中的私钥解密所述第二密钥,判断解密所述第二密钥是否成功,是则保存解密得到的第二保护密钥,发送第二密钥解密成功响应给所述支付终端,执行步骤D6,否则发送第二密钥解密失败响应给所述支付终端,执行步骤D6;
步骤D6:当所述支付终端接收到所述密钥注入设备发送的第二密钥解密成功响应时将所述第一保护密钥导入所述支付终端的密钥容器中,返回步骤R1;
步骤E1:所述支付终端向所述密钥注入设备发送获取第一密钥块请求;
步骤E2:所述密钥注入设备接收到所述支付终端发送的获取第一密钥块请求,发送第一密钥块给所述支付终端;
步骤E3:所述支付终端接收所述密钥注入设备发送的所述第一密钥块,分析所述第一密钥块的头域得到传输密钥索引,对所述传输密钥索引的合法性进行验证,如验证合法则执行步骤E4,否则报错;
步骤E4:所述支付终端检索第一保护密钥是否存在,是则所述支付终端根据所述第一保护密钥分析所述第一密钥块的数据域得到第二传输密钥,并将所述第二传输密钥和所述传输密钥索引进行关联,执行步骤E5,否则报错;
步骤E5:所述支付终端根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用分析得到的所述第二传输密钥替换保存在密钥容器中的第二传输密钥,返回步骤S1,否则保存分析得到的所述第二传输密钥至所述密钥容器中,返回步骤S1;
步骤F1:所述支付终端向所述密钥注入设备发送随机数请求;
步骤F2:所述密钥注入设备接收所述支付终端发送的随机数请求,发送第四随机数给所述支付终端;
步骤F3:所述支付终端接收所述密钥注入设备发送的所述第四随机数,所述支付终端检索第二传输密钥是否存在于密钥容器中,是则从所述密钥容器中取出所述第二传输密钥,使用所述第二传输密钥对所述第四随机数进行加密得到第一加密值,并将所述第一加密值发送给所述密钥注入设备,执行步骤F4,否则报错;
步骤F4:所述密钥注入设备接收所述支付终端发送的所述第一加密值,利用保存的第一传输密钥对所述第一加密值解密得到第五随机数,判断保存的所述第四随机数和所述第五随机数是否相等,是则发送校验成功响应给所述支付终端,执行步骤F5,否则发送校验失败响应给所述支付终端,执行步骤F5;
步骤F5:所述支付终端接收所述密钥注入设备发送的响应,并根据所述响应判断校验传输密钥是否成功,是则安全导入支付终端传输密钥成功,否则重新下载传输密钥,返回步骤R1;
所述步骤R3中,所述根据所述操作指令判断认证状态是否合法,具体为:
步骤G1:所述支付终端判断所述认证状态是否处于未认证状态或双向证书认证完成状态,是则执行步骤G2,否则执行步骤G3;
步骤G2:所述支付终端判断所述操作指令是否为第一预设指令,是则所述认证状态合法,否则报错;
步骤G3:所述支付终端判断所述认证状态是否处于生成保护密钥状态,是则执行步骤G4,否则所述认证状态合法;
步骤G4:所述支付终端判断所述操作指令是否为第二预设指令,是则所述认证状态合法,否则报错。
26.如权利要求25所述的方法,其特征在于,还包括:
所述步骤R4中所述支付终端判断所述操作指令的类型如为设置实时时钟指令时,所述支付终端从所述设置实时时钟指令中提取实时时间,根据实时时间对所述支付终端的计时模块进行设置并判断是否设置成功,是则返回步骤R1,否则报错。
27.如权利要求26所述的方法,其特征在于,所述步骤D3具体为:
步骤D3-1:所述支付终端根据证书名称接收所述密钥注入设备发送的用户证书和加密证书,判断所述用户证书和所述加密证书是否均合法并判断所述支付终端的计时模块中的当前时间是否在用户证书的证书有效时间内,如判断均为是则发送所述用户证书和所述加密证书的合法响应给所述密钥注入设备,执行步骤D3-2,否则报错;
步骤D3-2:所述密钥注入设备对所述第一随机数进行哈希运算得到第一摘要值,根据算法使用所述用户证书中的私钥对所述第一摘要值进行签名得到签名值并将所述签名值发送给所述支付终端;
步骤D3-3:所述支付终端接收所述密钥注入设备发送的所述签名值,根据所述第一随机数对所述签名值进行验证,如验证成功则所述密钥注入设备合法,执行步骤D4,如验证失败则报错。
28.如权利要求25所述的方法,其特征在于,还包括:
所述步骤R4中所述支付终端判断所述操作指令的类型如为设置支付终端序列号指令时,所述支付终端从所述设置支付终端序列号指令中提取支付终端序列号,根据所述支付终端序列号对所述支付终端进行设置,并判断是否设置成功,是则返回步骤R1,否则报错。
29.如权利要求28所述的方法,其特征在于,还包括:
所述步骤R4中所述支付终端判断所述操作指令的类型如为获取支付终端信息指令时,所述支付终端收集支付终端信息并将所述支付终端信息发送给所述密钥注入设备,所述支付终端根据接收到的所述密钥注入设备发送的响应判断发送所述支付终端信息是否成功,是则返回步骤R1,否则报错;所述支付终端信息包括支付终端序列号。
30.如权利要求27所述的方法,其特征在于,所述步骤D3-1中的判断所述用户证书是否合法,具体为:
所述支付终端对所述用户证书中的证书体进行哈希运算得到第一哈希值,使用保存的CA证书中的公钥解密所述用户证书中的签名值得到第二哈希值,判断所述第一哈希值和所述第二哈希值是否相等,是则所述用户证书合法,否则报错。
31.如权利要求27所述的方法,其特征在于,所述步骤D3-1中的判断所述加密证书是否合法,具体为:
所述支付终端对所述加密证书中的证书体进行哈希运算得到第三哈希值,使用保存的CA证书中的公钥解密所述加密证书中的签名值得到第四哈希值,判断所述第三哈希值和所述第四哈希值是否相等,是则所述加密证书合法,否则报错。
32.如权利要求27所述的方法,其特征在于,所述步骤D3-3中根据所述第一随机数对所述签名值进行验证具体为:
所述支付终端对所述第一随机数进行哈希运算得到第二摘要值,使用所述用户证书中的公钥对所述签名值进行解密得到第三摘要值,判断所述第二摘要值和所述第三摘要值是否相等,是则所述签名值验证成功,否则验证失败。
33.如权利要求25所述的方法,其特征在于,所述步骤G2中的所述第一预设指令具体为设置实时时钟指令或双向认证指令或获取支付终端信息指令或设置支付终端序列号指令。
34.如权利要求25所述的方法,其特征在于,所述步骤G4中的所述第二预设指令具体为校验传输密钥指令或下载传输密钥指令。
35.如权利要求25所述的方法,其特征在于,所述步骤E3中,对所述传输密钥索引的合法性进行验证具体为:
所述支付终端分析所述第一密钥块的头域得到第一密钥集标识符,判断所述第一密钥集标识符与保存的密钥集标识符是否相等,是则所述传输密钥索引合法,否则报错。
36.如权利要求25所述的方法,其特征在于,所述步骤E4中,所述支付终端根据所述第一保护密钥分析所述第一密钥块的数据域得到第二传输密钥具体为:
所述支付终端根据所述第一保护密钥分散生成第二加密密钥,利用所述第二加密密钥解密所述第一密钥块的数据域得到所述第二传输密钥。
37.一种安全导入支付终端密钥的系统,其特征在于,所述系统包括支付终端和密钥注入设备;
所述支付终端包括:
第一发送模块,用于向密钥注入设备发送操作指令请求;
第一接收模块,用于接收所述密钥注入设备发送的操作指令;
第一判断模块,用于根据所述第一接收模块接收到的所述操作指令判断认证状态是否合法,如合法则触发第二判断模块,否则触发第一报错模块;
所述第二判断模块,用于判断所述第一接收模块接收到的所述操作指令的类型,如为双向认证指令触发第一生成发送模块,如为下载传输密钥指令触发第二发送模块,如为校验传输指令触发第三发送模块;
所述第一报错模块,用于报错;
所述第一生成发送模块,用于产生第一随机数,并发送所述第一随机数给所述密钥注入设备;
接收验证模块,用于接收所述密钥注入设备发送的证书和签名值,根据接收到的证书、签名值和所述第一生成发送模块产生的第一随机数判断所述密钥注入设备是否合法,是则触发第二生成发送模块,否则触发所述第一报错模块;所述证书包括加密证书;
所述第二生成发送模块,用于产生第三随机数并作为第一保护密钥,使用所述加密证书中的公钥加密所述第一保护密钥得到第二密钥,并发送所述第二密钥给所述密钥注入设备;
接收导入模块,用于接收所述密钥注入设备发送的第二密钥解密成功响应,并将所述第一保护密钥导入所述支付终端的密钥容器中,触发所述第一发送模块;
所述第二发送模块,用于发送获取第一密钥块请求给所述密钥注入设备;
接收分析模块,用于接收所述密钥注入设备发送的第一密钥块,分析所述第一密钥块的头域得到传输密钥索引;
验证模块,用于对所述接收分析模块得到的所述传输密钥索引的合法性进行验证,如验证合法则触发第三判断模块,否则触发所述第一报错模块;
所述第三判断模块,用于检索第一保护密钥是否存在,是则触发分析关联模块,否则触发所述第一报错模块;
所述分析关联模块,用于根据所述第三判断模块判断存在的所述第一保护密钥分析所述第一密钥块的数据域得到第二传输密钥,并将所述第二传输密钥和所述传输密钥索引进行关联,触发第一判断保存模块;
所述第一判断保存模块,用于根据传输密钥索引状态判断密钥容器中是否保存有第二传输密钥,是则用所述分析关联模块分析得到的所述第二传输密钥替换保存在密钥容器中的第二传输密钥,触发所述第一发送模块;否则保存所述分析关联模块分析得到的所述第二传输密钥至所述密钥容器中,触发所述第一发送模块;
所述第三发送模块,用于发送随机数请求给所述密钥注入设备;
第一接收判断模块,用于接收所述密钥注入设备发送的第四随机数,检索第二传输密钥是否存在于密钥容器中,是则触发加密发送模块,否则触发所述第一报错模块;
所述加密发送模块,用于从所述密钥容器中取出所述第二传输密钥,使用所述第二传输密钥对所述第四随机数进行加密得到第一加密值,并将所述第一加密值发送给所述密钥注入设备;
第二接收判断模块,用于接收所述密钥注入设备发送的响应,根据所述响应判断校验传输密钥是否成功,是则安全导入支付终端密钥成功,否则触发所述第一发送模块;
所述密钥注入设备包括:
第二接收模块,用于接收所述支付终端发送的操作指令请求;
第四发送模块,用于发送操作指令给所述支付终端;
第一接收发送模块,用于接收所述支付终端发送的第一随机数,发送证书和签名值给所述支付终端;
第一接收解密模块,用于接收所述支付终端发送的第二密钥,使用所述加密证书中的私钥解密所述第二密钥;
第二判断保存模块,用于判断解密所述第二密钥是否成功,是则保存解密得到的第二保护密钥并触发所述第四发送模块给所述支付终端发送第二密钥解密成功响应,否则触发第四发送模块给所述支付终端发送第二密钥解密失败响应;
第二接收发送模块,用于接收所述支付终端发送的获取第一密钥块请求,发送第一密钥块给所述支付终端;
第三接收发送模块,用于接收所述支付终端发送的随机数请求,发送第四随机数给所述支付终端;
第二接收解密模块,用于接收所述支付终端发送的第一加密值,用保存的第一传输密钥对所述第一加密值解密得到第五随机数,触发第六判断模块;
所述第六判断模块,用于判断保存的第四随机数和所述接收解密模块解密得到的所述第五随机数是否相等,是则触发所述第四发送模块给所述支付终端发送校验成功响应,否则触发所述第四发送模块给所述支付终端发送校验失败响应;
所述第一判断模块具体包括:
第二判断单元,用于判断所述认证状态是否处于未认证状态或双向认证完成状态,是则触发第三判断单元,否则触发第四判断单元;
所述第三判断单元,用于判断所述操作指令是否为第一预设指令,是则所述认证状态合法,触发所述第二判断模块,否则触发所述第一报错模块;
所述第四判断单元,用于判断所述认证状态是否处于生成保护密钥状态,是则触发第五判断单元,否则所述认证状态合法,触发所述第二判断模块;
所述第五判断单元,用于判断所述操作指令是否为第二预设指令,是则所述认证状态合法,触发所述第二判断模块,否则触发所述第一报错模块。
38.如权利要求37所述的系统,其特征在于,所述支付终端还包括:
第一获取设置模块,用于当所述第二判断模块判断所述操作指令的类型为设置实时时钟指令时,从所述设置实时时钟指令中提取实时时间,根据所述实时时间对所述支付终端内的计时模块进行设置;
所述计时模块,用于计时;
第四判断模块,用于判断所述第一获取设置模块设置所述支付终端的计时模块是否成功,是则触发所述第一发送模块,否则触发所述第一报错模块。
39.如权利要求38所述的系统,其特征在于,所述接收验证模块具体包括:
第一接收单元,用于根据证书名称接收所述密钥注入设备发送的用户证书和加密证书;
第一判断单元,用于判断所述第一接收单元接收到的所述用户证书和所述加密证书是否均合法且判断所述计时模块中的当前时间是否在所述用户证书的证书有效时间内,如判断均为是则触发第一发送单元,否则触发所述第一报错模块;
所述第一发送单元,用于发送所述用户证书和所述加密证书的合法响应给所述密钥注入设备,触发接收验证单元;
所述接收验证单元,用于接收所述密钥注入设备发送的签名值,根据所述第一随机数对所述签名值进行验证,如验证成功则触发第二生成发送模块,如验证失败则触发所述第一报错模块;
所述第一接收发送模块具体包括:
第二接收单元,用于接收所述支付终端发送的第一随机数;
第三发送单元,用于发送用户证书和加密证书给所述支付终端;
所述第二接收单元,还用于接收所述支付终端发送的用户证书和加密证书的合法响应;
运算发送单元,用于对所述第一随机数进行哈希运算得到第一摘要值,根据算法使用所述用户证书中的私钥对所述第一摘要值进行签名得到签名值,发送所述签名值给所述支付终端。
40.如权利要求37所述的系统,其特征在于,所述支付终端还包括:
第二获取设置模块,用于当所述第二判断模块判断所述操作指令的类型为设置支付终端序列号指令时从所述设置支付终端序列号指令中提取支付终端序列号,根据所述支付终端序列号对所述支付终端进行设置;
第五判断模块,用于判断所述第二获取设置模块是否设置成功,是则触发所述第一发送模块,否则触发所述第一报错模块。
41.如权利要求40所述的系统,其特征在于,所述支付终端还包括:
收集发送模块,用于当所述第二判断模块判断所述操作指令的类型为获取支付终端信息指令时,收集支付终端信息并将所述支付终端信息发送给所述密钥注入设备;所述支付终端信息包括支付终端序列号;
第三接收判断模块,用于接收所述密钥注入设备发送的响应,根据响应判断发送所述支付终端信息是否成功,是则触发所述第一发送模块,否则触发所述第一报错模块;
所述密钥注入设备还包括:
所述第二接收模块,还用于接收所述支付终端发送的所述支付终端信息;
生成模块,用于根据所述第二接收模块接收的所述支付终端信息中的所述支付终端序列号生成第一传输密钥;
所述第四发送模块,还用于发送响应给所述支付终端。
42.如权利要求39所述的系统,其特征在于,所述第一判断单元用于判断所述用户证书是否合法,具体为:对所述用户证书中的证书体进行哈希运算得到第一哈希值;使用保存的CA证书中的公钥解密所述用户证书中的签名值得到第二哈希值;判断所述第一哈希值和所述第二哈希值是否相等,是则所述用户证书合法,否则所述用户证书不合法。
43.如权利要求39所述的系统,其特征在于,所述第一判断单元用于判断所述加密证书是否合法,具体为:对所述加密证书中的证书体进行哈希运算得到第三哈希值;使用保存的CA证书中的公钥解密所述加密证书中的签名值得到第四哈希值;判断所述第三哈希值和所述第四哈希值是否相等,是则所述加密证书合法,否则所述加密证书不合法。
44.如权利要求39所述的系统,其特征在于,所述接收验证单元具体包括:
接收子单元,用于接收所述密钥注入设备发送的签名值;
运算子单元,用于对所述第一随机数进行哈希运算得到第二摘要值;
解密子单元,用于使用所述用户证书中的公钥对所述签名值进行解密得到第三摘要值;
判断子单元,用于判断所述运算子单元得到的所述第二摘要值和所述解密子单元得到的所述第三摘要值是否相等,是则所述签名值验证成功,触发所述第二生成发送模块,否则触发所述第一报错模块。
45.如权利要求37所述的系统,其特征在于,所述第一预设指令为设置实时时钟指令或双向认证指令或获取支付终端信息指令或设置支付终端序列号指令。
46.如权利要求37所述的系统,其特征在于,所述第二预设指令为校验传输密钥指令或下载传输密钥指令。
47.如权利要求37所述的系统,其特征在于,所述验证模块包括:
分析单元,用于分析所述第一密钥块的头域得到第一密钥集标识符;
第六判断单元,用于判断所述分析单元分析得到的所述第一密钥集标识符与所述支付终端内保存的密钥集标识符是否相等,是则所述传输密钥索引合法,触发第三判断模块,否则触发所述第一报错模块。
48.如权利要求37所述的系统,其特征在于,所述分析关联模块包括:
运算解密单元,用于根据所述第一保护密钥分散生成第二加密密钥,使用所述第二加密密钥解密所述第一密钥块的数据域得到所述第二传输密钥;
关联单元,用于将所述运算解密单元得到的第二传输密钥和所述传输密钥索引进行关联,触发所述第一判断保存模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910310576.0A CN110061848B (zh) | 2019-04-17 | 2019-04-17 | 一种安全导入支付终端密钥的方法、支付终端及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910310576.0A CN110061848B (zh) | 2019-04-17 | 2019-04-17 | 一种安全导入支付终端密钥的方法、支付终端及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110061848A CN110061848A (zh) | 2019-07-26 |
CN110061848B true CN110061848B (zh) | 2021-09-14 |
Family
ID=67319304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910310576.0A Active CN110061848B (zh) | 2019-04-17 | 2019-04-17 | 一种安全导入支付终端密钥的方法、支付终端及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110061848B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414638B (zh) * | 2020-04-23 | 2023-03-24 | 飞天诚信科技股份有限公司 | 一种区分密钥生成方式的实现方法及装置 |
CN112769546A (zh) * | 2021-01-27 | 2021-05-07 | 艾体威尔电子技术(北京)有限公司 | 一种终端设备注入密钥方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5214698A (en) * | 1991-03-20 | 1993-05-25 | International Business Machines Corporation | Method and apparatus for validating entry of cryptographic keys |
CN102571355A (zh) * | 2012-02-02 | 2012-07-11 | 飞天诚信科技股份有限公司 | 一种不落地导入密钥的方法及装置 |
CN103237005A (zh) * | 2013-03-15 | 2013-08-07 | 福建联迪商用设备有限公司 | 密钥管理方法及系统 |
CN103716322A (zh) * | 2013-03-15 | 2014-04-09 | 福建联迪商用设备有限公司 | 密钥下载方法、管理方法、下载管理方法及装置和系统 |
CN103716167A (zh) * | 2013-03-15 | 2014-04-09 | 福建联迪商用设备有限公司 | 一种安全采集和分发传输密钥的方法及装置 |
CN104301113A (zh) * | 2014-10-17 | 2015-01-21 | 飞天诚信科技股份有限公司 | 一种基于多证书多用途的数字签名方法和系统 |
-
2019
- 2019-04-17 CN CN201910310576.0A patent/CN110061848B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5214698A (en) * | 1991-03-20 | 1993-05-25 | International Business Machines Corporation | Method and apparatus for validating entry of cryptographic keys |
CN102571355A (zh) * | 2012-02-02 | 2012-07-11 | 飞天诚信科技股份有限公司 | 一种不落地导入密钥的方法及装置 |
CN103237005A (zh) * | 2013-03-15 | 2013-08-07 | 福建联迪商用设备有限公司 | 密钥管理方法及系统 |
CN103716322A (zh) * | 2013-03-15 | 2014-04-09 | 福建联迪商用设备有限公司 | 密钥下载方法、管理方法、下载管理方法及装置和系统 |
CN103716167A (zh) * | 2013-03-15 | 2014-04-09 | 福建联迪商用设备有限公司 | 一种安全采集和分发传输密钥的方法及装置 |
CN103731259A (zh) * | 2013-03-15 | 2014-04-16 | 福建联迪商用设备有限公司 | 一种终端主密钥tmk安全下载方法及系统 |
WO2014139403A1 (zh) * | 2013-03-15 | 2014-09-18 | 福建联迪商用设备有限公司 | 一种终端主密钥tmk安全下载方法及系统 |
CN104301113A (zh) * | 2014-10-17 | 2015-01-21 | 飞天诚信科技股份有限公司 | 一种基于多证书多用途的数字签名方法和系统 |
Non-Patent Citations (1)
Title |
---|
面向物联网信息安全保护的轻量化密钥体系设计;刘熙胖等;《信息安全研究》;20180905;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110061848A (zh) | 2019-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100172501A1 (en) | Secure key system | |
CN104301113B (zh) | 一种基于多证书多用途的数字签名方法和系统 | |
Klima | Finding MD5 collisions on a notebook PC using multi-message modifications | |
Klima | Finding md5 collisions–a toy for a notebook | |
US5724427A (en) | Method and apparatus for autokey rotor encryption | |
CN110198214B (zh) | 身份标识生成方法、验证方法及装置 | |
WO2023020110A1 (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN110061848B (zh) | 一种安全导入支付终端密钥的方法、支付终端及系统 | |
CN109983732A (zh) | 保护密钥库内容的使用 | |
Bernstein | Cryptography in nacl | |
Tews et al. | Breaking dvb-csa | |
US6529487B1 (en) | Method and apparatus for securely transmitting distributed RAND for use in mobile station authentication | |
Stern et al. | Cs-cipher | |
do Nascimento et al. | FlexAEAD-A lightweight cipher with integrated authentication | |
WO2022052859A1 (zh) | 一种数据传输方法及数据传输设备 | |
WO2022078078A1 (zh) | 一种外接设备模拟键盘的实现方法、装置及系统 | |
CN115348101A (zh) | 基于混沌分组密码的数据加密方法及系统 | |
Smyshlyaev et al. | The security evaluated standardized password-authenticated key exchange (SESPAKE) protocol | |
EP0928526B1 (en) | Method and apparatus for enhanced cmea employing enhanced transformations | |
CN112528349A (zh) | 一种数据处理方法、装置、电子设备及可读存储介质 | |
CN113987589B (zh) | 一种处理数据的方法、装置、计算机可读存储介质及装置 | |
Maximov | A new stream cipher Mir-1 | |
Shao-Hui et al. | Security analysis of lightweight authentication protocol from wistp 2013 | |
Ding et al. | Cryptanalysis of Loiss stream cipher | |
Li | DroneSig: Lightweight Digital Signature Protocol for Micro Aerial Vehicles |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |