一.工作密钥
1.概念
工作秘钥也称为数据密钥,包含PIN秘钥,MAC秘钥以及磁道秘钥(TDK)。在POS每次做签到交易时,由POS中心下发给POS。需要经常性地定期更换,通常每天更换一次。
在联机更新的报文中对工作密钥必须用TMK(主密钥)加密,形成密文后进行传输。
2.介绍
工作密钥包含的三种密钥(PIN密钥,MAC密钥以及磁道密钥)
1.PIN秘钥
PIN秘钥,(Terminal PIN encryption Key)TPK,用于计算加密PIN(个人银行卡的密码,6位数)。在签到时,下发给POS终端,以密文的形式,POS终端接收到密文后,需要使用主秘钥去解密,然后校验,校验通过后,将TPK存储在专用的密钥保护芯片里。TPK用于加密在局域网内POS终端和POS中心之间传送的PIN。TPK需要经常性地定期更换,通常每天更换一次。此密钥具有开机自毁功能。
当用户在密码键盘上输入银行卡密码时,输出的是加密后的密文(通过TPK加密PIN后的密文),那么在网络传输中,一直都使用的是该密文,即时被截获,也是密文,所以最大限度的保护了用户PIN的安全。
2.MAC秘钥
MAC秘钥,(Terminal Administrative Key)TAK,用于计算校验MAC。MAC是用来完成消息来源正确性鉴别,防止数据被篡改或非法用户窃入的数据。在签到时,下发给POS终端,以密文的形式,Pos终端接收到密文后,需要使用主秘钥去解密,然后校验,校验通过后,将TAK存储在专用的密钥保护芯片里。TAK用于局域网内POS终端与POS中心之间传送信息时,生成和校验一个信息认证代码(Message Authentication Code),从而达到信息认证的目的。TAK需要经常性地更换,通常每天更换一次。
3.磁道秘钥
磁道信息加密密钥,TRK,用于加密磁道信息,例如发卡方信息(包括卡片验证码CVN等信息)。当需要TRK时,在签到时会下发给POS终端。
4.终端PIN密钥(TPK)
终端PIN密钥是一个数据加密用的密钥,适用于局域网络中,它是在局域网内通过TMK加密,由终端数据受理者自动分配到终端且保持通讯双方之间的对称性。TPK用于加密在局域网内终端和终端数据受理者之间传送的PIN。TPK在本地存储在加密机中通过索引的方式调用。TPK需要经常性地定期更换,通常每天更换一次。
5.终端认证密钥(TAK)
终端认证密钥是一个数据加密用的密钥,适用于局域网内。它在局域网内通过TMK加密由终端数据受理者自动分配到终端或通过BMK加密由终端数据受理者自动分配到交换中心。TAK用于局域网内终端与终端数据受理者之间传送信息时,生成和校验一个信息认证代码(Message Authentication Code),从而达到信息认证的目的。TAK需要经常性地更换,通常每天更换一次,TAK在本地存储在加密机中通过索引的方式调用。
3.举例
例如:PIN密钥-对PIN密钥密文用密钥(交易主密钥明文)做解密,得到明文D3F4HG56T79K8D0VHU890K8J7H4F8J6G,再对明文用8字节0x00做3des加密,得到DE3F5GJ707FN83J。与checkvalue相等,则验证通过,可正常加载到pos机上,如果不等,则验证不通过,报错。
工作密钥的加载逻辑:对工作密钥密文使用主密钥进行解密,得到其明文,再对其做3des加密得到密文,然后对比checkvalue,若相等,则验证通过,不一致,则报错,验证失败。
二.主密钥
1.概念
主秘钥,即(Terminal Master Key) TMK,主要作用是用来验证工作秘钥是否合法,以及加密TAK和TPK保证TAK和TPK在传输线路上的安全性。一般情况下是人工在POS设置或者通过IC卡导入,也有可能通过母POS下发!TMK被写入密钥保护芯片,此芯片具有开机程序自毁功能,能很好的保护TMK的安全性,主秘钥是和每一台POS相关联的,即主秘钥和Pos设备是一一对应的,生产中应保持POS的TMK与POS中心的主密钥的一致性。TMK,分为明文和密文。主秘钥是由服务提供商提供。如果主秘钥是密文,则需要先解密,然后校验,校验通过后,保存!
2.举例
例如:如果是密文,服务商会额外提供一个24字节的解密密钥对交易主密钥进行解密:
DE4FGY6G8J79KM9HU7B99OLMH7G48H30ABCD20L9KM87T43M(密文),如果将交易主密钥密文解密,需要服务商提供的解密密钥,“313131313131313131313131”,对交易主密钥的前32位进行解密,得到16字节32位的明文,XS4F5G67HJ9K0GB64F7J8K7B4V35VGF5。对明文再用8个字节的0x00做3des加密,得到的是ABCD20L9KM87T43M。若是主密钥的的后16位,则验证成功,否则失败。
三.传输密钥
1.概念
服务器通过传输密钥加密得到得到主密钥密文,下发给app,app将主密钥密文发送给机器,机器通过它解密成主密钥明文,通过主密钥明文去解密工作密钥密文。当服务器下发到app的是主密钥密文的时候,才需要传输密钥。(所以传输密钥用于解密主密钥的)(约定的)。
四.会话密钥
1.概念
会话密钥也成为数据加密密钥,或者工作密钥,是保证用于跟设备或两台设备之间的安全通信会话而随机产生的加密和解密密钥,它可有通信用户之间协商进行得到。一般是动态的、仅在需要会话数据加密时产生。会话密钥一般也是对称密钥,因为加密和解密使用同一密钥。