交行工资卡快速DDA认证(fDDA)
fDDA是快速DDA认证,fDDA用于qPBOC,DDA用于PBOC,fDDA与DDA认证只有部分不同(关于区别本文有讲)
本文就使用公司交行工资卡跑一遍fDDA流程,
DDA(fDDA)的步骤可以这样理解:先执行 SDA大部分,再执行DDA(fDDA)特有的步骤
步骤1. 恢复IC卡公钥
在SDA 阶段取得的发卡行公钥,在DDA时还有一个用途,就是恢复IC卡公钥. 可以用下面的公式表示:
发卡行公钥+IC 卡公钥证书+RSA 算法=IC卡公钥
参考静态数据验证,通过RSA算法,使用发卡行公钥解析IC卡公钥证书得出的IC卡公钥:
|
恢复数据头 |
6A |
|
证书格式 |
04 |
|
应用主账号 |
62226206200171XXXXXF(为了隐私最后几位用XX代替) |
|
证书失效日期 |
1224 |
|
证书序列号 |
100001 |
|
哈希算法标识 |
01 |
|
IC卡公钥算法标识 |
01 |
|
IC卡公钥长度 |
80 |
|
IC卡公钥指数长度 |
01 |
|
IC卡公钥或IC卡公钥的最左边字节 |
F10B7CD3B0AA7002E70B1959E33210487A5251C39C8D3A88DD77FAAC129171E6DF61DD76809AA0F7459434D8771CA23217BCC5CDBF194E2995FAE5C031827FBDFEEC25E0BCA3AF04B9296A37820604B9A82F3AEB03BDE46F06FFED992FE35A615A2AFFF3C584696F45D3B231C34337532D9F956B528E2EBF2523E27838E9B67BBBBBBBBBBBBB |
|
哈希结果 |
350F02EC13781B64B6D7DFC4ED85CD00D09E515B |
|
恢复数据结尾 |
BC |
HASH校验的方法:
将上表中第2个到第10个数据元(即从证书格式直到IC卡公钥或IC卡公钥的最左边字节)从左到右连接,再把IC卡公钥的余项(如果有)+IC卡公钥指数+需认证的静态数据(请参考SDA)+静态数据认证标签列表(如果存在),然后计算HASH结果与IC卡公钥中的HASH结果比对,由此可见动态数据验证同样使用静态数据部分做HASH校验,所以说DDA是包含了SDA
步骤2. 恢复动态应用数据和动态应用数据HASH校验
读记录读出签名的动态应用数据:
|
签名的动态应用数据9F4B |
6C145931F36CA978A6AA1A9D60E41C3DF9299F21BDBBA666F680DFA90F825C5B6F544C0089026294B38486D246AB7F9E4E5E965C507FA0B819E893F470EB1A4BDF9D9DBC8AAD6ADE38C8AA1ECB077B1724EF980864B56C2C567503936241D28C4A2DFCC8398481FEC1961C3704286731343C6885D0A44D8B0DC8F723F1A702F99F6C0200009F5D06000000001579 |
使用RSA工具恢复出动态应用数据
IC卡公钥+动态签名的应用数据+RSA=动态应用数据
|
恢复数据头 |
6A |
|
证书格式 |
05 |
|
哈希算法标识 |
01 |
|
IC卡动态数据长度 |
03 |
|
IC卡动态数据 |
020E19 |
|
填充字节 |
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB |
|
哈希结果 |
37D0C6EA6109B1CEB237AFAD7847A128F711C50D |
|
数据结尾 |
BC |
动态应用数据HASH校验,
关于DDA的校验是:将上表第2个到第6个数据元(即从签名数据格式直到填充字节)从左到右连接,再把DDOL中指定的数据元加在后面。fDDA认证与DDA认证的区别就在于HASH校验的部分,终端动态数据元素不在DDOL中指定(因为qPBOC中并不存在DDOL数据元),终端动态数据应由表C.1指定的数据元素按顺序连接构成
所以最终的动态应用数据HASH校验输入值,
|
05 |
|
|
哈希算法标识 |
01 |
|
IC卡动态数据长度 |
03 |
|
IC卡动态数据 |
020E19 |
|
填充字节 |
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB |
|
9F02 授权金额 |
000000000001 (GPO发给卡片的值) |
|
5F2A 交易货币代码 |
0156 (GPO发给卡片的值) |
|
9F69 卡片认证相关数据 |
013539FC85000002(读记录卡片返回的) |
得出的HASH结果与动态应用数据解析出的完全一致,至此fDDA成功


浙公网安备 33010602011771号