1.DDA的计算
1.1.DDA的GPO部分处理
与SDA的部分一致
可以参考 EMV交易中的SDA/DDA/CDA——SDA部分
1.2.DDA 的读应用记录的处理
与SDA的部分大体一致(EMV交易中的SDA/DDA/CDA——SDA部分)
但是在文件记录的处理上增加了部分tag的处理:
tag90——ISSUER_PUBLIC_KEY_CERT
tag92——ISSUER_PUBLIC_KEY_REMAINDER
tag9f32—ISSUER_PUBLIC_KEY_EXP
以上三个tag都将用于Issuer公钥的还原
------------------------------------------------------------------------
tag9f46——ICC_PUBLIC_KEY_CERT
tag9f48——ICC_PUBLIC_KEY_REMAINDER
tag9f47—ICC_PUBLIC_KEY_EXP
以上三个tag都将用于ICC公钥的还原
------------------------------------------------------------------------
tag9f49——DDOL
生成 INTERNAL_AUTHENTICATE(00 88)数据的tag列表
------------------------------------------------------------------------
tag9F4A——SDA_TAG_LIST
将用于ICC公钥的校验
------------------------------------------------------------------------
1.3.DDA校验流程
a.根据DDOL来拼组内部认证数据
b.从内部认证数据中获取 9F4B--SIGNED_DYNAMIC_APPLICATION_DATA
c.还原ISSUR公钥(EMV交易中的SDA/DDA/CDA——SDA部分)
d.还原ICC公钥
(参看 EMV book 2-- 6.4 Retrieval of ICC Public Key)
使用Issuer公钥还原得到ICC卡公钥的数据
e.校验ICC公钥有效性
note:此处着重说明一下,在计算hash的时候
需要用到
cert.certificateFormat cert.applicationPan cert.certExpirationDate cert.certSerialNumber cert.hashAlgoIndicator cert.iccPubKeyAlgoIndicator cert.iccPublicKeyLength cert.iccPublicKeyExponentLength cert.leftMostPubKeyDigits cert.optionalPadding iccRemainingBytes iccPublicKeyExponent sdaAuthenticationData(这个就是SDA里面的校验数据,根据9F4A是否存在来加上AIP的值)
f.校验内部数据验证的9F4B
先通过ICC公钥解密9F4B数据
然后按照
元素2到6 接上 DDOL请求数据,然后算hash,然后对比hash值,done!
Note1:原来ICC证书的值会跟 SDA的验证数据有关
Note2:CDA接的验证数据就是DDOL的数据,比SDA要简单