一、什么是 DUKPT
DUKPT(derived unique key per Transaction) 是被ANSI定义的一套密钥管理体系和算法,用于解决金融支付领域的信息安全传输中的密钥管理问题,应用于对称密钥加密MAC,PIN等数据安全方面。保证每一次交易流程使用唯一的密钥,采用一种不可逆的密钥转换算法,使得无法从当前交易数据信息破解上一次交易密钥。要求收单行与终端必须同步支持该项密钥管理技术。由交易发起端点(S-TRSM,如POS)与交易接收端点(R-TRSM,如收单行)两部分组成。注:TRSM(Tamper-Resistant Security Module)是一个具备阻止攻击能力的安全模块。TRSM具有抵御攻击能力
二、DUKPT的特点
-
唯一性: DUKPT 为每笔交易生成一个唯一的加密密钥,确保即使相同的主密钥在不同交易中使用,也能产生不同的派生密钥。
-
分散: DUKPT 使用一种称为分散的技术,通过将密钥按照一定规则扩展为不同的密钥,以增加密钥的安全性。
-
保密性: DUKPT 通过不存储或传输主密钥的完整值,而是使用一个初始的主密钥派生出每个交易的密钥,从而增加了密钥的保密性。
-
动态变化: DUKPT 可以动态地变化,以适应不同的交易条件。这使得攻击者更难预测下一个派生密钥。
-
逆推困难性: 由于 DUKPT 的分散和动态性,逆推派生密钥以获取原始主密钥是非常困难的。
三、DUKPT 组成
DUKPT是由基础密钥BDK和KSN组成,其中BDK是基础主密钥,它派生出加密安全模块的初始密钥。初始密钥和KSN一起装入加密模块,保证每个终端的主密钥都不重复。
- BDK(Base Derivation Key):DUKPT密钥体系的根密钥,一般是一个双倍长或三倍长的T-DES密钥。
- KSN(Key Serial Number):一串80bit的(20 hexadecimal digits)序号,由59bit的IKSN(Initial Key Serial Number)和21bit的EC(Encryption Counter)组成。
- PIN 卡片密码。
- PEK(PIN Encryption Key): 加密PIN的密钥咯!一般是双倍长的T-DES密钥。
四、DUKPT应用场景举例
小明到商场购买了一双鞋,结帐时使用VISA信用卡刷卡,刷卡后POS需要与后台系统进行数据交互,将此交易的信息告知发卡行,交易信息的传递路径大概描述如下:
从信息传递的安全性上考虑:
上图的交易信息传递过程中,会涉及到一些敏感信息的传输,例如可能有卡片有效期、CVV2、密码等,如何保证这些信息的安全性?
每个结点如何校验接收到的数据是来自可信的相邻结点?即,如何校验数据的完整性,防止被恶意篡改?
于是,聪明的孩子就想到了使用DES/T-DES算法,针对敏感数据进行加密,解决了第一个问题;使用基于DES/T-DES的MAC算法,解决了报文校验问题。
那么问题来了,既然使用了DES/T-DES这类的对称加密算法,就一定会涉及到对称密钥的交互问题。只有保证了密钥的安全性,对称加密才有意义。
于是,DUKPT应运而生。