密钥离线传输方法和装置与流程

文档序号:12067782阅读:494来源:国知局
密钥离线传输方法和装置与流程

本发明涉及计算机技术领域,特别是涉及一种密钥离线传输方法和装置。



背景技术:

随着移动支付技术快速发展,销售终端(POS终端Point of sales销售点终端)作为金融支付系统的前端硬件设备,也发生了快速发展,采用各种新型技术的POS终端快速涌现,如蓝牙POS终端、智能POS终端和云POS终端等。POS终端因为涉及个人账户和财产安全,需要对交易敏感信息进行加密。然而,用于下载密钥的销售终端受网络环境的限制,在只能接入交易网络而无法接入其他网络时,无法与用于提供密钥的销售终端进行密钥传输。



技术实现要素:

基于此,有必要针对用于下载密钥的销售终端受网络环境的限制,在只能接入交易网络而无法接入其他网络时无法与用于提供密钥的销售终端进行密钥传输的问题,提供一种密钥离线传输方法和装置。

一种密钥离线传输方法,所述方法包括:

通过数据传输端口与用于下载密钥的销售终端建立串口通信连接;

通过所述串口通信连接接收所述用于下载密钥的销售终端发送的传输密钥;

通过所述传输密钥加密待下载密钥;

将加密后的所述待下载密钥发送至所述用于下载密钥的销售终端;

接收所述用于下载密钥的销售终端反馈的确认消息;

根据所述确认消息断开与所述用于下载密钥的销售终端间的串口通信连接。

在一个实施例中,所述待下载密钥包括相互独立的第一密钥和第二密钥;

所述通过数据传输端口与用于下载密钥的销售终端建立串口通信连接之前,所述方法还包括:

获取通过管理员账号输入的用于生成第一密钥的第一密钥分量、用于生成第二密钥的第二密钥分量以及密钥序列号;

将获取的第一密钥分量按照预设的逻辑运算方式计算得到第一密钥;

将获取的第二密钥分量按照预设的逻辑运算方式计算得到基础密钥;

根据所述基础密钥和所述密钥序列号获得第二密钥。

在一个实施例中,所述根据所述基础密钥和所述密钥序列号获得第二密钥的步骤包括:

按照内置的密钥加密方式对所述基础密钥和所述密钥序列号进行加密,得到第二密钥第一部分;

根据预设的逻辑运算方式转化所述基础密钥;

按照内置的密钥加密方式对转化后的所述基础密钥和所述密钥序列号进行加密,得到第二密钥第二部分;

将所述第二密钥第一部分和所述第二密钥第二部分组合得到第二密钥。

在一个实施例中,所述通过数据传输端口与用于下载密钥的销售终端建立串口通信连接的步骤包括:

向所述用于下载密钥的销售终端发送基于串口通信的身份验证指令;

接收所述用于下载密钥的销售终端根据所述身份验证指令反馈的身份验证消息;

在对所述身份验证消息验证通过后,通过数据传输端口与所述用于下载密钥的销售终端建立串口通信连接。

在一个实施例中,所述接收所述用于下载密钥的销售终端发送的传输密钥的步骤包括:

接收所述用于下载密钥的销售终端发送的公钥;所述公钥由所述用于下载密钥的销售终端根据内置的密钥生成算法生成;

所述接收所述用于下载密钥的销售终端反馈的确认消息的步骤包括:

接收所述用于下载密钥的销售终端反馈的确认消息;所述确认消息由所述用于下载密钥的销售终端按照根据所述内置的密钥生成算法生成的,且与所述公钥对应的私钥解密所述带下载密钥后生成。

一种密钥离线传输装置,所述装置包括:

串口通信建立模块,用于通过数据传输端口与用于下载密钥的销售终端建立串口通信连接;

接收模块,用于通过所述串口通信连接接收所述用于下载密钥的销售终端发送的传输密钥;

加密模块,用于通过所述传输密钥加密待下载密钥;

发送模块,用于将加密后的所述待下载密钥发送至所述用于下载密钥的销售终端;

确认模块,用于接收所述用于下载密钥的销售终端反馈的确认消息;根据所述确认消息断开与所述用于下载密钥的销售终端间的串口通信连接。

在一个实施例中,所述待下载密钥包括相互独立的第一密钥和第二密钥;

所述装置还包括:

密钥生成模块,用于获取通过管理员账号输入的用于生成第一密钥的第一密钥分量、用于生成第二密钥的第二密钥分量以及密钥序列号;将获取的第一密钥分量按照预设的逻辑运算方式计算得到第一密钥;将获取的第二密钥分量按照预设的逻辑运算方式计算得到基础密钥;根据所述基础密钥和所述密钥序列号获得第二密钥。

在一个实施例中,所述密钥生成模块还用于按照内置的密钥加密方式对所述基础密钥和所述密钥序列号进行加密,得到第二密钥第一部分;根据预设的逻辑运算方式转化所述基础密钥;按照内置的密钥加密方式对转化后的所述基础密钥和所述密钥序列号进行加密,得到第二密钥第二部分;将所述第二密钥第一部分和所述第二密钥第二部分组合得到第二密钥。

在一个实施例中,所述串口通信建立模块还用于向所述用于下载密钥的销售终端发送基于串口通信的身份验证指令;接收所述用于下载密钥的销售终端根据所述身份验证指令反馈的身份验证消息;在对所述身份验证消息验证通过后,通过数据传输端口与所述用于下载密钥的销售终端建立串口通信连接。

在一个实施例中,所述接收模块还用于接收所述用于下载密钥的销售终端发送的公钥;所述公钥由所述用于下载密钥的销售终端根据内置的密钥生成算法生成;

所述确认模块还用于接收所述用于下载密钥的销售终端反馈的确认消息;所述确认消息由所述用于下载密钥的销售终端按照根据所述内置的密钥生成算法生成的,且与所述公钥对应的私钥解密所述带下载密钥后生成。

上述密钥离线传输方法和装置,通过数据传输端口与用于下载密钥的销售终端建立串口通信连接,提供了离线条件下进行密钥传输的传输通道。再通过用于下载密钥的销售终端发送的传输密钥对需要下载的密钥进行加密,保证了待下载密钥在传输过程中的安全性。

附图说明

图1为一个实施例中密钥离线传输方法的应用环境图;

图2为一个实施例中用于实现密钥离线传输方法的用于提供密钥的销售终端的结构示意图;

图3为一个实施例中密钥离线传输方法的流程示意图;

图4为一个实施例中生成待下载密钥的步骤的流程示意图;

图5为一个实施例中根据基础密钥和密钥序列号获得第二密钥的步骤的流程示意图;

图6为一个实施例中密钥离线传输方法的时序图;

图7为一个实施例中密钥离线传输装置的结构框图;

图8为另一个实施例中密钥离线传输装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为一个实施例中密钥离线传输方法的应用环境图。参照图1,该密钥离线传输方法应用于密钥离线下载系统。密钥离线下载系统包括用于提供密钥的销售终端110和用于下载密钥的销售终端120,用于提供密钥的销售终端110通过数据传输接口与用于下载密钥的销售终端120建立串口通信连接。用于提供密钥的销售终端110用于生成并管理密钥,可以是用于提供密钥的POS终端等。用于下载密钥的销售终端120用于获取用于提供密钥的销售终端110生成的密钥,可以是用于接收密钥的POS终端等。

图2为一个实施例中用于提供密钥的销售终端的内部结构示意图。如图2所示,该用于提供密钥的销售终端包括通过系统总线连接的处理器、非易失性存储介质、内存储器、串行接口、显示屏和输入装置。其中,用于提供密钥的销售终端的非易失性存储介质存储有操作系统和数据库。该处理器用于提供计算和控制能力,支撑整个用于提供密钥的销售终端的运行。用于提供密钥的销售终端中的内存储器中可储存有计算机可读指令,该计算机可读指令被所述处理器执行时,可使得所述处理器执行一种密钥离线传输方法。串行接口用于与用于下载密钥的销售终端进行串口通信,如发送待下载密钥至用于下载密钥的销售终端,接收用于下载密钥的销售终端返回的确认消息等。用于提供密钥的销售终端的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

如图3所示,在一个实施例中,提供了一种密钥离线传输方法,本实施例以该方法应用于上述图1中的用于提供密钥的销售终端110来举例说明。该方法具体包括如下步骤:

S302,通过数据传输端口与用于下载密钥的销售终端建立串口通信连接。

其中,数据传输端口是指用于传输数据的物理接口。串口即串行接口,也称串行通信接口或串行通讯接口(通常指COM接口(Cluster Communication Port串行通讯端口)),是采用串行通信方式的扩展接口。串口通信连接是指两个硬件设备之间通过物理专线连接物理接口建立的通信连接。

具体地,用于提供密钥的销售终端的数据传输端口可通过物理专线与用于下载密钥的销售终端的数据传输端口连接,在用于提供密钥的销售终端和用于下载密钥的销售终端之间建立基于串口的通信连接,以使得用于提供密钥的销售终端和用于下载密钥的销售终端之间通过该串口通信连接进行数据交互。

S304,通过串口通信连接接收用于下载密钥的销售终端发送的传输密钥。

其中,传输密钥是指用于加密传输数据的密钥。传输密钥可以是对称密钥,也可以是非对称密钥。对称密钥是数据传输双方使用相同的密钥。非对称密钥包括两个密钥:公开密钥(Public Key,简称公钥)和私有密钥(Private Key,简称私钥),数据传输中需要两个密钥来分别进行加密和解密。

在一个实施例中,步骤S304包括:接收用于下载密钥的销售终端发送的公钥;公钥由用于下载密钥的销售终端根据内置的密钥生成算法生成。具体地,用于下载密钥的销售终端可根据RSA加密算法(RSA algorithm)生成公钥与私钥的密钥对。在生成密钥对后,对生成的密钥对进行验证。用于下载密钥的销售终端可通过对一段随机数进行加密解密来验证密钥对的正确性。其中,随机数的生成是通过C语言标准库中的随机函数(random)随机生成的,使用公钥加密这串随机数,再用私钥解密这串随机数,如果解密后的结果与生成的随机数是相同,则判定生成的密钥对是正确的。

用于下载密钥的销售终端在判定生成的密钥对正确后,将公钥作为传输密钥封装入密钥请求数据包,再为密钥请求数据包添加包头、包尾和校验码,将添加完成的密钥请求数据包通过建立的基于串口的通信连接发送至用于提供密钥的销售终端。其中,校验码是事先设定的用于进行数据包校验的校验码。用于下载密钥的销售终端和/或用于提供密钥的销售终端通过该校验码标识发送的数据包的类型。

在一个实施例中,用于下载密钥的销售终端可根据DES算法(Data Encryption Standard,数据加密标准)生成传输密钥,将传输密钥封装入密钥请求数据包,再为密钥请求数据包添加包头、包尾和校验码,将添加完成的密钥请求数据包通过建立的基于串口的通信连接发送至用于提供密钥的销售终端。

S306,通过传输密钥加密待下载密钥。

具体地,用于提供密钥的销售终端在接收到用于下载密钥的销售终端发送的密钥请求数据包后,对接收到的密钥请求数据包进行解析,提取密钥请求数据包中包括的校验码。若该校验码表示该数据包为封装了传输密钥的密钥请求数据包,则从该密钥请求数据包中提取封装的传输密钥;若该校验码表示该密钥请求数据包不为封装了传输密钥的密钥请求数据包,则将该密钥请求数据包丢弃。

S308,将加密后的待下载密钥发送至用于下载密钥的销售终端。

具体地,用于提供密钥的销售终端在提取到传输密钥后,将使用获取的传输密钥加密待下载密钥,将加密后的待下载密钥装入密钥应答数据包,再为密钥应答数据包添加包头、包尾和校验码,将添加完成的密钥应答数据包通过建立的基于串口的通信连接发送至用于下载密钥的销售终端。

S310,接收用于下载密钥的销售终端反馈的确认消息。

具体地,用于下载密钥的销售终端在接收到用于下载密钥的销售终端发送的密钥应答数据包后,对接收到的密钥应答数据包进行解析,提取密钥应答数据包中包括的校验码。若该校验码表示该数据包为封装了待下载密钥的密钥应答数据包,则使用传输密钥对该密钥应答数据包进行解密,提取封装的待下载密钥;若该校验码表示该密钥请求数据包不为封装了传输密钥的密钥应答数据包,则将该密钥应答数据包丢弃。

其中,当传输密钥为对称密钥时,用于解密的传输密钥与用于下载密钥的销售终端发送至用于提供密钥的销售终端的密钥一致。当传输密钥为非对称密钥时,用于解密的传输密钥是与发送的公钥对应的私钥。

在一个实施例中,步骤S310包括:接收用于下载密钥的销售终端反馈的确认消息;确认消息由用于下载密钥的销售终端按照根据内置的密钥生成算法生成的,且与公钥对应的私钥解密带下载密钥后生成。在本实施例中,只有使用与加密待下载密钥的公钥对应的私钥才能对加密后的待下载密钥进行解密,进一步保证了密钥传输的安全性。

用于下载密钥的销售终端在通过传输密钥对密钥应答数据包进行解密,提取封装的待下载密钥后,将提取的密钥存储至用于下载密钥的销售终端的安全存储区域。其中,安全存储区域是指通过PCIDSS(Payment Card Industry Data Security Standard支付卡行业数据安全标准)认证的PINPAD(Personal Identification Number Personal Digital Assistant个人标识的个人数字助手)密钥保存区域。通过PCI认证密钥保存区域可保证密钥存储的安全性。

用于下载密钥的销售终端在存储提取的密钥后,通过建立的串口通信连接向用于提供密钥的销售终端发送确认信息,以通知用于提供密钥的销售终端密钥下载完成。其中,确认消息是用于提供密钥的销售终端与用于下载密钥的销售终端预先基于串口通信协议配置的数据串。该数据串在配置时被设定为表征用于下载密钥的销售终端下载密钥完成。比如,用于提供密钥的销售终端与用于下载密钥的销售终端可事先约定数据串“\x02\x30\x30\x34\x32\x31\x30\x30\x03”作为确认信息。

S312,根据确认消息断开与用于下载密钥的销售终端间的串口通信连接。

具体地,用于提供密钥的销售终端在接收到用于下载密钥的销售终端发送的确认消息后判定用于下载密钥的销售终端下载密钥完成,断开与用于下载密钥的销售终端间的串口通信连接。

上述密钥离线传输方法,通过数据传输端口与用于下载密钥的销售终端建立串口通信连接,提供了离线条件下进行密钥传输的传输通道。再通过用于下载密钥的销售终端发送的传输密钥对需要下载的密钥进行加密,保证了待下载密钥在传输过程中的安全性。

在一个实施例中,密钥离线传输方法中待下载密钥包括相互独立的第一密钥和第二密钥。如图4所示,步骤S302之前,密钥离线传输方法还包括生成待下载密钥的步骤,具体包括如下步骤:

S402,获取通过管理员账号输入的用于生成第一密钥的第一密钥分量、用于生成第二密钥的第二密钥分量以及密钥序列号。

其中,管理员是指进行密钥管理的人员。管理员可通过管理员账号登录用于提供密钥的销售终端,通过管理员账号输入用于生成第一密钥的第一密钥分量、用于生成第二密钥的第二密钥分量以及密钥序列号。密钥序列号(Key Serial Number KSN)由密钥标识号(Key Set Identifier KSI)、设备标识号(Device Identifier DID)和交易计数标识(Transaction Counter TC)组合而成。

密钥标识号用于唯一标识一个密钥,设备标识号用于唯一标识一台用于下载密钥的销售终端,交易计数标识用于唯一标识一次交易。密钥标识号、设备标识号和交易计数标识均可以是包括数字、字母和符号中的至少一种字符的字符串。比如:DID事先约定为五个字节具体为00002,KSI具体为事先约定为八个字节FFFFF03001,由于在密钥生成阶段,未进行交易,故交易计数标识为0,那么KSN为FFFFF03001000020。

具体地,用于提供密钥的销售终端可提供仅可通过管理员账号用于进行字符输入的界面,在检测到作用于字符输入界面的操作后,获取输入的用于生成第一密钥的第一密钥分量、用于生成第二密钥的第二密钥分量以及密钥序列号。

S404,将获取的第一密钥分量按照预设的逻辑运算方式计算得到第一密钥。

具体地,第一密钥是用于加密数据的密钥。预设的逻辑运算方式是指预先设置的用于对第一密钥分量进行计算得到第一密钥的计算方式,比如异或运算等。在本实施例中,第一密钥为TMK(Terminal Master Key终端主密钥)。

在一个实施例中,第一密钥分量为两个16字节的字符串,管理员可在通过管理员账号登录用于提供密钥的销售终端输入第一密钥分量后输入用于校验第一密钥分量的KCV(Key Check Value)校验码。在通过KCV(Key Check Value)校验码校验第一密钥分量通过后,将获取的第一密钥分量按照预设的逻辑运算方式计算得到第一密钥。

KCV校验码是指使用密钥分量对指定数据加密后的部分密文数据。比如:管理员使用密钥分量8个0x00加密后的前4个字节数据当做KCV,当用于下载密钥的销售终端接收到密钥分量后,使用密钥分量对8个0x00加密得到加密结果,将加密结果前4个字节与KCV做比较,如果一致,则表示密钥分量是正确的,如果不一致,则表示密钥分量是错误的。

举例说明,若用于下载密钥的销售终端获取的通过管理员账号输入的两个16字节密钥分量和两个4字节KCV校验码分别为:第一密钥分量M1:AB AB AB AB CD CD CD CD EF EF EF EF 12 34 56 78,第一密钥分量M1的KCV校验码:M1_KCV:88 6D 67 5A,第一密钥分量M2:12 34 56 78 90AB AB CD CD EF EF AC AC BD BD EF,第一密钥分量M2的KCV校验码:M2_KCV:19 85BB 83,经KCV验证各密钥分量成功后开始生成第一密钥,第一密钥为对两个第一密钥分量做异或运算M1Xor M2,得到第一密钥为B9 9F FD D3 5D 66 66 00 22 00 00 43 BE 89EB 97。

S406,将获取的第二密钥分量按照预设的逻辑运算方式计算得到基础密钥。

其中,第二密钥分量包括用于生成LMK(Local Master Key本地主密钥)的LMK密钥分量、用于生成ZMK(Zone Master Key区域主密钥)的ZMK密钥分量和用于生成BDK(Base Derivation Key根密钥)的BDK密钥分量。LMK密钥分量、ZMK密钥分量与BDK密钥分量是相互独立且不同的密钥分量。

具体地,用于提供密钥的销售终端可先生成LMK。在安全屋环境中,用于提供密钥的销售终端在获取三个管理员通过管理员账号分别输入LMK密钥分量和KCV校验码后,可先采用KCV校验码对密钥分量进行校验,在校验成功后,对其中任意两个密钥分量进行异或运算,得到的结果再和第三个密钥分量进行异或运算,得到LMK并存入用于提供密钥的销售终端的安全存储区域。

其中,安全屋环境是指通过PCI认证的安全区域,或者处于实时监控状态下的安全区域等。由于通过管理员账号分别输入LMK密钥分量为明文显示的密钥分量,因此需要在安全屋环境下进行输入以保证明文显示的密钥分量不被泄露。LMK可用来对用于生成后续密钥的密钥分量进行加密和解密。

用于提供密钥的销售终端可采用相同的密钥生成方式继续生成ZMK并存入用于提供密钥的销售终端的安全存储区域。具体地,用于提供密钥的销售终端在先后获取三个管理员通过管理员账号分别输入经过LMK加密的ZMK密钥分量时,将在先获取的ZMK密钥分量存储至安全存储区域,然后在用于提供密钥的销售终端完成获取三个ZMK密钥分量后,用LMK对三个加密后的ZMK密钥分量进行3DES解密,以生成ZMK。其中,ZMK密钥分量事先已用LMK进行3DES(Triple Data Encryption Standard三重数据加密算法)。ZMK可用来对用于生成后续密钥的密钥分量进行加密和解密。

用于提供密钥的销售终端可采用相同的密钥生成方式继续生成BDK并存入用于提供密钥的销售终端的安全存储区域。具体地,用于提供密钥的销售终端在先后获取三个管理员通过管理员账号分别输入经过LMK或者ZMK加密的BDK密钥分量时,将在先获取的BDK密钥分量存储至安全存储区域,然后在用于提供密钥的销售终端完成获取三个BDK密钥分量后,用LMK或者ZMK对三个加密后的BDK密钥分量进行3DES解密,以生成BDK。其中,BDK密钥分量事先已用LMK或者ZMK进行3DES(Triple Data Encryption Standard三重数据加密算法)。用于提供密钥的销售终端生成的BDK即为基础密钥。

S408,根据基础密钥和密钥序列号获得第二密钥。

具体地,第二密钥也是用于加密数据的密钥,是与第一密钥不同且相互独立的密钥。第一密钥与第二密钥对数据进行加密的方式不同。在本实施例中,第二密钥为IPEK(Initial PIN Encrypting Key初始密码加密密钥)

在本实施例中,待下载密钥包括相互独立的第一密钥和第二密钥,第一密钥由第一密钥分量生成,第二密钥由第二密钥分量以及密钥序列号相同,通过多个密钥以保证数据传输的安全性。而且,生成的第二密钥与密钥序列号有关,不同的密钥序列号生成不同的第二密钥,避免了密钥完全相同而导致密钥泄露风险高的问题。

在一个实施例中,步骤S408具体包括如下步骤:

S502,按照内置的密钥加密方式对基础密钥和密钥序列号进行加密,得到第二密钥第一部分。

具体地,用于提供密钥的销售终端可采用3DES加密算法对基础密钥BDK与密钥序列号KSN进行加密,得到第二密钥第一部分。第二密钥第一部分可以是IPEK的左半部分。

S504,根据预设的逻辑运算方式转化基础密钥。

具体地,用于提供密钥的销售终端可事先配置用于转化基础密钥的字符串。在第二密钥生成阶段,用于提供密钥的销售终端可将预先配置的用于转化基础密钥的字符串与基础密钥进行异或运算得到转化后的基础密钥。

S506,按照内置的密钥加密方式对转化后的基础密钥和密钥序列号进行加密,得到第二密钥第二部分。

具体地,用于提供密钥的销售终端可采用3DES加密算法对转化后的基础密钥BDK与密钥序列号KSN进行加密,得到第二密钥第二部分。第二密钥第二部分可以是IPEK的右半部分。

S508,将第二密钥第一部分和第二密钥第二部分组合得到第二密钥。

在本实施例中,通过多步密钥生成步骤生成用于进行第一密钥加密的第二密钥,进一步保证了密钥的安全性。

举例说明,用于提供密钥的销售终端生成IPEK过程具体如下:

用于提供密钥的销售终端获取的LMK密钥分量L1为11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11,LMK密钥分量L1的KCV校验码L1_KCV为82 E1 36 65,LMK密钥分量L2为22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22,LMK密钥分量L2的KCV校验码L2_KCV为00 96 2B 60,LMK密钥分量L3为21 07 65 4B A3 98FE DC CD EF 89 3A B4 56 70 12,LMK密钥分量L3的KCV校验码L3_KCV为3F 5F 93 61。用于提供密钥的销售终端使用KCV码验证各密钥分量输入正确后,将三个LMK密钥分量进行异或运算生成LMK=L1Xor L2 Xor L3=12 34 56 78 90 AB CD EF FE DC BA 09 87 65 43 21。

用于提供密钥的销售终端获取的中ZMK密钥分量Z1为44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44,ZMK密钥分量Z1的KCV校验码Z1_KCV为E2 F2 43 40,ZMK密钥分量Z2为55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55,ZMK密钥分量Z2的KCV校验码Z2_KCV为0C D7 DC 49,ZMK密钥分量Z3为66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66,ZMK密钥分量Z3的KCV校验码Z3_KCV为B0B5 63C2。用于提供密钥的销售终端使用KCV码验证各密钥分量输入正确后,将三个ZMK密钥分量进行异或运算生成ZMK=Z1Xor Z2 Xor Z3=77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77。

用于提供密钥的销售终端获取的中BDK密钥分量B1为77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77,BDK密钥分量B1的KCV校验码B1_KCV为4C BE 91 BE,BDK密钥分量B2为88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88,BDK密钥分量B2的KCV校验码B2_KCV为F9F4FB D3,BDK密钥分量B3为99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99,BDK密钥分量B3的KCV校验码B3_KCV为0F 2F CF 4A。用于提供密钥的销售终端使用KCV码验证各密钥分量输入正确后,将三个BDK密钥分量进行异或运算生成BDK=B1Xor B2 Xor B3=66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66。

用于提供密钥的销售终端还可根据获取的密文生成BDK。具体地,BDK密文为12 34 56 78 90 AB CD EF AB CD EF AB CD EF AB CD,用ZMK对BDK密文进行3SES解密得到BDK_明文=3DES(ZMK,B_密文)=EA A2AD CB 97 37 13 37 EA A2 AD CB 97 37 13 37,即为BDK。

用于提供密钥的销售终端获取的KSN为FFFFF03001000020,生成的BDK为66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66,将KSN和BDK进行3DS加密作为IPEK的左半部分IPEK(left)=3DES(BDK,KSN)=5E6A7318D60EF47D。用于提供密钥的销售终端再将BDK与用于转化BDK的“C0C0C0C0 0000 0000 C0C0 C0C0 0000 0000”进行异或运算,得到转化后的BDK为A6A6A6A6 66 66 66 66 A6 A6 A6 A6 66 66 66 66,再将转化后的BDK和KSN进行3DES加密作为IPEK的右半部分IPEK(right)=3DES(异或结果,KSN)=B2B56CC92CC92EB6。那么IPEK=IPEK(left)+IPEK(right)=F781F00BFF6F83A4B2B56CC92CC92EB6。

在一个实施例中,密钥传输方法中步骤S302具体包括向用于下载密钥的销售终端发送基于串口通信的身份验证指令;接收用于下载密钥的销售终端根据身份验证指令反馈的身份验证消息;在对身份验证消息验证通过后,通过数据传输端口与用于下载密钥的销售终端建立串口通信连接。

具体地,用于提供密钥的销售终端和用于下载密钥的销售终端可事先配置基于串口通信协议的身份验证指令和身份验证消息。将可基于串口传输的一串字符作为身份验证指令,并配置另一串字符作为与该身份验证指令对应的身份验证消息。用于提供密钥的销售终端可向用于下载密钥的销售终端发送基于串口通信的身份验证指令,接收用于下载密钥的销售终端对身份验证指令进行解析,在解析完成后,将与身份验证指令对应的身份验证消息进行反馈,用于提供密钥的销售终端在接收到用于下载密钥的销售终端反馈的身份验证消息后,进行解析验证,在验证通过后,通过数据传输端口与用于下载密钥的销售终端建立串口通信连接。

举例说明,用于提供密钥的销售终端发送8个字节"\x02\x30\x30\x32\x31\x30\x03\x30"给用于下载密钥的销售终端,用于下载密钥的销售终端收到用于提供密钥的销售终端发来的数据并验证成功后,发送10个字节的数据"\x02\x30\x30\x34\x31\x30\x30\x30\x03\x36"应答回用于提供密钥的销售终端,用于提供密钥的销售终端收到应答后验证成功后,则用于提供密钥的销售终端与用于下载密钥的销售终端基于串口的通信连接成功开始通讯。

本实施例中,在与用于下载密钥的销售终端间基于串口通信协议的身份认证成功后才建立基于串口的通信连接,进一步保障了密钥下载的安全性。

如图6所示为一个实施例中密钥离线传输时序图。管理员通过管理员账户登录用于提供密钥的销售终端,输入LMK密钥分量,用于提供密钥的销售终端根据LMK密钥分量成LMK;用于提供密钥的销售终端再根据输入的ZMK密钥分量成ZMK;然后根据输入的BDK密钥分量成BDK或者根据输入的BDK密文生成BDK;再根据输入的KSN和BDK生成IPEK,并根据TMK密钥分量生成TMK。

用于提供密钥的销售终端在生成IPEK和TMK后,向用于下载密钥的销售终端发送基于串口通信的身份验证指令;接收用于下载密钥的销售终端根据身份验证指令反馈的身份验证消息;在对身份验证消息验证通过后,通过数据传输端口与用于下载密钥的销售终端建立串口通信连接。

用于下载密钥的销售终端将生成的公私密钥对中的公钥发送至用于提供密钥的销售终端,用于提供密钥的销售终端根据接收到的公钥加密生成的IPEK和/或TMK,将加密后的IPEK和/或TMK发送至用于下载密钥的销售终端,用于下载密钥的销售终端再根据与公钥对应的私钥解密加密后的IPEK和/或TMK,并将解密后的IPEK和/或TMK存储至安全存储区域,并向用于提供密钥的销售终端反馈确认消息,通知用于提供密钥的销售终端密钥下载完成。

如图7所示,在一个实施例中,提供了一种密钥离线传输装置,包括:串口通信建立模块701、接收模块702、加密模块703、发送模块704和确认模块705。

串口通信建立模块701,用于通过数据传输端口与用于下载密钥的销售终端建立串口通信连接。

接收模块702,用于通过串口通信连接接收用于下载密钥的销售终端发送的传输密钥。

加密模块703,用于通过传输密钥加密待下载密钥。

发送模块704,用于将加密后的待下载密钥发送至用于下载密钥的销售终端。

确认模块705,用于接收用于下载密钥的销售终端反馈的确认消息;根据确认消息断开与用于下载密钥的销售终端间的串口通信连接。

上述密钥离线传输装置,通过数据传输端口与用于下载密钥的销售终端建立串口通信连接,提供了离线条件下进行密钥传输的传输通道。再通过用于下载密钥的销售终端发送的传输密钥对需要下载的密钥进行加密,保证了待下载密钥在传输过程中的安全性。

在一个实施例中,串口通信建立模块701还用于向用于下载密钥的销售终端发送基于串口通信的身份验证指令;接收用于下载密钥的销售终端根据身份验证指令反馈的身份验证消息;在对身份验证消息验证通过后,通过数据传输端口与用于下载密钥的销售终端建立串口通信连接。

本实施例中,在与用于下载密钥的销售终端间基于串口通信协议的身份认证成功后才建立基于串口的通信连接,进一步保障了密钥下载的安全性。

在一个实施例中,接收模块702还用于接收用于下载密钥的销售终端发送的公钥;公钥由用于下载密钥的销售终端根据内置的密钥生成算法生成。

确认模块705还用于接收用于下载密钥的销售终端反馈的确认消息;确认消息由用于下载密钥的销售终端按照根据内置的密钥生成算法生成的,且与公钥对应的私钥解密带下载密钥后生成。

在本实施例中,只有使用与加密待下载密钥的公钥对应的私钥才能对加密后的待下载密钥进行解密,进一步保证了密钥传输的安全性。

如图8所示,在一个实施例中,提供了一种密钥离线传输装置,包括:密钥生成模块801、串口通信建立模块802、接收模块803、加密模块804、发送模块805和确认模块806。

密钥生成模块801,用于获取通过管理员账号输入的用于生成第一密钥的第一密钥分量、用于生成第二密钥的第二密钥分量以及密钥序列号;将获取的第一密钥分量按照预设的逻辑运算方式计算得到第一密钥;将获取的第二密钥分量按照预设的逻辑运算方式计算得到基础密钥;根据基础密钥和密钥序列号获得第二密钥。

串口通信建立模块801,用于通过数据传输端口与用于下载密钥的销售终端建立串口通信连接。

接收模块802,用于通过串口通信连接接收用于下载密钥的销售终端发送的传输密钥。

加密模块803,用于通过传输密钥加密待下载密钥。

发送模块804,用于将加密后的待下载密钥发送至用于下载密钥的销售终端。

确认模块805,用于接收用于下载密钥的销售终端反馈的确认消息;根据确认消息断开与用于下载密钥的销售终端间的串口通信连接。

本实施例中,待下载密钥包括相互独立的第一密钥和第二密钥,第一密钥由第一密钥分量生成,第二密钥由第二密钥分量以及密钥序列号相同,通过多个密钥以保证数据传输的安全性。而且,生成的第二密钥与密钥序列号有关,不同的密钥序列号生成不同的第二密钥,避免了密钥完全相同而导致密钥泄露风险高的问题。

在一个实施例中,密钥生成模块801还用于按照内置的密钥加密方式对基础密钥和密钥序列号进行加密,得到第二密钥第一部分;根据预设的逻辑运算方式转化基础密钥;按照内置的密钥加密方式对转化后的基础密钥和密钥序列号进行加密,得到第二密钥第二部分;将第二密钥第一部分和第二密钥第二部分组合得到第二密钥。

本实施例中,通过多步密钥生成步骤生成用于进行第一密钥加密的第二密钥,进一步保证了密钥的安全性。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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