什么是主密钥?
主秘钥,即(Terminal Master Key) TMK,主要作用是用来验证工作秘钥是否合法,以及加密TPK(终端PIN密钥),保证TPK在传输线路上的安全性。一般情况下是人工在POS设置或者通过IC卡导入,TMK被写入密钥保护芯片,也就是我们说的SE,其具有开机程序自毁功能,能很好的保护TMK的安全性,主秘钥是和每一台POS相关联的,即主秘钥和Pos设备是一一对应的,如我们现在使用的主密钥为一个32位的字符串:086a2338252c4e6935b3702327407380,生产中应保持POS的TMK与POS中心的主密钥的一致性。另外,主密钥分为明文和密文,由服务提供商提供。若提供的是密文,则需要先解密后校验,校验通过后,才能保存。
例如:如果是密文,服务商会额外提供一个解密用24个字节48位的交易主密钥:E51D9047310F731798CF74AF483931B3712C8C734B2E669E(密文),如果将交易主密钥密文解密,需用服务商提供的解密密钥“31313131313131313131313131313131”对交易主密钥的前32位进行解密,得到16个字节32位的明文1CF88AB5D64F314F9EF237FBD99E29CD。对明文再用8个字节的0x00做3DES加密,得到的是712C8C734B2E669E。若是交易主密钥的后16位,则验证成功,反之,验证失败。
密文验证逻辑:若是密文,则需要先使用已经提供的解密密钥对主密钥的前32位进行解密,得到其明文,再对明文前8个字节16位字符串,做3DES加密,得到一个16位的字符串,若与主密钥的后16位一致,则验证成功,反之失败。
什么是工作秘钥?
工作秘钥也称为数据密钥,包含PIN秘钥,MAC秘钥以及磁道秘钥。在POS每次做签到交易时,由POS中心下发给POS。需要经常性地定期更换,通常每天更换一次。在联机更新的报文中对工作密钥必须用主密钥加密,形成密文后进行传输。
例如:PIN密钥——对PIN密钥密文用密钥(交易主密钥明文)做解密,得到明文C7D50808A7DFFE62B9943B45A4C77FC7。再对明文用8字节0x00做3DES加密,得到AE103AE98D332DCB。与checkvalue相等。与checkvalue相等,则验证通过,可正常加载到POS机上,如果不等,则验证不通过,报错。
工作密钥的加载逻辑:对工作密钥密文使用主密钥进行解密,得到其明文,再对其做3DES加密得到密文,然后对比checvalue,若一致,则验证通过,不一致,则报错,验证失败。
什么是会话密钥?
会话密钥(session key)也称为数据加密密钥,或者工作密钥,是保证用户跟设备或者两台设备之间安全通信会话而随机产生的加密和解密密钥,它可由通信用户之间进行协商得到。一般是动态地、仅在需要进行会话数据加密时产生。会话密钥一般也是对称密钥,因为加密和解密使用同一密钥。
什么是PIN密钥?
PIN秘钥,即(Terminal PIN encryption Key)TPK,用于计算加密PIN(个人银行卡的6位数密码)。在签到时,以密文的形式下发到POS终端,POS接收到密文后,需要使用主秘钥去解密,然后校验,通过后将TPK存储在专用的密钥保护芯片里,也就是SE中。TPK需要经常性地定期更换,通常每天更换一次,并且,TPK具有开机自毁功能。
安全性体现:当用户在密码键盘上输入银行卡密码时,输出的是加密后的密文(通过TPK加密PIN后的密文),所以在网络传输中,即使被截获也是密文,能够最大限度的保护用户密码的安全。