版本 Version 1.2.0G&D (China) Information Technologies Co. Ltd.捷德(中国)信息科技有限公司2009-11-16银联数据PBOC2.0 借贷记应用数据准备系统——-——-个人化发卡数据文件结构2前 言本文档描述了由银联数据 PBOC2.0 借贷记应用数据准备系统 (StarDPS)生产的个人化发卡数据文件结构个人化发卡数据文件完全根据 Global Platform(GP)规范制定的个人化发卡数据的标准结构及格式组织,因此数据结构及使用方法均符合 Global Platform 规范3范 围本文档适用于由 PBOC2.0 借贷记应用数据准备系统制作的个人化发卡数据文件其使用对象主要是参与 PBOC2.0 金融借/ 贷记 IC 卡个人化的厂商,及与此应用相关的卡片设计、制造、管理、发行、受理以及应用系统的研制、开发、集成和维护等部门(单位) 4文件结构定义个人化发卡数据文件后缀名为“.GPF” ,为二进制文件,主要用来存放对应每张卡片的个人化数据按照如下定义的格式和顺序,存储数据个人化发卡数据基本结构——GP 消息头结构GP 环境容器结构文件头: GP 任务容器结构(描述个人化发卡数据文件的基本信息) GP 数据包头GP 芯片卡数据模块结构 个人化文件头结构个人化发卡数据文件 DGI 名称索引: 索引头(包含所有 DGI 的顺序列表)索引内容数据内容:(具体的个人化数据,以单张卡片为单位,每张卡片的数据按“数据索引”指定的顺序排列)1.文件头文件头部分主要描述的是个人化发卡数据文件的基本信息。
是由 GP 文件头结构,GP环境容器结构,GP 任务容器结构,GP 数据包头,GP 芯片卡数据模块结构,个人化文件头结构六大部分组成,每个文件必须且只有这些结构,用来表明发卡数据文件对应的信息这些结构存储到文件中,具体的结构定义如下面表格:5表 1 个人化数据文件-文件头结构表文件头结构 数据内容 长度(字节)文件标识 8标志信息 16头文件版本号 5信息长度(从下一项到信息的结尾) 16SCMS ID+交易序列号 10颁发请求的信息源(source of Issuing Request. e.g. "SCMS ID")10处理个人文件的实体 10环境容器(Environment Containers)数量 2所有者信息 8下一项公钥的长度 2对数据加密的的公钥 256下一项的签名长度 2GP 消息头结构签名 256特定容器名称“EC” 6环境容器(Environment Containers)长度 4环境(Environment)描述 16环境(Environment)版本号 5环境的需求情况(1-Mandatory,2-compatible,3-don't care) 1命令注释器的需求情况(1-Mandatory,2-compatible,3-don't care) 1命令注释器的类型 16命令注释器的版本号 5GP 环境容器结构任务容器(Job Containers)的个数 2特定容器名称“JC” 。
6任务容器长度 4用户定义的任务标示符 16在环境中每个任务的优先级0-NA,1-high,2-medium,3-low 1GP 任务容器结构采样确认的消耗等级0-NA,1-high,2-medium,3-low 1特定容器名称“DCH” 6文件头GP 数据包头 个人数据产生时间 146卡片产品的标示符长度 1卡片产品的标示符参考 128卡片产品版本号 5发卡行名称 20发卡数量 4固定库存编号的长度 1固定库存编号参考 128卡片处理的有效期 10模块识别代码 7卡片应用数据的长度 7输出版本号 4应用的数据长度 2卡片应用字头的长度 2卡片参考编号(CRN)的长度 1卡片参考编号(CRN) 128校验状态-00-NA,01-coll,02-coll and coll data,03-coll data,04-coll complete 2模板编号的个数 1卡片模板列表 16*(模板标示符结构长度-PROFILE_ID,大小为 65 字节)应用标示符(AID)的个数 1应用标示符(AID)列表 4*(应用标示符结构长度,大小为 17 字节)GP 芯片卡数据模块结构应用数据 应用数据的结构的长度(APP_DATA)模板个数 1个人化模板 8*(个人化模板结构- GD_PERSO_PROFILE)任务中第 1 张卡的卡片序列号 4任务中的卡片数量 4个人化文件头结构任务状态01-prepared;02-dispatched;03-finished 172.DGI 名称索引表 2-1 个人化数据文件-DGI 索引表结构 数据内容 长度(字节)DGI 名称结构数量卡片个人化时所要用到的 DGI 个数总数(该值表示后续“DGI 名称结构序列”的 DGI 名称结构数目)4DGI 名称的长度 2第 1 个 DGI 名称结构 DGI 名称 VarDGI 名称的长度 2第 2 个 DGI 名称结构 DGI 名称 Var…………DGI 名称的长度 2DGI 名称索引(每个文件有且只有一个DGI 名称索引)DGI 名称结构序列第 n 个 DGI 名称结构(n=索引头表示的值) DGI 名称 Var8示例及分析:图 2-1 DGI 名称索引示例图如图中所示,从 00002190h 行的“21”开始到 000022d0h 行的“45” (黑框部分)是GPF 文件的 DGI 名称索引部分,之前的内容为个人化文件头,之后的为个人化数据。
框内头 4 个字节(“21 00 00 00”)为“DGI 名称结构数量” ,这里表示后续共有0x21(即 33)个“DGI 名称结构” “DGI 名称结构”是 LV 结构,例如:“21 00 00 00”之后的 9 个字节(黄色高亮部分)为第一个“DGI 名称结构 ”, “07 00”为它的长度(L ,7 字节) ,后面的 7 个字节是第一条 DGI 的名称(V, “DGI0101”) 后续其他“DGI名称结构”以此类推关于各个 DGI 的详细信息请参考下面表格: 9表 2-2 DGI 名称列表DGI 名称 数据内容 应用功能 是否加密 加密方式0101 通常存放 2 磁道等效数据 通用 否0102 通常存放持卡人信息(姓名、证件类型、证件号) 通用 否0201 通常存放发卡方公钥证书相关内容 PBOC 否0202 通常存放 IC 卡公钥证书相关内容 PBOC 否0203 通常存放用于 SDA 的签名的静态应用数据 PBOC 否0205 ECC/qPBOC 否0206 ECC/qPBOC 否0207 qPBOC 否0208如果 ECC,qPBOC 支持不同的 IC 卡公钥证书,签名数据或者不同应用采用不同的 IC卡公私钥对 ECC 否0301 通常存放认证用静态数据 通用 否0302 通常存放一些可读取应用控制数据 通用 否0401 通用 否0501包括 ECC 的专用数据和qPBOC/ECC 共用的电子现金可用余额ECC/qPBOC 否0D01和 0E01 一起覆盖应用路径下所需要用到的所有其他不在记录中的应用控制数据通用 否0E01和 0D01 一起覆盖应用路径下所需要用到的所有其他不在记录中的应用控制数据通用 否8000 三条 3DES 应用密钥(AC,MAC, ENC) 通用 是 KEK 加密,ECB9000 DGI‘8000’中三条应用密钥的校验值 通用 否8010 PIN PBOC/ECC 是 KEK 加密,ECB9010 PIN 尝试计数器 PBOC/ECC 否8201 IC 卡私钥分量 1/q mod p 通用 是 KEK 加密,ECB8202 IC 卡私钥分量 d mod(p-1) 通用 是 KEK 加密,ECB8203 IC 卡私钥分量 d mod(q-1) 通用 是 KEK 加密,ECB108204 IC 卡私钥分量 p 通用 是 KEK 加密,ECB8205 IC 卡私钥分量 q 通用 是 KEK 加密,ECB9102 接触式接口的 FCI PBOC/ECC 否9103 非接触接口的 FCI 通用 否9104 PBOC AIP/AFL PBOC 否9200 发卡行应用数据(9F10) 通用 否9203 ECC AIP/AFL ECC 否9207 qPBOC AIP/AFL QPBOC 否PSE_1 对个人化厂商可选 否PSE_2 对个人化厂商可选 否PPSE 对个人化厂商可选 否113.个人化数据表 3 卡片个人化数据结构表数据内容结构 数据内容 长度(字节)卡片序列号 该张卡个人化数据在整批卡片数据内容中的编号 4卡片个人化数据内容总长度该张卡个人化数据的总长度=DGI 内容结构 1 长度+……+ DGI 内容结构 n 长度(后续第一个“86”开始至下一张“卡片序号”前的字节数)2DGI 起始标识(“86” ) 1后续数据长度(本字段的下一个字节至下一个“DGI 起始标识”前的字节数) ,如果长度大于等于 128 字节,在该字节前补“81”,此时本字段长度为 2 个字节1/2DGI 序号(GDI8000 不出现此项) 2后续数据长度(本字段的下一个字节至下一个“DGI 起始标识”前的字节数) ,如果长度大于等于 128 字节,在该字节前补“81”,此时本字段长度为 2 个字节1/2记录模板(“70” )(表明该 DGI 用来个人化某个记录文件中的一条记录,该标志仅当 DGI 序号小于 0B01 时出现)1后续数据长度(本字段的下一个字节至下一个“DGI 起始标识”前的字节数) ,如果长度大于等于 128 字节,在该字节前补“81”,此时本字段长度为 2 个字节1/2数据元 1数据元可能是以下两种结构之一: 标准 TLV 结构 仅包含数据内容(V),如应用密钥、PINVar… …DGI内容 1(嵌套的 TLV 结构)数据元 n Var… … …卡个人化数据内容DGI内容 n 同 DGI 内容 1 结构 Var12示例及分析:图 3 卡个人化数据内容如图所示,从上图的 000022d0h 行的“01”开始到图片的末尾(黑框部分,后续数据太长省略)都属于卡片个人化数据部分,在它之前的为“DGI 名称索引” 。
框内头 4 个字节“01 00 00 00” 为卡片序列号,这里表示第一张卡片的数据之后的“D3 06”是第一张卡片个人化数据内容的字节总长度,为十六进制数,表示有0x06D3(1747)字节的个人化数据接下来的黄色高亮部分是第一个 DGI0101 的内容,它其实是嵌套的 TLV 结构:“86”为 DGI 的起始标识(T ) , “1A”是后续数据长度(L) ,即 26 个字节(V) “1A”之后是“01 01”即 DGI 名称(T) , “17”为后续数据长度(L) ,即 23 个字节(V) , “70”为记录模板( T) , “15”为后续记录数据的长度(L) ,即 21 个字节(V) ,21 个字节之后是“ 86”,表示下一个 DGI 的开始,即 DGI0102以此类推,直至该张卡片数据的最后一个 DGI 内容接下来是第二张卡片数据,数据的结构与第一张相同以此类推,直到最后一张卡片的数据13附录-对称加密算法对数据的加密采用分组长度为 64 位(8 字节)或 128 位(16 字节)分组加密算法,可以是电子密码本(ECB)模式或密码块链接( CBC)模式个人化数据文件中。