静态数据认证流程(SDA)

使用的IC卡为交通银行工资卡,工具是 PBOC辅助开发小工具中的RsaTool.exe和智能卡算法工具集v1.0.exe中的校验算法

本文主要是根据PBOC安全规范和一张IC卡跑一遍静态数据认证的过程

步骤1. CA公钥下载

根据规范,终端需要从收单机构获取认证中心公钥,本次使用的公钥索引为3

公钥模长

B0

公钥指数

3

模数

B0627DEE87864F9C18C13B9A1F025448BF13C58380C91F4CEBA9F9BCB214FF8414E9B59D6ABA10F941C7331768F47B2127907D857FA39AAF8CE02045DD01619D689EE731C551159BE7EB2D51A372FF56B556E5CB2FDE36E23073A44CA215D6C26CA68847B388E39520E0026E62294B557D6470440CA0AEFC9438C923AEC9B2098D6D3A1AF5E8B1DE36F4B53040109D89B77CAFAF70C26C601ABDF59EEC0FDC8A99089140CD2E817E335175B03B7AA33D

步骤2.获取发卡行公钥以及对公钥进行HASH校验

通过读卡记录获取发卡行公钥相关数据

发卡行公钥证书tag90

5B36C2C017CD12CF0B2757327D1B76962CA318D6770B19125F285A1D791FC60B97A933259D2214EA952BA5EC1AF369BD567399CF8E07A44068162388FCE8A406C04310842028660626ABD6C36A34EE7A47AC15951E25981D2B3D568B9CB65F6EF84540E2ED0886209A0A9BE8C2092F20F3DA742B76028299FBB8F8971F00C99B555EE2AD23EC45D285A612E43FB051FFD734FBB1DDB6CB609228FA0A44D7E58DB3998AE19B8B94AF2C5D42A51DC6E82A

公钥指数9F32

3

发卡行公钥余数: tag92

19717261F88B1075F348BC852CBE09E0F7739B60F66F8D2661CBD8980640CAC2EFA003C3

利用RSA算法工具恢复出发卡行公钥:

静态数据认证流程(SDA)_第1张图片

得出的发卡行公钥:

恢复数据头

6A

证书格式

02

发卡行标识

622262FF (交通银行的卡标识)

证书失效日期

1224(卡有效期)

证书序列号

001675

哈希算法标识

01

发卡行公钥算法标识

01

发卡行公钥长度

B0

发卡行公钥指数长度

01

发卡行公钥或发卡行公钥的最左边字节

B39B723BAD20B99F2FA0B87B85E452D65BEC0E0F11C303AD775EA22ECCF6FFF4201F77DDE42CC9F9937A02BBB0F7ED973F9BC03371485B47F7B8E4B70C49098C69D3AC682EBFF6971411C73E3DFBA56D8CD4B7515821BFB28B6201828A4E641E187EB02B9EAB2C82926C35B974467584EBACEEAEED58BBB23E6A8E744CDBC331AFAB1F10073B76D01A9C3070

哈希结果

F21F96B5FD66B5ED757A2A363BFFC3879A5913D5

恢复数据结尾

BC

根据PBOC规范HASH校验输入下述的数据:

将上面表第2个到第10个数据元(即从证书格式直到发卡行公钥或发卡行公钥的最左边字节)

从左到右连接,再把发卡行公钥的余项加在后面(如果有),最后是发卡行公钥指数

证书格式

02

发卡行标识

622262FF (交通银行的卡标识)

证书失效日期

1224(卡有效期)

证书序列号

001675

哈希算法标识

01

发卡行公钥算法标识

01

发卡行公钥长度

B0

发卡行公钥指数长度

01

发卡行公钥或发卡行公钥的最左边字节

B39B723BAD20B99F2FA0B87B85E452D65BEC0E0F11C303AD775EA22ECCF6FFF4201F77DDE42CC9F9937A02BBB0F7ED973F9BC03371485B47F7B8E4B70C49098C69D3AC682EBFF6971411C73E3DFBA56D8CD4B7515821BFB28B6201828A4E641E187EB02B9EAB2C82926C35B974467584EBACEEAEED58BBB23E6A8E744CDBC331AFAB1F10073B76D01A9C3070

发卡行公钥余数

19717261F88B1075F348BC852CBE09E0F7739B60F66F8D2661CBD8980640CAC2EFA003C3

发卡行公钥指数1-3字节

03

上述数据连接之后输入工具验证,得出的HASH结果与发卡行公钥解出的值完全一致,说明发卡行公钥解析正确

静态数据认证流程(SDA)_第2张图片

步骤3.对静态签名数据进行解密与验证

通过读卡记录获取静态应用数据

签名的静态应用数据

1CF37AC577296F5CAF28EC320CD1C9024E3D366854E4842F7D1F365DA39335C9428B7FACF176FEBD4851255D1EAFF0945003FF4944BC7F0DE5DD23F15D62080F3B5C8CFB3DC8D04019A75ED3422D7045E957575D0573E61BFF0A98F02BC47C7D82FD5C51340FEFE91427C54635B90157E221B23A72A6DA8F84EB97734A0CA09175D461DBB7DB9289B13BFFCDC103EFE342C769114808EEA62B26E2032217942F9FC6DB2051CFF0728DF613AD6BAE3BAB

静态数据认证标签列表

82 (AIP)=7C00

利用RSA算法工具恢复静态应用数据

静态数据认证流程(SDA)_第3张图片

恢复出的静态应用数据:

恢复数据头

6A

证书格式

03

哈希算法标识

01

数据验证代码

DAC5

填充字节

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

哈希结果

B6A7EDD7236050E3E75B1A4C3C95B6A036830BFC

数据结尾

BC

静态应用数据HASH校验输入值,

根据规范:将上表的第2个到第5个数据元(即从签名数据格式直到填充字节)从左到右连接+数据阶段读到的需要参与认证的静态数据+静态数据认证标签列表(如果存在)

证书格式

03

哈希算法标识

01

数据验证代码

DAC5

填充字节

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

需认证的静态数据

(被AFL标记为静态认证的那条数据的read record结果,去掉70和长度的后所有数据附加到这里)

(结合GPO的返回值+read record的结果)

5F24032412315A0A6222620620017186650F5F3401019F0702FF008E0C000000000000000002031F009F0D05D86004A8009F0E0500109800009F0F05D86804F8005F280201569F08020030

静态数据认证标签列表

7C00(同时注意read record结果必须包含Tag9F4A且9F4A的值必须=82)

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

静态数据认证流程(SDA)_第4张图片

你可能感兴趣的:(静态数据认证流程(SDA))