为防止密钥外泄使用PSAM卡内部密钥加密认证读写CPU卡 |
|||
| 发布者:广州荣士电子有限公司 发布时间: 2026-8-21 | |||
| 将CPU用户卡的认证密钥存入PSAM卡内 将已选定的PSAM卡 进行复位 PSAMCard SendData:00 A4 00 00 02 3F 00 //PSAM卡选择MF PSAMCard Receive :6F 15 84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 03 88 01 01 90 00 PSAMCard SendData:00 84 00 00 04 //PSAM卡取4字节随机数 PSAMCard Receive :29 F6 66 4E 90 00 //对4字节随机数 29 F6 66 4E 、FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 进行外部加密,得到:AE 0F 04 2F 54 23 A1 5C PSAMCard SendData:00 82 00 00 08 AE 0F 04 2F 54 23 A1 5C PSAMCard Receive :90 00 //外部认证 成功 PSAMCard SendData:80 E0 16 80 0D 38 05 20 F0 F0 95 FF FF 44 44 46 30 31 //在PSAM卡上新建DF: 16 80 ,DF 可以是任何有效值,不需要与CPU卡的DF 一致。 PSAMCard Receive :90 00 PSAMCard SendData:00 A4 00 00 02 16 80 //选择新建的DF:16 80 PSAMCard Receive :6F 07 84 05 44 44 46 30 31 90 00 PSAMCard SendData:80 E0 00 00 07 3F 00 B0 01 F0 FF FF //创建密钥文件 PSAMCard Receive :90 00 PSAMCard SendData:80 D4 01 00 15 30 F0 F0 F0 55 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF //加入一个内部认证密钥,密钥ID:00,密钥类型:30,测试密钥:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ,按此方法将所有认证密钥存入PSAM卡 PSAMCard Receive :90 00 --------------------------------------------------------------------------------------------------------------------------------------- CPU卡发卡,创建一个可读写的二进制文件,文件ID:04,只读密钥ID:06,读写密钥ID:07 激活发卡器上的CPU卡 Cpu Card SendData:00 A4 00 00 02 3F 00 //选择CPU卡MF Cpu Card Receive :6F 10 84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 90 00 Cpu Card SendData:80 0E 00 00 00 //删除MF下所有文件, Cpu Card Receive :90 00 Cpu Card SendData:80 E0 00 00 07 3F 00 B0 01 F0 FF FF //创建密钥文件 Cpu Card Receive :90 00 Cpu Card SendData:80 D4 01 00 15 39 F0 F0 AA 55 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF //装载0号密钥 Cpu Card Receive :90 00 Cpu Card SendData:80 E0 16 80 0D 38 05 20 F0 F0 95 FF FF 44 44 46 30 31 //创建一个新应用DF:16 80 Cpu Card Receive :90 00 Cpu Card SendData:00 A4 00 00 02 16 80 //选择刚才新建的应用DF:16 80 Cpu Card Receive :6F 07 84 05 44 44 46 30 31 90 00 Cpu Card SendData:80 E0 00 00 07 3F 00 B0 01 F0 FF FF //创建密钥文件 Cpu Card Receive :90 00 Cpu Card SendData:80 D4 01 0C 15 39 F0 F0 CC 55 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF //装载0C号密钥 Cpu Card Receive :90 00 Cpu Card SendData:80 E0 00 04 07 28 01 00 76 77 FF FF //创建一个新的二进制文件,文件ID:04,文件大小:01 00,可读权限:76,读写权限:77 Cpu Card Receive :90 00 Cpu Card SendData:80 D4 01 06 15 39 F0 76 66 55 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF //装载06号密钥,密钥类型:39外部认证密钥,使用权限:F0,更改权限:76,后续寄存器状态值:6,错误计数器:5,16字节密钥FF Cpu Card Receive :90 00 Cpu Card SendData:80 D4 01 07 15 39 F0 77 77 55 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF //装载07号密钥,密钥类型:39外部认证密钥,使用权限:F0,更改权限:77,后续寄存器状态值:7,错误计数器:5,16字节密钥FF Cpu Card Receive :90 00 --------------------------------------------------------------------------------------------------------------------------------------- 以下操作通过PSAM卡进行加密认证,读、写 上面创建的 易写4号文件,不需要再暴露卡片密钥了 激活发卡器上的CPU卡 Cpu Card SendData:00 A4 00 00 02 3F 00 //选择CPU卡MF Cpu Card Receive :6F 15 84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 03 88 01 01 90 00 Cpu Card SendData:00 A4 00 00 02 16 80 //选择CPU卡DF: 16 80 Cpu Card Receive :6F 18 84 05 47 5A 52 53 30 A5 0F 9F 08 01 02 9F 0C 08 01 3F 00 00 00 00 00 00 90 00 Cpu Card SendData:00 A4 00 00 02 00 04 //选择当前应用内的 4号二进制文件 Cpu Card Receive :90 00 Cpu Card SendData:00 84 00 00 08 Cpu Card Receive :A2 F7 44 61 10 31 8B FC 90 00 //取8字节随机数:A2 F7 44 61 10 31 8B FC PSAMCard SendData:00 A4 00 00 02 3F 00 //选择PSAM卡的MF PSAMCard Receive :6F 15 84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 03 88 01 01 90 00 PSAMCard SendData:00 A4 00 00 02 16 80 //选择PSAM卡内的DF PSAMCard Receive :6F 0D 84 05 44 44 46 30 31 A5 04 9F 08 01 02 90 00 PSAMCard SendData:00 88 00 00 08 A2 F7 44 61 10 31 8B FC //使用密钥ID:00 对CPU卡获取到的随机数:A2 F7 44 61 10 31 8B FC 进行内部加密,得到:14 10 04 08 48 99 70 C3 PSAMCard Receive :14 10 04 08 48 99 70 C3 90 00 Cpu Card SendData:00 82 00 07 08 14 10 04 08 48 99 70 C3 //CPU卡使用PSAM卡提供的密钥 认证 7号密钥,7号密钥是可读、可写认证密钥 Cpu Card Receive :90 00 Cpu Card SendData:00 B0 00 00 00 //认证成功,读取CPU卡文件数据 Cpu Card Receive :44 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 00 Cpu Card SendData:00 D6 00 00 05 44 44 00 00 00 //改写CPU卡文件数据 Cpu Card Receive :90 00 |
|||
![]() | 已是第一篇 | ![]() | 下一篇:Delphi 控件数组化 |