静态数据认证流程(SDA)
使用的IC卡为交通银行工资卡,工具是 PBOC辅助开发小工具中的RsaTool.exe和智能卡算法工具集v1.0.exe中的校验算法
本文主要是根据PBOC安全规范和一张IC卡跑一遍静态数据认证的过程
根据规范,终端需要从收单机构获取认证中心公钥,本次使用的公钥索引为3
|
公钥模长 |
B0 |
|
公钥指数 |
3 |
|
模数 |
B0627DEE87864F9C18C13B9A1F025448BF13C58380C91F4CEBA9F9BCB214FF8414E9B59D6ABA10F941C7331768F47B2127907D857FA39AAF8CE02045DD01619D689EE731C551159BE7EB2D51A372FF56B556E5CB2FDE36E23073A44CA215D6C26CA68847B388E39520E0026E62294B557D6470440CA0AEFC9438C923AEC9B2098D6D3A1AF5E8B1DE36F4B53040109D89B77CAFAF70C26C601ABDF59EEC0FDC8A99089140CD2E817E335175B03B7AA33D |
通过读卡记录获取发卡行公钥相关数据
利用RSA算法工具恢复出发卡行公钥:
得出的发卡行公钥:
|
恢复数据头 |
6A |
|
证书格式 |
02 |
|
发卡行标识 |
622262FF (交通银行的卡标识) |
|
证书失效日期 |
1224(卡有效期) |
|
证书序列号 |
001675 |
|
哈希算法标识 |
01 |
|
发卡行公钥算法标识 |
01 |
|
发卡行公钥长度 |
B0 |
|
发卡行公钥指数长度 |
01 |
|
发卡行公钥或发卡行公钥的最左边字节 |
B39B723BAD20B99F2FA0B87B85E452D65BEC0E0F11C303AD775EA22ECCF6FFF4201F77DDE42CC9F9937A02BBB0F7ED973F9BC03371485B47F7B8E4B70C49098C69D3AC682EBFF6971411C73E3DFBA56D8CD4B7515821BFB28B6201828A4E641E187EB02B9EAB2C82926C35B974467584EBACEEAEED58BBB23E6A8E744CDBC331AFAB1F10073B76D01A9C3070 |
|
哈希结果 |
F21F96B5FD66B5ED757A2A363BFFC3879A5913D5 |
|
恢复数据结尾 |
BC |
根据PBOC规范HASH校验输入下述的数据:
将上面表第2个到第10个数据元(即从证书格式直到发卡行公钥或发卡行公钥的最左边字节)
从左到右连接,再把发卡行公钥的余项加在后面(如果有),最后是发卡行公钥指数
上述数据连接之后输入工具验证,得出的HASH结果与发卡行公钥解出的值完全一致,说明发卡行公钥解析正确
步骤3.对静态签名数据进行解密与验证
通过读卡记录获取静态应用数据
利用RSA算法工具恢复静态应用数据
恢复出的静态应用数据:
|
6A |
|
|
证书格式 |
03 |
|
哈希算法标识 |
01 |
|
数据验证代码 |
DAC5 |
|
填充字节 |
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB |
|
哈希结果 |
B6A7EDD7236050E3E75B1A4C3C95B6A036830BFC |
|
数据结尾 |
BC |
静态应用数据HASH校验输入值,
根据规范:将上表的第2个到第5个数据元(即从签名数据格式直到填充字节)从左到右连接+数据阶段读到的需要参与认证的静态数据+静态数据认证标签列表(如果存在)
得出的HASH结果与静态应用数据解析出的完全一致,至此静态验证数据成功




浙公网安备 33010602011771号