交行工资卡快速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指定的数据元素按顺序连接构成

交行工资卡快速DDA认证(fDDA)_第1张图片

所以最终的动态应用数据HASH校验输入值,

证书格式

05

哈希算法标识

01

IC卡动态数据长度

03

IC卡动态数据

020E19

填充字节

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

9F37不可预知数

5520BDA1 (GPO发给卡片的值)

9F02 授权金额

000000000001 (GPO发给卡片的值)

5F2A 交易货币代码

0156 (GPO发给卡片的值)

9F69 卡片认证相关数据

013539FC85000002(读记录卡片返回的)

交行工资卡快速DDA认证(fDDA)_第2张图片

得出的HASH结果与动态应用数据解析出的完全一致,至此fDDA成功

你可能感兴趣的:(交行工资卡快速DDA认证(fDDA))