商业银行PBOC2.0规范IC卡发卡与收单的密钥管理安全体系 芯片卡在生产制作及交易使用过程中较传统的磁条卡具有更高的安全性,其安全性的实现依赖于发卡银行建立起的完善的密钥管理系统及PBOC 2.0规范本身的安全机制。对称密钥系统保障了制卡数据的安全传输及联机交易过程中发卡行与卡片之间的安全认证,非对称密钥体系引入了一种全新的卡片脱机数据认证机制。PBOC 2.0规范IC卡结合对称及非对称密钥体系,能很好地防范伪卡和银行卡交易欺诈行为,有效地保护银行和持卡人的利益。
PBOC 2.0规范金融IC卡不论在发卡、制卡及脱机、联机交易过程的安全保障,还是各种安全机制的组合方面,都具有磁条卡无可比拟的优势,使银行的发卡及收单系统的安全级别得到极大的提高,银行卡持卡人的利益也得到了全方位的保护。
银行利用硬件安全模块(HSM)提供的安全算法实现机制,采用具有智能计算能力及较大存储空间的CPU卡,建立起完善的密钥管理系统,在发卡及制卡过程中可以实现密钥及保密数据安全地传输及存放。同时,金融IC卡中的标准应用程序(Applet)集成了对称及非对称两种密钥体系算法于一体,卡片本身在制作过程中配合发卡设备实现密钥的安全传输及存放,在收单过程中配合银行的无人值守终端及商户终端进行静态及动态数据认证,识别可能出现的伪卡及任何对卡片关键参数的非法修改操作,在交易过程中动态生成交易认证数据及报文认证码(MAC),最大限度地在技术上杜绝日益猖獗的交易欺诈行为。PBOC 2.0规范的密钥安全体系也为发卡行提供了一条安全通道,在卡片发出以后,可通过联机交易安全加密报文及发卡行脚本修改卡片风险管理、脱机PIN等其它重要参数。
可以说,PBOC 2.0规范金融IC卡是对称及非对称密钥体系完美结合的一个典范。本文通过讲解PBOC 2.0规范金融IC卡从发卡、个人化到收单的一个完整过程,剖析IC卡的对称与非对称密钥安全体系及其具体的工作过程。
一、PBOC2.0规范IC卡的对称密钥体系密钥安全体系中的对称密钥主要用来实现发卡、制卡过程中安全密钥及保密数据的传输,同时也用于收单交易过程中联机认证MAC的生成、校验和保密数据的加密传输。
1.发卡系统通过对称密钥体系实现的安全机制图1为一个完整的发卡及制卡系统实现示例。实线连接部分表示整个系统真实的通信连接结构,虚线部分表示制卡数据及安全密钥的逻辑流向,图中所有虚线部分传输的保密数据(包括脱机PIN等持卡人私密数据)及安全密钥(发卡行主密钥、发卡行公私钥对等发卡用密钥)均通过全程密文的方式在主机、个人化数据准备、密钥管理系统(KMS)、HSM、发卡设备及IC卡卡片本身等系统或对象之间流动。
作为图1的补充,图2通过抽象IC卡发卡及制卡系统密钥安全体系的逻辑结构,详细说明了发卡行怎样通过对称密钥安全体系实现IC卡制卡过程中的安全性。图2中发卡及制卡密钥管理系统逻辑结构实现总结如下。
(1)发卡行主机系统先与个人化密钥管理系统之间通过安全途径交换密钥交换密钥A(KeyExchange Key A,KEKA),这个密钥用于在主机系统及个人化数据准备系统之间安全传输持卡人的保密数据(两系统之间传输的保密数据均通过KEKA加密)。
(2)个人化数据准备系统及个人化系统可以共享同一个个人化密钥管理系统(KMS),密钥交换密钥B(Key Exchange Key B,KEKB)可以由密钥管理系统随机生成,KEKB保障了个人化数据准备系统与个人化系统之间密钥及安全数据的加密传输。
(3)通过KMS与卡片供应商之间制定严密的个人化过程DES主密钥(KMC)密钥交换流程,卡片供应商将KMC 预先写入IC卡,制卡时,制卡设备发送给卡片的密钥和安全数据可以全部以密文的方式写入卡片并保存。
(4)整个系统密钥传输均采用对称密钥体制,为确保整个系统的安全,必须充分利用HSM 提供的安全特性,制定科学严密的密钥交换流程,统筹管理,确保所有密钥交换环节的安全性。KEKA、KEKB、KMC在KMS中保存时应使用加密机本地主密钥(LocalMaster Key,LMK)进行加密保护, 即以KEKA[LMK]、KEKB[LMK]、KMC[LMK] 的形式保存。
2.收单系统通过对称密钥体系实现的安全机制(1)发卡行联机认证与授权的交易流程
图3展示了IC卡联机交易的一种典型流程,箭头上的数字表示交易步骤的先后顺序,IC卡联机交易过程的主要安全机制有以下几种:应用密文(ARQC&ARPC)、MAC、安全数据加密(加密脱机PIN)、卡片验证码(CVN) 等,主要交易流程均可以套用图3的实现过程。收单交易中各种安全机制实现过程的运算均通过交易过程中生成的会话密钥实现。
(2)发卡行联机认证与授权过程的密钥分散过程
IC卡联机授权与认证的密钥通常采用两级分散的方式,以保障每一张卡的每一笔交易使用的密钥均不同,交易过程中主机受理系统和卡片之间建立起一条安全的通道。图4为IC卡子密钥及会话密钥的分散过程。
其中联机认证密钥(MDKac)、报文验证密钥(MDKmac)及数据加密密钥(MDKenc)等是发卡行生成的原始的交易主密钥,联机认证密钥卡片子密钥(MKac)、报文验证密钥卡片子密钥(MKmac)及数据加密密钥卡片子密钥(MKenc)等密钥是IC卡一级的密钥(个人化时需预先写入卡片,而收单系统主机使用时则需动态计算),联机认证密钥会话密钥(SKac)、报文验证密钥会话密钥(SKmac)及数据加密密钥会话密钥(SKenc)均为交易会话密钥,卡片和主机收单系统均在交易时动态生成交易会话密钥(主机收单系统需要在交易时生成IC卡一级的子密钥),分散过程中使用的算法依据具体的规范而各不相同,但基本采用3DES及异或运算,或者两种算法的结合使用。
二、PBOC 2.0规范IC卡的非对称密钥体系认证的实现需要证书的授权机构(CA)、发卡行及受理行的共同协作,CA作为第三方可信任机构为发卡行签发证书,且将CA公钥提供给受理行,发卡行在发卡时将相关密钥及证书写入卡片记录文件中。交易过程中,终端通过和卡片之间的多次交互,实现终端对卡片的一个脱机数据认证,即受理行对卡片所属发卡行的一个真实性的认可过程。
1. 发卡过程中非对称密钥体系的使用
图5简单描述了CA、发卡行公私钥对、证书及签名静态应用数据的生成和CA公钥的分发过程。
非对称密钥体系发卡,可总结为以下主要过程。
(1)CA生成一组不同长度的CA 公私钥对,并进行安全保存。
(2)发卡行为每一个BIN生成合适长度的发卡行公私钥对并安全保存。
(3)CA制定了一套与发卡行交换证书的完整流程,发卡行通过提交一个包括发卡行公钥自签名后的证书请求文件给CA,等待CA返回结果。
(4)CA通过其保存的私钥签名发卡行公钥,生成发卡行公钥证书,返回给发卡行进行保
存。
(5)发卡行为每一张卡动态随机生成一对IC卡公私钥对,并使用发卡行私钥对IC卡公钥及部分静态数据进行签名,生成IC卡公钥证书及签名静态应用数据。
(6)发卡行将发卡行公钥证书、IC卡公钥证书、签名静态应用数据及IC卡私钥写入IC卡芯片中。
(7)CA将其公钥通过合适的途径分发给各收单机构,收单机构将CA公钥下载到其终端中,用于收单时对IC卡进行脱机数据认证。