
我们可以把支付流程分成两三个部分,如下图,POS设备进行刷卡,将刷卡信息上送给支付系统,支付平台再将交易信息上留给银行。
两个信息上送阶段均涵盖至信息的加密存储,加密的原理是一致的,加密中所使用的密钥结构必须依照银联的安全规范规定。本文以刷卡信息上送到支付系统为例,介绍多层秘钥体系的应用。 先知道几个名词词组:
1、加密机
加密机是一个硬件设备,具备加密、加密、秘钥管理等功能,它将加解密的操作全部封装在硬件里,具备很强的抗攻击能力。

2、PIN信息
持卡人的个人标识码,即银行卡密码。PIN信息在整个支付链路中都是以密文的方式存在,在POS设备中,PIN信息手动输入后直接到硬件层进行加密,黑客无法劫持。
3、LMK/ZMK/TMK
LMK是加密机最顶层秘钥,保密级别最高,称之为本地主密钥。LMK一般是由不同的人保管着不同的秘钥分量,然后不同的保管员在加密机分别输入自己保管的那一部分并合成一个LMK,没有人能够知道LMK的全部信息。ZMK(Zone Master Key)可以理解为区域主密钥,TMK(Terminal Master Key)可以理解为终端收单主密钥。LMK/ZMK/TMK均属于保护秘钥,保护秘钥是用来加密保护工作秘钥的,分层管理,不涉及到加密报文。
4、收单主密钥

收单主密钥在本例中称之为TMK,用来加密保护工作秘钥,签到时由服务器端ZMK加密产生。
5、工作密钥(workKey)
工作秘密是真正用来加密敏感信息的秘钥,包含pin秘钥、mac秘钥以及data秘钥。比如pin秘钥用来加密银行卡密码信息,mac秘钥用来保障报文的完整性,data秘钥用来加密银行卡里的磁道信息。
6、设备主秘钥(devKey)
设备主秘钥是集成在POS硬件设备里的,作用和加密机的LMK类似。POS设备在出厂之前,需要从支付机构获取到设备主秘钥明文灌装到设备里。如果受到暴力攻击,设备主秘钥可以自动销毁。

之所以称之为多层秘钥体系,是因为在这些方式下,可以按照安全复杂度要求,设置单层嵌套,层层保护,可以是三层,也可以是四层。下图体现的是一套四层的密钥模式,加密机可以使用LMK加密产生ZMK,使用ZMK加密产生TMK,使用TMK可以加密产生pinKey、dataKey、macKey 。
由此可以看出,LMK需要绝对安全,否则所有的秘钥将会泄密。可否简化成三层?我们尝试把ZMK这一层删除:
由LMK直接加密产生收单主密码TMK,只要LMK绝对安全,这样分层也是可以的。但是这些状况下,收单秘钥过于依赖LMK,不便于的秘钥管理。如果加入了ZMK这一层,我们可以在逻辑层面上pos终端密钥管理体系,将每个POS厂商分配一个ZMK,即使某个厂商的ZMK被泄露了,其他厂商也不会受到妨碍。如下图:

从上文得知pos终端密钥管理体系,TMK作为收单主密码是用来加密保护工作秘钥的。那我们怎么将TMK安全的送超过POS终端?这里必然涉及到网路存储,而网络传输必然会遭受着报文被劫持的风险,所以TMK一定是密文的方式返回给POS终端。由此得知,我们必须一个新的秘钥用来加密TMK且这个新的秘钥也存在于POS终端,这个新的秘钥我们称之为设备秘钥。在POS设备出厂前,POS厂商使用API接口的方法从支付系统得到仪器秘钥,然后灌装到设施硬件里。有了设施秘钥,后面的签到流程就可以解读相关秘钥了。如下图:
在POS设备中,维护这如下的秘钥关系:
何为签到?签到是银联的POS交易规范流程中的用语,在本例中,我们使用签到流程从支付系统获得收单主密码和工作秘钥。支付系统控制这两个秘钥的生命周期,如果过期,则会造成新的收单主密码和工作秘钥返回给POS终端。原则上工作秘钥的过期时间为每天,即使有黑客花费昂贵代价解密了工作秘钥,第二天秘钥就会作废。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-140277-1.html
泄坐湿叫兽
美国从来就不想帮谁
让美猪死他个上千