PBOC2.0规范借贷记应用使用的密钥
文章出处:http://www.nexussmartsolutions.com 作者: 人气: 发表时间:2012年05月06日
1 3DES主密钥
用途:联机交易报文的保护使用双倍密钥长度的3DES分组密码算法和密钥
发卡行主密钥 —— 需要安装在卡片个人化系统、交易及授权系统
卡片主密钥—— 在卡片个人化时由发卡行主密钥分散导出写入卡片,发卡行不需要存储。(发卡行生成和使用若干发卡行3DES主密钥并利用卡片PAN和PAN序列号导出卡片的若干唯一3DES主密钥。)
过程密钥——卡片交易过程中使用的3DES密钥,仅当需要使用时由卡片中的IC卡主密钥分散导出
发卡行主密钥包括:
1) 发卡行应用密报主密钥IMKAC:AC用于在卡片和发卡行交易授权系统间对交易报文进行鉴别。一个应用密报AC,如ARQC、ARPC、AAC或TC,是一个采用过程密钥计算的报文鉴别码MAC。该过程密钥由相应的IC卡主密钥MKAC分散导出,而这个IC卡主密钥MKAC由发卡行IMKAC导出并在个人化时写入卡片。
2) 发卡行安全报文主密钥IMKSMC和IMKSMI:发卡行安全报文SM用于发卡后的特定交易过程中卡片和交易授权系统间的报文传输安全(如卡片锁定、应用锁定或解锁、卡片数据更新、PIN变更或PIN解锁)。在上述过程中应对报文加密和报文完整性保护使用不同的密钥。安全报文的加密使用安全报文加密过程密钥SKSMC,该过程密钥是由卡片安全报文加密主密钥MKSMC导出的。安全报文的MAC计算使用安全报文MAC过程密钥SKSMI,该过程密钥是由卡片安全报文完整性主密钥MKSMI导出的。而发卡行安全报文主密钥IMKSMC和IMKSMI分别用于导出MKSMC和MKSMI。
2 SDA使用的密钥
SDA需要发卡行在卡片个人化时使用发卡行RSA公私钥对的私钥对特定静态数据进行签名并将签名数据写入卡片。
首先,发卡行生成发卡行RSA公私钥对,然后发卡行的公钥由IC卡根CA签发发卡行公钥证书,发卡行的私钥用于签署静态数据。在卡片个人化时,发卡行将发卡行公钥证书及签名的卡片静态数据写入卡片。发卡行证书和签名的静态数据的格式见PBOC2.0安全规范和金融IC卡借记/贷记应用根CA公钥认证规范。
终端在验证卡片SDA过程中执行下列步骤:
1.从卡片读取发卡行公钥证书。
2.使用存储在终端的IC卡根CA公钥验证该发卡行证书。
3.从该发卡行证书解析出发卡行公钥。
4.读取卡片静态签名数据并用发卡行公钥验证该静态数据的签名。
见金融IC卡借记/贷记应用根CA公钥认证规范。
3 卡片动态数据认证(DDA)使用的密钥
DDA需要卡片拥有自己的RSA公私钥对,其公钥由发卡行按照PBOC2.0的安全规范签发卡片公钥证书。
卡片私钥存储在卡片中,并在卡片执行DDA过程中签署一动态签名数据由终端验证。卡片的公钥由终端在验证卡片DDA时使用。IC卡的RSA公私钥对对每张IC卡都是唯一的。该卡片公私钥对由发卡行在卡片个人化过程中生成,然后发卡行将该卡片私钥写入卡片,并对该卡片公钥进行签名生成卡片公钥证书然后将卡片公钥证书写入卡片。
在终端验证卡片DDA过程中,首先利用终端内存储的IC卡根CA公钥验证从卡片读取的发卡行公钥证书,然后从发卡行证书中解析出发卡行公钥并用该发卡行公钥验证从卡片中读取的IC卡公钥证书,然后从IC卡公钥证书中解析出卡片公钥,用该卡片公钥验证卡片发来的DDA签名数据的签名。
复合动态数据认证CDA是DDA的扩展。CDA不仅使用卡片私钥对动态交易数据签名,也对应用密码报文签名。这样可以抵御针对交易数据的攻击。
4 其它密钥
除了上述用于卡片交易过程的密钥外,发卡行还需要拥有在卡片个人化过程中用于个人化数据安全传输的密钥,见本标准第10.9节。对于多应用IC卡,除了上述密钥外可能还需要针对其它应用的密钥。
转载原文链接:http://blog.csdn.net/watertap/article/details/7054199