复旦微电子CPU卡发卡流程

原文地址::http://blog.csdn.net/lupengfei1009/article/details/53002341?locationNum=6&fps=1


相关文章

1、FM1208CPU流----https://wenku.baidu.com/view/891f4dba647d27284a73512d.html



前言

近段时间一直在做CPU卡相关的应用,也知道简单的去操作CPU卡相关数据,但是并没有真正深入去了解CPU卡相关的东西;近期搜集了部分资料,并仔细阅读了puoc3.0规范复旦FM1208技术手册等相关文档,并在淘宝上淘了几张复旦的白卡,花了整整一周的时间,终于自己发了几张测试卡并成功进行了充值和消费操作,因此,分享一下研究的结果同时也算是做笔记了,便于日后查看及回顾。

指令列表

FMCOS指令列表见下图: 

发卡

简单粗暴,直接上具体的发卡流程,因为具体的CPU卡相关的理论在理解上还是需要一段时间,不是我这里一两句话就能解释的清楚;根据个人的切身感受,最开始研究(入门)的时候更多的时候是需要知道到底该怎么做,然后回过头去看理论理解起来更快,因此这里直接上干货;想要更多的了解理论可以直接百度《PBOC3.0规范》看文档去。 
发卡大的操作分为以下几个步骤:

  1. 传输认证(外部认证)
  2. 卡片擦除
  3. 目录文件及用户密钥的创建及写入
  4. 数据(二进制数据,记录数据)的写入

对于传输通道的认证,个人觉得最通俗的理解就是获取读写权限,允许对里面的信息进行增删改的操作;默认的传输密钥为8个字节的0xFF,即:FFFFFFFFFFFFFFFF

  • 卡片上电复位 
    个人前端是使用的手机NFC进行卡片操作,因此将卡片贴到手机NFC感应区域即已经上电复位,建立卡片连接之后即可进行下一步的操作。
  • 获取随机数 
    发送指令:0084000008(得到8个字节的随机数) 
    指令回复:53fd1f262ec4e6e29000(得到随机数:53fd1f262ec4e6e2) 
    指令说明:00(CLA)84(INS)00(P1)00(P2)08(Le)
  • 对随机数进行DES加密 
    加密数据:53fd1f262ec4e6e2 
    加密密钥:FFFFFFFFFFFFFFFF(外部认证密钥) 
    处理结果:A0DBBFC1192FF24A
  • 传输认证(外部认证) 
    发送指令:0082000008A0DBBFC1192FF24A(Data部分为前一步的DES处理的结果) 
    指令回复:9000(认证成功) 
    指令说明:00(CLA)82(INS)00(P1)00(P2外部认证密钥标识00/01)08(Lc)A0DBBFC1192FF24A(Data 8个字节加密后的随机数) 
    可能存在的错误回复:

    • 6188 
      认证密钥不存在,可能是已经做了传输认证并已经擦除的卡片,可以直接尝试一下擦除卡片看是否成功,如果成功,即可做后续的动作。
    • 63Cx 
      认证失败,x为允许再次尝试的次数;出现此错误原因可能有2个,一个是密钥错误;另一个是DES加密出现错误;

    外部认证方式不同的厂商的卡认证方式可能会存在区别,比如在淘宝淘卡的时候会明确的说他这种卡的认证方式。

卡片擦除

擦除卡片里面的所有数据,擦除成功之后,卡片即成为一张空白卡片

发送指令:800E000000 
指令回复:9000(擦除成功) 
指令说明:80(CLA)0E(INS)00(P1)00(P2)00(Lc)

目录文件及用户密钥的创建及写入

这里主要包含了主文件的创建,密钥文件创建,二进制文件、记录文件的创建以及用户密钥的写入

命令报文数据域

  • 目录文件DF(包含MF)

    文件类型 文件空间 建立权限 擦除权限 应用文件ID 保留字 DF名称
    38 2字节 1字节 1字节 XX FFFF 5-16字节
  • 基本文件EF

      命令报文数据域
    文件类型 BYTE1 BYTE2-3 BYTE4 BYTE5 BYTE6 BYTE7
    二进制文件 28 文件空间 读权限 写权限 FF 见说明
    定长记录文件 2A 文件空间 读权限 写权限 FF 见说明
    循环文件 2E 文件空间 读权限 写权限 FF 见说明
    PBOC ED/EP 2F 02 08 使用权限 保留(00) FF 交易明细文件短标识
    变长记录文件 2C 文件空间 读权限 写全选 FF 见说明
    密钥文件 3F 文件空间 DF文件短标识符 中间权限 FF FF
    • 如果希望使用明文 MAC 写 BYTE1 最高位需置 1 (“ 28 ”变为“ A8 ”) 
      如果希望使用加密写,则BYTE1次的最高位置1(“28”变成“68”)

    • 基本文件 EF (密钥文件、 PBOC ED/EP 文件除外)的保留字的最后一个字节定义如下:(设该字节的为定义为 b8 ~ b1 )

      b8 b7 b6 b5 b4 b3 b2 b1 含义
      1 - - - - - - - 文件不支持带线路保护读
      0 - - - - - - - 文件必须使用线路保护读
      - 1 1 1 - - - - 保留为1
      - - - - 1 1 - - 读操作时使用的密钥标识 标识为00的密钥
      - - - - 1 0 - - 标识为01的密钥
      - - - - 0 1 - - 标识为02的密钥
      - - - - 0 0 - -   标识为03的密钥
      - - - - - - 1 1 写操作时使用的密钥标识 标识为00的密钥
      - - - - - - 1 0 标识为01的密钥
      - - - - - - 0 1 标识为02的密钥
      - - - - - - 0 0 标识为03的密钥
    • 对于记录文件(包括定长文件、钱包文件、循环文件),文件空间的第一个字节为记录的总个数,第二个字节为记录的长度:物理空间总数(个数*(记录长度+1)+8)。

    • 对于对于密钥文件所谓的DF短文件标识符,说明如下:当高三位为000时为DDF,当高三位是100时是ADF短文件标识号

    • 对于 PBOC ED/EP 中所谓的 TAC 密钥标识是指该 ED/EP 在计算 TAC 时使用到的密钥类型为‘ 34 ’密钥的标识;所谓交易明细文件是指 ED/EP 在记录交易明细时用到的短文件标识符。

    • 所有文件建立之后不能自动被选择。
  • 密钥类型

    类型 意义
    34 内部密钥
    36 文件线路保护密钥
    38 重装口令密钥的密钥
    39 外部认证密钥
    3A 口令密钥
    3B 解锁口令密钥
    3C 修改透支限额
    3D 圈提
    3E 消费
    3F 圈存密钥

指令集列表

800E000000
80E03F000D38FFFFF0F001FFFFFFFFFFFFFF
80E00000073F005001F0FFFF
80D401000D36F0F0FF33FFFFFFFFFFFFFFFF
80D401001539F0F0AA33FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
80E00001072A0213F000FFFF
80E0000507A80030F0F0FFFF
00E200081361114F09A00000000386980701500450424F43
80E03F011138036FF0F095FFFFA00000000386980701
00A4040009A00000000386980701
80E00000073F018F95F0FFFF
80D401001534F002000134343434343434343434343434343434
80D401001536F002FF3336363636363636363636363636363636
80D401001537F002FF3337373737373737373737373737373737
80D401001538F002FF3338383838383838383838383838383838
80D401001539F002443339393939393939393939393939393939
80D40101153EF00200013E013E013E013E013E013E013E013E01
80D40102153EF00200013E023E023E023E023E023E023E023E02
80D40101153FF00200013F013F013F013F013F013F013F013F01
80D40102153FF00200013F023F023F023F023F023F023F023F02
80D40101153DF00201003D013D013D013D013D013D013D013D01
80D40102153DF00201003D023D023D023D023D023D023D023D02
80D40101153CF00201003C013C013C013C013C013C013C013C01
80D40102153CF00201003C023C023C023C023C023C023C023C02
80D401000D3AF0EF013312345FFFFFFFFFFF
80E0001507A8001EF0F0FFFF
80E0001607A80027F0F0FFFF
80E00017072805DCF0F0FFFF
80E00018072E0A17F0EFFFFF
80E00001072F0208F100FF18
80E00002072F0208F000FF18
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

指令集说明

  • MF文件的创建 
    发送指令:80E03F000D38FFFFF0F001FFFFFFFFFFFFFF 
    指令回复:9000(文件创建成功) 
    指令说明:80(CLA)E0(INS)3F00(P1 P2 文件标识)0D(Lc)38(文件类型)FFFF(文件空间)F0(建立权限)F0(擦除权限)01(应用文件ID)FFFF(保留字)FFFFFFFFFF(DF名称)
  • 建立密钥文件 
    发送指令:80E00000073F005001F0FFFF 
    指令回复:9000(创建成功) 
    指令说明:80(CLA)E0(INS)0000(P1P2文件标识)07(Lc)3F(文件类型)0050(文件空间)01(DF文件短标识符)F0(增加权限)FF(默认)FF(默认)
  • 添加线路保护密钥 
    发送指令:80D401000D36F0F0FF33FFFFFFFFFFFFFFFF 
    指令回复:9000(成功) 
    指令说明:80(CLA)D4(INS)01(P1)00(P2)0D(Lc)36(密钥标识)F0(使用权)F0(更改权)FF(默认)33(错误计数器)FFFFFFFFFFFFFFFF(密钥)
  • 添加外部认证密钥 
    发送指令:80D401001539F0F0AA33FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 
    指令回复:9000(成功) 
    指令说明:80(CLA)D4(INS)01(P1)00(P2)15(Lc)39(密钥标识)F0(使用权)F0(更改权)AA(后续状态)33(错误计数器)FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF(密钥)
  • 创建定长文件 
    发送指令:80E00001072A0213F000FFFF 
    指令回复:9000(成功) 
    指令说明:80(CLA)E0(INS)0001(P1P2文件标识)07(Lc)2A(定长文件)0213(文件空间)F0(读权限)00(写权限)FF(默认)FF(默认)
  • 创建05文件 
    发送指令: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校验)
  • 添加文件记录 
    发送指令:00E200081361114F09A00000000386980701500450424F43 
    指令回复:9000(添加成功)
  • 创建EF(基本文件) 
    发送指令:80E03F011138036FF0F095FFFFA00000000386980701 
    指令回复:9000(创建成功) 
    指令说明:80(CLA)E0(INS)3F01(P1 P2文件标识)11(Lc)38(文件类型(目录文件))036F(文件空间)F0(建立权限)F0(擦除权限)95(应用文件标识)FFFF(保留字段)A00000000386980701(DF名称 AID)
  • 选择EF 
    发送指令:00A4040009A00000000386980701 
    指令回复:6f0b8409a000000003869807019000(成功选中) 
    指令说明:00(CLA)A4(INS)04(P1)00(P2)09(Lc)A00000000386980701(Data AID) 
    回复说明:6f(文件控制信息板块的记录标识)0b(长度)84(DF名称的记录标识)09(DF名称记录数据长度)a00000000386980701(ADF的名称)9000(SW1 SW2)
  • 建立密钥文件 
    发送指令:80E00000073F018F95F0FFFF 
    指令回复:9000(创建成功) 
    指令说明:80(CLA)E0(INS)0000(P1P2 文件标识)07(Lc)3F(文件类型)018F(文件控件)95(DF文件短标识符)F0(增加权限)FF(默认)FF(默认)
  • 添加内部密钥 
    发送指令:80D401001534F002000134343434343434343434343434343434 
    指令回复:9000(创建成功) 
    指令说明:80(CLA)D4(INS)01(P1)00(P2)15(Lc)34(密钥标识)F0(使用权)02(更改权)00(密钥版本号)01(算法标识)34343434343434343434343434343434(密钥)
  • 添加线路保护密钥(这里的线路密钥和前面那个所保护的文件不同) 
    发送指令:80D401001536F002FF3336363636363636363636363636363636 
    指令回复:9000(添加成功) 
    指令说明:80(CLA)D4(INS)01(P1)00(P2)15(Lc)36(密钥标识)F0(使用权)02(更改权)FF(默认FF)33(错误计数器)36363636363636363636363636363636(密钥)
  • 添加口令解锁密钥 
    发送指令:80D401001537F002FF3337373737373737373737373737373737 
    指令回复:9000(添加成功) 
    指令说明:80(CLA)D4(INS)01(P1)00(P2)15(Lc)37(密钥标识)F0(使用权)02(更改权)FF(默认FF)33(错误计数器)37373737373737373737373737373737(密钥)
  • 添加口令重装密钥 
    发送指令:80D401001538F002FF3338383838383838383838383838383838 
    指令回复:9000(添加成功) 
    指令说明:80(CLA)D4(INS)01(P1)00(P2)15(Lc)38(密钥标识)F0(使用权)02(更改权)FF(默认FF)33(错误计数器)38383838383838383838383838383838(密钥)
  • 外部认证密钥 
    发送指令:80D401001539F002443339393939393939393939393939393939 
    指令回复:9000(添加成功) 
    指令说明:80(CLA)D4(INS)01(P1)00(P2)15(Lc)39(密钥标识)F0(使用权)02(更改权)44(后续状态)33(错误计数器)39393939393939393939393939393939(密钥)
  • 消费密钥01 
    发送指令:80D40101153EF00200013E013E013E013E013E013E013E013E01 
    指令回复:9000(添加成功) 
    指令说明:80(CLA)D4(INS)01(P1)01(P2)15(Lc)3E(密钥标识)F0(使用权)02(更改权)00(密钥版本号)01(算法标识)3E013E013E013E013E013E013E013E01(密钥)
  • 消费密钥02 
    发送指令:80D40102153EF00200013E023E023E023E023E023E023E023E02 
    指令回复:9000(添加成功) 
    指令说明:80(CLA)D4(INS)01(P1)02(P2)15(Lc)3E(密钥标识)F0(使用权)02(更改权)00(密钥版本号)01(算法标识)3E023E023E023E023E023E023E023E02(密钥)
  • 圈存密钥01 
    发送指令:80D40101153FF00200013F013F013F013F013F013F013F013F01 
    指令回复:9000(添加成功) 
    指令说明:80(CLA)D4(INS)01(P1)01(P2)15(Lc)3F(密钥标识)F0(使用权)02(更改权)00(密钥版本号)01(算法标识)3F013F013F013F013F013F013F013F01(密钥)
  • 圈存密钥02 
    发送指令:80D40102153FF00200013F023F023F023F023F023F023F023F02 
    指令回复:9000(添加成功) 
    指令说明:80(CLA)D4(INS)01(P1)01(P2)15(Lc)3F(密钥标识)F0(使用权)02(更改权)00(密钥版本号)01(算法标识)3F023F023F023F023F023F023F023F02(密钥)
  • 圈提密钥01 
    发送指令:80D40101153DF00201003D013D013D013D013D013D013D013D01 
    指令回复:9000(添加成功) 
    指令说明:80(CLA)D4(INS)01(P1)01(P2)15(Lc)3D(密钥标识)F0(使用权)02(更改权)01(密钥版本号)00(算法标识)3D013D013D013D013D013D013D013D01(密钥)
  • 圈提密钥02 
    发送指令:80D40102153DF00201003D023D023D023D023D023D023D023D02 
    指令回复:9000(添加成功) 
    指令说明:80(CLA)D4(INS)01(P1)01(P2)15(Lc)3D(密钥标识)F0(使用权)02(更改权)01(密钥版本号)00(算法标识)3D023D023D023D023D023D023D023D02(密钥)
  • 添加修改透支限额密钥01 
    发送指令:80D40101153CF00201003C013C013C013C013C013C013C013C01 
    指令回复:9000(添加成功) 
    指令说明:80(CLA)D4(INS)01(P1)01(P2)15(Lc)3C(密钥标识)F0(使用权)02(更改权)01(密钥版本号)00(算法标识)3C013C013C013C013C013C013C013C01(密钥)
  • 添加修改透支限额密钥02 
    发送指令:80D40102153CF00201003C023C023C023C023C023C023C023C02 
    指令回复:9000(添加成功) 
    指令说明:80(CLA)D4(INS)01(P1)01(P2)15(Lc)3C(密钥标识)F0(使用权)02(更改权)01(密钥版本号)00(算法标识)3C023C023C023C023C023C023C023C02(密钥)
  • 添加口令(PIN) 
    发送指令:80D401000D3AF0EF013312345FFFFFFFFFFF 
    指令回复:9000(添加成功) 
    指令说明:80(CLA)D4(INS)01(P1)00(P2)0D(Lc)3A(口令密钥)F0(使用权)EF(默认EF)01(后续状态)33(错误计数器)12345FFFFFFFFFFF(口令)
  • 创建15号文件(二进制文件) 
    发送指令:80E0001507A8001EF0F0FFFF 
    指令回复:9000(创建成功) 
    指令说明: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校验)
  • 创建17号文件(二进制文件) 
    发送指令:80E00017072805DCF0F0FFFF 
    指令回复:9000(创建成功) 
    指令说明:80(CLA)E0(INS)0017(P1 P2 文件标识)07(Lc)28(二进制文件)05DC(文件空间)F0(读权限)F0(添加权限)FF(默认FF)FF(默认FF)
  • 创建18号文件(循环文件) 
    发送指令:80E00018072E0A17F0EFFFFF 
    指令回复:9000(创建成功) 
    指令说明:80(CLA)E0(INS)0018(P1 P2 文件标识)07(Lc)2E(循环文件)0A17(文件空间)F0(读权限)EF(增加权限)FF(默认FF)FF(默认FF)
  • 创建钱包文件(电子存折) 
    发送指令:80E00001072F0208F100FF18 
    指令回复:9000(创建成功) 
    指令说明:80(CLA)E0(INS)0001(P1 P2 文件标识)07(Lc)2F(PBOC ED/EP)0208(默认0208)F1(使用权)00(保留00)FF(默认FF)18(交易明细文件短标识)
  • 创建钱包文件(电子钱包) 
    发送指令:80E00002072F0208F000FF18 
    指令回复:9000(创建成功) 
    指令说明:80(CLA)E0(INS)0002(P1 P2 文件标识)07(Lc)2F(PBOC ED/EP)0208(默认0208)F0(使用权)00(保留00)FF(默认FF)18(交易明细文件短标识)

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

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计算如下图: 

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计算如下图: 

到此,一张能正常充值和消费的CPU已经发完。


2013年2月,中国人民银行发布了《中国金融集成电路(IC)规范(V3.0)》(以下简称PBOC3.0),PBOC3.0是在中国人民银行2005年颁布的《中国金融集成电路(IC)规范(2.0)》(以下简称PBOC2.0)基础上,经业内专家多次研讨并不断修订、补充完善而成,此次升级适应了银行业务发展的新要求,为金融IC进一步扩大应用奠定了基础,对推进金融创新和提升金融服务民生的水平有重要意义。 一、PBOC3.0颁布的背景 1997年12月,中国人民银行在借鉴国际有关标准的基础之上,结合国内金融应用需求,发布了《中国的金融集成电路(IC)规范V1.0》,后来业内把此规范称作PBOC1.0。从内容上看,PBOC1.0规范定义了电子钱包/电子存折应用,规定了片和终端的接口、片本身的技术指标、应用相关的交易流程和终端的技术要求等。 为满足金融IC应用发展的需要,中国人民银行于2003年启动PBOC1.0规范修订工作,补充完善电子钱包/存折应用,增加了与EMV2000标准兼容的借记/贷记应用,增补了非接触式IC电气协议特性、电子钱包扩展应用、借记/贷记应用个人化指南等内容,并在2005年3月颁布了PBOC2.0规范。 为推动金融IC在小额支付和快速支付领域的应用,中国人民银行于2010年5月发布PBOC2.0规范2010版。该规范共13个部分,增加了非接触支付、基于借记贷记的电子现金等内容,以满足小额的快速支付的市场需求。 为适应我国社会安全支付的需要,推动金融IC的健康发展,2011年3月15日,中国人民银行发布《中国人民银行关于推进金融IC应用工作的意见》,表示“十二五”期间将在全国范围内全面推进金融IC应用,以促进中国银行的产业升级和可持续发展。同时人民银行也提出了IC受理环境改造和银行发卡的时间表,这标志着国内金融IC迁移开始全面推进,IC迁移进入关键时期。经过近三年的努力,PBOC3.0规范应运而生,由人民银行于2013年2月正式颁布实施。 二、PBOC3.0的主要内容 PBOC3.0共包括14个部分(原PBOC2.0的第1部分:钱包存折片、第2部分:钱包存折应用、第9部分:钱包存折扩展已删除),分别为: 第3部分:与应用无关的IC与终端接口; 第4部分:借记贷记应用; 第5部分:借记贷记应用片; 第6部分:借记贷记应用终端; 第7部分:借记贷记应用安全; 第8部分:与应用无关的非接触式规范; 第10部分:借记贷记应用个人化指南; 第11部分:非接触式IC通讯; 第12部分:非接触式IC支付; 第13部分:基于借记贷记应用的小额支付; 第14部分:基于借记贷记应用的小额支付扩展应用; 第15部分:电子现金双币支付应用; 第16部分:IC互联网终端; 第17部分:借记贷记应用安全增强。 PBOC3.0结合国内外最新技术与安全标准,对金融IC的底层标准及安全算法进行了完善,增强了片与终端的交互适应性,同时引入了移动支付、行业多应用等元素,提高了金融支付的安全性。 三、PBOC3.0和PBOC2.0的异同分析   1、 安全增强   出于对国家金融安全等多种因素的考虑,PBOC3.0在第17部分详细定义与说明了国密算法在金融IC中的应用,即PBOC3.0的金融IC可以支持SM2/SM3/SMS4(国密算法)与RSA/SHA-1/3DES(国际算法)。这两套算法通过 SM算法支持指示器标签DF69进行切换。   两套算法切换的原则是:终端和片使用共同支持的算法完成交易;遵循国密算法优先处理的原则。   2、 增加应用   (1) 非接触式IC小额支付扩展应用   为适应金融IC跨行业多应用需求,推动金融IC的一多用惠及民生,PBOC3.0在第14部分增加qPBOC扩展应用,分配了扩展应用文件,从而满足了金融IC在地铁、公交、高速公路收费、停车收费、铁路(高铁)等领域的多种应用,同时预留了其它银行自定义应用及保留应用。   (2) 电子现金双币应用   随着国际IC迁移的推进,我国的金融IC进一步兼容国际标准,为港澳台及国外持人提供便利,PBOC3.0第15部分增补了双币电子现金和双币qPBOC应用,对双币种交易时的TAG进行了映射,最大限度地方便持人在两种币种间的快速转换。   (3) IC互联网终端   为推动金融IC与网络支付和移动支付的整合发展,PBOC3.0在第16部分中增补了IC互联网终端的内容,对IC互联网终端的安全体系、应用场景、交易流程等环节进行了详细的定义与阐释。IC互联网终端有效地引入了移动支付的新元素,多种应用场景圈存解决了持人到银行柜台排队办理业务的苦恼。   3、 原有内容升级   (1) 增加了AID预留和分配   对TAG进行了预留以供将来使用;定义了AID的编码规则、保留规则。   (2) 修订了GAC与GPO命令数据的相关内容。   明确了GAC与GPO命令数据不一致时片处理方法;   在终端层面,也明确了若片返回标签重复,终端应当终止交易;   片联机GPO响应数据中新增了9F63的要求,以适应不断增长的应用需求;   明确了GPO响应应遵循的格式。   (3) 明确了执行发卡行认证与执行发卡行脚本之间的关系。   片应当能正常处理应用解锁命令,无论发卡行认证是否执行,若发卡行认证执行但失败,则片应拒绝执行发卡行脚本,并推荐以“6985”响应发卡行脚本命令。   (4) 修改9F63产品标识信息。   9F63命名为“产品标识”,用于标识持人设备产品的物理形态,用途等。   (5) 增加了第6.5节“个人化数据必须遵循的规则”   在增加规则的同时,也明确了9F10中发卡行自定义数据的要求,这些部分的修订,结合了各商业银行接入银联网络的有关经验,对于商业银行发卡的个人化数据具有指导性意义。   (6) 修订非接触式IC通讯的参数   参数的修订目的在于兼容ISO/IEC 14443:2011。   (7) 增加两种交易日志   圈存日志的要求:当片中的电子现金余额(9F79)被设置数据(Put Data)命令成功改写时,片应当记录一条圈存日志。   增加了qPBOC交易日志要求(发卡行可选)。   (8) 其它终端部分的主要修订内容   终端也不应因持人姓名有误而终止交易;   终端在交易时及交易后取得片中电子现金余额的方法;   授权金额为0的处理方式:如果授权金额为零,除非终端支付qPBOC扩展应用,具有联机能力的终端应在终端交易属性字节2的第8位表示要求联机应用密文;如果授权金额为零,除非终端支付qPBOC扩展应用,仅支持脱机的终端应终止交易,提示持人使用另一种界面(如果存在)。   (9) 其它片部分的主要修订内容   修订了片连续MAC错的处理方法。当片执行了收到一个MAC错的发卡行脚本命令,则不应允许执行后续的发卡行脚本命令;   修订了关于“闪”的处理办法;   明确了qPBOC不再设置LOATC。   4、删除不适用部分   删除了电子钱包/电子存折应用及其扩展应用;   删除了借贷记应用中对DDF的描述,删除了终端在应用选择时对DDF的支持,同时强制片不使用DDF;   删除了非接触支付应用中的MSD应用相关内容。   四、PBOC3.0颁布对产业发展的影响   PBOC3.0的颁布有利于我国银行产业应对国际银行技术发展的挑战,满足新形势下人民群众对安全、便捷支付方式的需要,促进了我国银行产业技术升级,推动了我国金融IC应用与行业应用的结合,为加快推进我国金融IC应用普及和产业发展提供了指引和发展机遇。   同时,PBOC3.0的颁布进一步完善了金融标准化体系,为提升我国金融服务水平和保障金融业健康发展提供了有力支撑。   五、结束语   PBOC3.0规范的编制与出台,历时近三年,是各有关部委、金融机构、IC产业链单位等集体智慧的结晶。为配合PBOC3.0规范的宣贯与实施,银行检测中心作为独立的专业化第三方检测机构,及时参与并跟进PBOC规范的编制,目前已经依据PBOC3.0的更新及时升级或新开发了适应PBOC3.0要求的检测工具和测试平台,对全面对外推出PBOC3.0相关的测试项目,满足了IC及终端产品依据新规范改造后的测试需求;与此同时,银行检测中心面向各商业银行、IC相关企业开展了以“PBOC3.0检测标准、技术”为主题的培训研讨班,积极配合了新标准的落地实施。 转自:PBOC3.0和PBOC2.0标准规范异同分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值