目前在做一个自助终端设备的金融项目,涉及到全报文加密,现将Pos终端中的主密钥、工作密钥、pin密钥、mac密钥等几种密钥的概念整理如下:
下面介绍一下加密机中最主要的几种密钥:
1、加密机主密钥(MK)
加密机主密钥(Master Key - MK)是存入在HSM机内的由三个成分合成的一对最上层密钥。在HSM机器以外的地方不会以明文形式存放,它采用双倍标准DES密钥(长达112位)实现三重数据加密。
HSM投入运行时,必须先产生和装载MK。由于DES算法依靠某一个密钥进行加密,同时所有密钥和数据都经由MK进行加密,所以MK必须通过一种安全的方法生成和维护。
MK的产生需要银行三位主要的管理人员参与产生,在SJL06主机加密模块中采用MK(加密机主密钥)对BMK进行加密保护;
MK由三个成分(32位十六进制数)组成,由加密机使用单位通过行政手段分派专人管理和维护,一般由2~3人采用"背对背"形式进行输入;
MK以密文形式存储在加密机黑匣子中,且永远不以明文形式出现。
2、银行主密钥(BMK)
银行主密钥(BMK),是加密密钥用的密钥,适用于共享网络中,它可以在共享网络中两个(或多个)通讯网点之间以部分形式进行人工分配且保持双方的对称性,共享网络中任何两个通讯网点之间均共用不同的BMK。BMK用于加密底层需要传送的数据密钥,这样远地密钥就能自动进行交换(无须人工干预)。该密钥可以长期不更改,通常二年更新一次。本地存储时,BMK是通过MK进行加密的或以索引方式存储在加密机中。
3、区域PIN密钥(PIK)
区域PIN密钥PIK是一个数据加密密钥,适用于共享网络,它通过BMK加密在两个(或多个)通讯网点之间进行自动分配,PIK用于加密两个通讯网点之间需传输的PIN,这样就实现了PIN的保密。PIK需要经常性地定期更改,在本地存储时,它是通过BMK进行加密的。PIK需要经常性地定期更改,通常每天更换一次。
4、区域MAC密钥(MAK)
区域MAC密钥MAK是一个数据加密密钥,适用于共享网络,它通过BMK加密在两个(或多个)通讯网点之间进行自动分配。用于两个通讯网点之间传送信息时,生成和校验一个信息认证代码(Message Authentication Code),从而达到信息认证的目的。MAK需要经常性地定期更改,通常每天更换一次。
5、终端PIN密钥(TPK)
终端PIN密钥是一个数据加密用的密钥,适用于局域网络中,它是在局域网内通过TMK加密,由终端数据受理者自动分配到终端且保持通讯双方之间的对称性。TPK用于加密在局域网内终端和终端数据受理者之间传送的PIN。TPK在本地存储在加密机中通过索引的方式调用。TPK需要经常性地定期更换,通常每天更换一次。
6、终端认证密钥(TAK)
终端认证密钥是一个数据加密用的密钥,适用于局域网内。它在局域网内通过TMK加密由终端数据受理者自动分配到终端或通过BMK加密由终端数据受理者自动分配到交换中心。TAK用于局域网内终端与终端数据受理者之间传送信息时,生成和校验一个信息认证代码(Message Authentication Code),从而达到信息认证的目的。TAK需要经常性地更换,通常每天更换一次,TAK在本地存储在加密机中通过索引的方式调用。
7、PIN 校验密钥(PVK)
PIN 校验密钥是一个数据加密密钥,用于生成和校验PIN校验数据,同时校验一个PIN的可靠性。传送时PVK通过TMK或ZMK加密;存放本地时,它通过MK加密。
8、卡校验密钥(CVK)
卡校验密钥(CVK)类似于PIN校验密钥,仅仅是用卡的信息取代了PIN。
另外,Pos终端签到成功,会得到以下结果:
Pin密钥:加密密码
Mac密钥:加密报文
批次号:每次执行批结算-签退流程,批次号会更新,一般交易号 = 批次号 + 流水号递增