原创
金融卡应用安全结构设计
2008-10-20 13:49
3426
6
6
分类:
软件与OS
1、密钥管理原则
金融卡应用是所有涉及资金管理的金融应用的基础,应用对安全有很高的要求,作为安全的基础,卡片的密钥管理需要遵循一定的原则。
* 所有涉及到资金转移或者修改IC卡中的敏感信息的交易,必须使用加密密钥来保证交易的安全性。
* 密钥管理采用的是部分集中管理模式,即总行将密钥逐级分散分发到所辖各个发卡机构。
* 密钥通过索引号来进行查找,在包含初始化命令的交易中,密钥索引号包含在初始化命令的数据报文中。
* 为了加强密钥的安全性,在交易过程中,生成临时的过程密钥用于交易的特定阶段,过程密钥的生成遵循一定的算法。
* 密钥在IC卡中存储和运算,必须严格确保密钥的安全性,不允许密钥内容以任何方式泄漏出来。
2、应用涉及的密钥
存储在IC卡内用于电子存折和电子钱包应用的密钥如下所示:
密钥 意义 用途
DPK 消费/取现密钥。发卡方基于ED/EP的 用于产生消费/取现交易中
应用序列号产生的一个3DES密钥 使用的过程密钥SESPK
DLK 圈存密钥。发卡方基于ED/EP的应用 用于产生圈存交易中使用
序列号产生的一个3DES密钥 的过程密钥SESLK
DTK TAC密钥。发卡方基于ED/EP的应用 用于产生消费、取现和圈
序列号产生的一个3DES密钥 存交易中使用的TAC
DPUK PIN解锁密钥。发卡方基于ED/EP的应 用于产生解锁PIN命令的
用序列号产生的一个3DES密钥 MAC
DRPK 重装PIN密钥。发卡方基于ED/EP的应 用于产生重装PIN命令的
用序列号产生的一个3DES密钥 MAC
DAMK 应用维护密钥。发卡方基于ED/EP的 用于产生应用锁定、应用
应用序列号产生的一个3DES密钥 解锁、卡片锁定和更新二
进制命令的MAC
存储在IC卡内用于电子存折应用的密钥如下所示:
密钥 意义 用途
DULK 圈提密钥。发卡方基于ED的应用序 用于产生圈提交易中使用
序列号产生的一个3DES密钥 的过程密钥SESULK
DUK 更新密钥。发卡方基于ED的应用序 用于产生修改透支限额交
号产生的一个3DES密钥 易中使用的过程密钥SESUK
3、子密钥的计算方法
在上面描述的IC卡中的密钥都是应用子密钥,由对应的应用主密钥推导而得。应用主密钥由应用管理机构来维护,主密钥通过某种算法分散等到每一张用户IC卡中的子密钥,在应用建立阶段写入IC卡中。密钥的推导算法类似,下面以消费/取现子密钥DPK的推导算法为例。
DPK对应的消费主密钥为MPK,也是一个3DES密钥,推导过程分为如下两个步骤:
1)DPK左半部分的推导方法
DPK左半部分,也就是左8Byte的计算方法为:
* 将应用序列号的最右16个数字作为输入数据。
* 将MPK作为加密密钥。
* 用MPK对输入数据进行3DES运算。
计算结果为DPK的左半8Byte。
2)DPK右半部分的推导方法
DPK右半部分,也就是右8Byte的计算方法为:
* 将应用序号的最右16个数字的求反作为输入数据。
* 将MPK作为加密密钥。
* 用MPK对输入数据进行3DES运算。
计算结果为DPK的右半8Byte。
将两步的计算结果链接在一起就组成了DPK。
其他子密钥的推导过程类似,这个推导过程通常在卡外完成。
4、过程密钥的计算方法
过程密钥是在交易过程中用可变数据产生的DES密钥。过程密钥产生后只能在某一交易中使用一次。
所有过程密钥的产生机制相同,即用交易子密钥对初始化数据做3DES加密计算,计算结果即为过程密钥。
通常输入数据长度为8Byte,数据的具体内容根据不同命令来进行选择,计算结果也为8Byte。
文章评论(0条评论)
登录后参与讨论