智能卡 发卡流程

1, 取随机数

00 84 00 00 04

2, 外部认证

00 82 00 00 08 加上8字节的加密后的随机数

3, 删除MF目录下的所有文件

80 0E 00 00 00

4, 选择MF目录

00 A4 00 00 00

5,建立密钥文件:

80 E0 00 00 07 3F 00 50 01 F0 FF FF

文件标识:00 00
文件空间: 00 50
文件短标识符: 01
增加权限: F0

这里写图片描述

6, 增加线路保护密钥

80 D4 01 00 0D 36 F0 F0 FF 33 FF FF FF FF FF FF FF FF

36:文件线路保护密钥

这里写图片描述

7, 增加外部认证密钥

80 D4 01 00 15 39 F0 F0 AA 33 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

80 D4 01 00 0D 39 F0 F0 AA 55 FF FF FF FF FF FF FF FF

FF FF FF FF FF FF FF FF 8个字节

这里写图片描述

(这个命令有问题,还是用4字节的密钥)

80 D4 01 00 0D 39 F0 F0 AA 55 FF FF FF FF FF FF FF FF

8,建立定长记录文件

80 E0 00 01 07 2A 02 13 F0 00 FF FF

文件标识 : 00 01
文件空间:02 13
这里写图片描述

9, 创建MF目录下的05文件

80 E0 00 05 07 A8 00 30 F0 F0 FF FF

发送指令:80E0000507A80030F0F0FFFF
指令回复:9000(成功)
指令说明:80(CLA)E0(INS)0005(P1P2文件标识)07(Lc)A8(二进制文件28–>A8)0030(文件空间)F0(读权限)F0(写权限)FF(默认)FF(默认)

注:28–>A8 28=00101000 高位变1即:10101000=A8(明文+MAC校验)
注:这一步可以不做。

10, 添加文件记录

00 E2 00 08 13 61 11 4F 09 A0 00 00 00 03 86 98 07 01 50 04 50 42 4F 43

这里写图片描述
08表示:当前文件
13: 十六进制 ,表示后面的数据的长度,后面的数据是添加的记录的内容
61114F09A00000000386980701500450424F43
记录的信息内容为目录名及PBOC 的 ASC 码
注:这是一个TLV 格式的记录,61-11:(4F-09:A00000000386980701);50-04:(50424F43)
A00000000386980701为目录名
50424F43 为 PBOC 的 ASC 码

11, 创建3F01文件

80 E0 3F 01 11 38 03 6F F0 F0 95 FF FF A0 00 00 00 03 86 98 07 01

这里写图片描述
这里写图片描述
指令说明:80(CLA)E0(INS)3F01(P1 P2文件标识)11(Lc)38(文件类型(目录文件))036F(文件空间)F0(建立权限)F0(擦除权限)95(应用文件标识)FFFF(保留字段)A00000000386980701(DF名称 AID)

12, 选择3F01文件

00 A4 04 00 09 A0 00 00 00 03 86 98 07 01

00 A4 00 00 02 3F 01

上面刚建了DF文件,必面执行此命令打开

13, 建立密钥文件

80 E0 00 00 07 3F 01 8F 95 F0 FF FF

这里写图片描述
这里写图片描述
3F密钥文件
018F文件空间(字节)
95短标识符
F0增加权限

14,内部密钥 装载TAC密钥:

80 D4 01 00 15 34 F0 02 00 01 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34

这里写图片描述

这里写图片描述

15, 线路保护密钥

80 D4 01 00 15 36 F0 02 FF 33 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36

36:文件线路保护密钥

这里写图片描述

16,口令解锁密钥

80 D4 01 00 15 37 F0 02 FF 33 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37

这里写图片描述

17,口令重装密钥

80 D4 01 00 15 38 F0 02 FF 33 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38

这里写图片描述

18,外部认证密钥

80 D4 01 00 15 39 F0 02 44 33 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39

这里写图片描述

19,消费密钥

80 D4 01 01 15 3E F0 02 00 01 3E 01 3E 01 3E 01 3E 01 3E 01 3E 01 3E 01 3E 01

这里写图片描述

20, 消费密钥 消费密钥02

80 D4 01 02 15 3E F0 02 00 01 3E 02 3E 02 3E 02 3E 02 3E 02 3E 02 3E 02 3E 02

这里写图片描述

21, 圈存密钥 圈存密钥01

80 D4 01 01 15 3F F0 02 00 01 3F 01 3F 01 3F 01 3F 01 3F 01 3F 01 3F 01 3F 01

这里写图片描述

22,圈存密钥 圈存密钥02

80 D4 01 02 15 3F F0 02 00 01 3F 02 3F 02 3F 02 3F 02 3F 02 3F 02 3F 02 3F 02

这里写图片描述

23, 圈提密钥 圈提密钥01

80 D4 01 01 15 3D F0 02 01 00 3D 01 3D 01 3D 01 3D 01 3D 01 3D 01 3D 01 3D 01

这里写图片描述

24, 圈提密钥 圈提密钥02

80 D4 01 02 15 3D F0 02 01 00 3D 02 3D 02 3D 02 3D 02 3D 02 3D 02 3D 02 3D 02

这里写图片描述

25,修改透支限额密钥 添加修改透支限额密钥01

80 D4 01 01 15 3C F0 02 01 00 3C 01 3C 01 3C 01 3C 01 3C 01 3C 01 3C 01 3C 01

这里写图片描述

26, 修改透支限额密钥 添加修改透支限额密钥02

80 D4 01 02 15 3C F0 02 01 00 3C 02 3C 02 3C 02 3C 02 3C 02 3C 02 3C 02 3C 02

这里写图片描述

27, 口令(PIN)

80 D4 01 00 0D 3A F0 EF 01 33 12 34 5F FF FF FF FF FF

这里写图片描述

28, 创建15号文件(二进制文件)建立二进制文件(线路保护读写)

80 E0 00 15 07 A8 00 1E F0 F0 FF FF

这里写图片描述
指令说明:80(CLA)E0(INS)0015(P1 P2 文件标识)07(Lc)A8(明文MAC 28(二进制文件高位变1)–>A8)001E(文件空间)F0(读权限)F0(增加权限)FF(默认FF)FF(默认FF)
注:28–>A8 28=00101000 高位变1即:10101000=A8(明文+MAC校验)

29, 创建16号文件(二进制文件)

80 E0 00 16 07 A8 00 27 F0 F0 FF FF

这里写图片描述

30, 创建17号文件(二进制文件)

80 E0 00 17 07 28 05 DC F0 F0 FF FF

这里写图片描述

31, 创建18号文件(循环文件)

80 E0 00 18 07 2E 0A 17 F0 EF FF FF

这里写图片描述
0A 17 是 文件空间
F0是读权限
EF是写权限

32,创建钱包文件(电子存折)

80 E0 00 01 07 2F 02 08 F1 00 FF 18

指令说明:80(CLA)E0(INS)0001(P1 P2 文件标识)07(Lc)2F(PBOC ED/EP)0208(默认0208)F1(使用权)00(保留00)FF(默认FF)18(交易明细文件短标识)

这里写图片描述

33.创建钱包文件(电子钱包)

80 E0 00 02 07 2F 02 08 F0 00 FF 18

指令回复:9000(创建成功)
指令说明:80(CLA)E0(INS)0002(P1 P2 文件标识)07(Lc)2F(PBOC ED/EP)0208(默认0208)F0(使用权)00(保留00)FF(默认FF)18(交易明细文件短标识)
这里写图片描述

参考:
《cpu卡psam卡》
《PBOC之CPU卡FM1208的发卡指令讲解.pdf》

MAC 计算:

EF下15文件写入
选择MF
发送指令:00A40000023F00
指令回复:6f15840e315041592e5359532e4444463031a5038801019000
选择EF
发送指令:00A4040009A00000000386980701
指令回复:6f328409a00000000386980701a5259f0801029f0c1e0000000000000000000000000000000000000000000000000000000000009000
取随机数
发送指令:0084000004
指令回复:a3bbcfc89000
通过写入数据计算MAC
计算MAC方式可以通过百度搜索PBOC MAC计算工具
数据源:04D6950022000122000001FFFF01010000220000000000000620160101205012310000
初始向量:a3bbcfc800000000(随机数+00000000)
密钥:36363636363636363636363636363636(各自文件下的线路保护密钥)
计算结果:96E32EF1
发送指令:04D6950022000122000001FFFF0101000022000000000000062016010120501231000096E32EF1(指令+MAC)
指令回复:9000(添加成功)
指令说明:04(CLA)D6(INS)95(文件标识)00(写入数据偏移量)22(Lc Date+Mac)000122000001FFFF01010000220000000000000620160101205012310000(Data 根据情况写入,可以随意定义)96E32EF1(MAC)
MAC计算如下图:

MAC计算如下图:
这里写图片描述

密钥:36363636363636363636363636363636
初始向量:A3BBCFC800000000
数据:04D6950022000122000001FFFF01010000220000000000000620160101205012310000
MAC计算结果:96E32EF1F26E6428

数据(二进制数据,记录数据)的写入

MF下05文件写入

选择MF
发送指令:00A40000023F00
指令回复:6f15840e315041592e5359532e4444463031a5038801019000
取随机数
发送指令:0084000004
指令回复:88bbe4e39000
通过写入数据计算MAC
计算MAC方式可以通过百度搜索PBOC MAC计算工具
数据源:04D6850034000122000001FFFF22000000000000060001201610280000000000010001000000000000000000000000000020501231
初始向量:88bbe4e300000000(随机数+00000000)
密钥:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF(各自文件下的线路保护密钥)
计算结果:AE8D8774
发送指令:04D6850034000122000001FFFF22000000000000060001201610280000000000010001000000000000000000000000000020501231AE8D8774(指令+MAC)
指令回复:9000(添加成功)
指令说明:04(CLA)D6(INS)85(文件标识)00(写入数据偏移量)34(Lc Data+MAC)000122000001FFFF22000000000000060001201610280000000000010001000000000000000000000000000020501231(Data 根据情况写入,可以随意定义)AE8D8774(MAC)
MAC计算如下图:
这里写图片描述

密钥:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
初始向量:88BBE4E300000000
处理数据:04D6850034000122000001FFFF22000000000000060001201610280000000000010001000000000000000000000000000020501231
计算MAC:AE8D87749035B013

猜你喜欢

转载自blog.csdn.net/wowocpp/article/details/80008586