本文主要是介绍DUKPT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、什么是 DUKPT
- 二、DUKPT 组成
- 三、DUKPT应用场景举例
一、什么是 DUKPT
DUKPT(derived unique key per Transaction) 是被ANSI定义的一套密钥管理体系和算法,用于解决金融支付领域的信息安全传输中的密钥管理问题,应用于对称密钥加密MAC,PIN等数据安全方面。保证每一次交易流程使用唯一的密钥,采用一种不可逆的密钥转换算法,使得无法从当前交易数据信息破解上一次交易密钥。要求收单行与终端必须同步支持该项密钥管理技术。由交易发起端点(S-TRSM,如pos,ATM)与交易接收端点(R-TRSM,如收单行)两部分组成。注:TRSM(Tamper-Resistant Security Module)是一个具备阻止攻击能力的安全模块。TRSM具有抵御攻击能力
二、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应运而生。
秘钥名称缩写、全称和中文名
这篇关于DUKPT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!