JR/T 0025.10─2004
SKUKEK SKUMAC SUDK ENC SUDK MAC TK
TYPETK TLV UDK Var
用于加密DES密钥或其他可选保密数据的会话密钥, 由KDEK生成 用于在命令处理过程中创建C-MAC,由KMAC生成 由MAC ENC产生的独有数据加密会话密钥 由MAC UDK产生的报文认证码会话密钥 传输密钥
KEK/TK Key交换密钥 PEK/TK PIN加密密钥 DEK/TK 数据加密密钥 传输密钥使用标识
标签,长度,数值(Tag Length Value)
由MDK产生的中国金融集成电路(IC)卡独有密钥 变量(Variable)
4 个人化过程概述
个人化应包含以下过程: 4.1 初始化
为了满足通用个人化的要求,在个人化以前,必然存在一个初始化(预个人化)的过程。它主要有以下几个部分组成:
应用及相关文件和数据结构的确定:这是一个发卡系统中多方协调,确认最终应用(可能是多应用)的过程。由于通用个人化的要求,与最终应用相关的文件和数据结构也必须在此定义。与此同时,一些必要的数据准备工作,也在此完成。
初始化设备的处理过程:初始化设备是向IC卡发送个人化数据的芯片读写器。对大多数使用这一通用方法的IC卡初始化过程来讲,这一设备必须与一个安全模块相连,以便向IC卡发送命令时进行数据的加解密和MAC校验。
IC卡的初始化处理过程:IC卡将从初始化设备接受初始化指令和相关数据,并依照初始化指令创建相应的应用、必需的文件结构、写入一定的数据,以便为下一步的个人化做好准备。经过初始化处理后,IC卡将被部分锁定,从而将只能接受个人化指令和应用指令,不能再次修改文件或应用结构。
对初始化的进一步表述,请参照第5章和第8章。 4.2 数据准备
数据准备是负责创建存储在IC卡应用数据的程序。一些数据是每张卡都相同的,另一些是每张卡各有所异。一些数据可能在整个个人化过程中均是加密的,如密钥。
对数据准备的进一步表述,请参照第6章和第8章。 4.3 个人化设备处理
个人化设备是向IC卡发送个人化数据的芯片读写器。对大多数使用通用方法来做个人化的IC卡应用来讲,这设备必须与一个安全模块相连,以便向应用发送命令时进行数据的加解密和MAC校验。个人化设备应该是独立的,并且与应用无关。
对个人化设备过程的进一步表述,请参照第7章和第8章。 4.4 中国金融集成电路(IC)卡应用程序处理过程
IC卡必须能够从个人化设备接收个人化应用数据并存储以供日后使用。
中国金融集成电路(IC)卡借记/贷记应用应被个人化过程之前设定的密钥锁定。 5 初始化
在个人化之前,必须激活IC卡,装入基本中国金融集成电路(IC)卡借记/贷记应用,并建立文件和数据结构。此外,还要把某些数据写入IC卡,在一些情况下,这些数据适用于整个卡(例如KMCID:
3
JR/T 0025.10─2004
DES会话密钥主密钥标识符),而在另一些情况下,这些数据只适用于某一个应用(如AID:应用标识符)。初始化过程,必须使IC卡满足以下要求:
a) 除非IC卡能够动态地建立文件和记录而且能够将它们初始化为二进制‘0’,必须事先为IC卡应用分区建立文件并为本规范所描述的数据分配存储空间。此外,这个存储空间必须初始化为二进制‘0’。
b) 必须能够根据AID选择每个应用。
c) 如果IC卡应用分区的文件控制信息(FCI)不需要个人化,该信息必须在初始化时创建。 d) 以下数据必须在初始化时写入IC卡中: 1) 应用标示符(AID)必须写入,如果后缀(Suffix)存在,也一起写入。 2) 以下数据单元在RAM中动态初始化为0。 ? ‘9F27’密文信息数据 ? 卡片请求脱机拒绝指示位 ? 卡片请求联机指示位 3) 以下数据被初始化为0,并由卡片操作系统或应用自身管理。当交易过程中卡片与设备间失去联系时,这些数据将被保留。 上次交易的数据——用于防拔卡处理 ? ‘9F36’应用交易计数器(ATC) ? ‘9F58’连续脱机交易下限 ? ‘9F14’连续脱机交易下限 ? ‘9F59’连续脱机交易上限 ? ‘9F23’连续脱机交易上限 ? PIN码
上次交易的数据——可选择保留,用于防拔卡或复位。 ? 连续交易计数器(国际) ? 连续交易计数器(国际-国家) ? 累计交易金额(双货币) ? 累计交易金额 ? 发卡行脚本命令计数器 ? 发卡行脚本失败指示位 ? 发卡行认证失败指示位 ? 联机授权指示位 (上次交易未完成) ? 静态数据认证(SDA)失败指示位 ? 动态数据认证(DDA)失败指示位 ? 上次联机应用交易计数器(ATC)寄存器 ? PIN尝试次数计数器
以下数据被卡片操作系统或应用本身初始化为0(特别表示的除外): ? 应用标识符 (被初始化为制定应用的应用标识符) ? 应用版本号 (被初始化为制定应用的应用版本号) ? 应用交易计数器 (ATC)* ? 上次联机应用交易计数器(ATC)寄存器 * ? 连续交易计数器(国际) ? 连续交易计数器(国际-国家)
4
JR/T 0025.10─2004
? 累计交易金额(双货币) ? 累计交易金额 ? 发卡行脚本命令计数器 ? 发卡行脚本失败指示位 ? 发卡行认证失败指示位 ? 联机授权指示位 (上次交易未完成) ? 静态数据认证(SDA)失败指示位 ? 动态数据认证(DDA)失败指示位 * 可以不能通过GET DATA 指令来取得。 6 数据准备
数据准备必须创建用于个人化一个IC卡应用的数据。由数据准备过程中创建的保密数据必须加密,并且应该为传送到个人化设备的数据产生一个MAC,以保证那些数据的完整性。
数据准备过程分为以下五个步骤: a) 创建个人化数据。
b) 将个人化数据组合为数据分组。 c) 创建个人化指令。
d) 为应用创建用于日志记录的数据。 e) 为个人化设备创建输入文件。 6.1 创建个人化数据
应用个人化过程的设计者必须决定在个人化期间哪些数据将被植入应用中,同时必须确定数据的来源。有些情况下,单一的数据准备过程将创建所有的数据。在其他情况下,数据将来源于多种渠道。数据可分为以下三种类型:
a) 发卡行主密钥及其相关数据。 b) 应用密钥和证书。 c) 应用数据。
6.1.1 发卡行主密钥及其相关数据
个人化过程通常要求创建发卡行主密钥和相关数据。一部分数据可能在个人化期间被植入卡内。主密钥用于生成卡片或应用密钥。
其他过程可能也会使用到一个或多个为个人化过程提供的主密钥。例如,用于数据准备和个人化之间的密钥交换密钥。为保证在过程之间主密钥能安全地被共享,需要一种导入和导出主密钥的方法。 6.1.2应用密钥和证书
卡片如果支持卡片认证,发卡行认证或发卡行脚本处理,卡片密钥必须按照中国金融集成电路(IC)卡借记贷记卡片规范中定义的方法,根据PAN和PAN序列号,用发卡行主密钥分散而成。
如果卡片支持脱机数据认证,发卡行需要生成一个RSA公私钥对,并且公钥必须由支付系统认证中心签名,其生成的发卡行公钥证书必须置于卡片中。如果支持DDA作为脱机数据认证方法,每张卡片都必须生成一对公私钥对,并且ICC公钥必须由发卡行私钥签名,其生成的ICC公钥证书和相应的私钥也必须包含在卡片中。 6.1.3应用数据
有些应用数据可能对于某个发卡行的所有IC卡都通用,例如,对一个在单一国家内发行卡的发卡行来说,发卡行国家编号总是一样的。有些应用数据对IC卡是唯一的,例如,PAN或参考PIN。 6.2 记录格式
将IC卡应用数据传送到个人化设备的格式在第二章的参考1 EMV CPS中描述。 MAC—中国金融集成电路(IC)卡规范推荐安全等级设定是在EXTERNAL AUTHENTICATE命令
5
JR/T 0025.10─2004
中使P1 = ‘01’。 EXTERNAL AUTHENTICATE后的所有被IC卡应用接收的命令包含一个C-MAC。 6.2.1结束个人化处理
个人化设备应将最后一个STORE DATA命令的P1参数的b8设置为‘1b’,以便表明应用个人化的完成。随着最后一个STORE DATA命令的结束,应用完成个人化,并且STORE DATA命令会被应用屏蔽掉。
中国金融集成电路(IC)卡借记/贷记应用并不要求使用数据分组‘7FFF’在最后一个STORE DATA命令中提出数据请求。
6.3 中国金融集成电路(IC)卡的数据分组
在中国金融集成电路(IC)卡借记/贷记应用的个人化数据被创建之后,它必须放入正确的分组。这些数据分组随后按照记录格式(在第二章,表7 EMV CPS中描述)被植入数据元素‘ICC数据’。
数据分组的设计在个人化过程中承担着重要的作用。数据分组标识符(DGIs)是两字节十六进制数。数据分组标识的第一个字节等于‘01’到‘1E’,表明数据存储的SFI。第二个字节表明SFI记录的记录编号。其他那些第一个字节在此范围之外的所有数据分组标识都用于索引并不存储于SFI的数据,它们在EMV中定义,为EMV、支付系统和发卡行所用。
中国金融集成电路(IC)卡借记/贷记应用对于该约定的例外情况包括数据分组标识的‘0D01’和‘0E01’。这些数据分组标识中的数据,使用READ RECORD或UPDATE记录指令是无法访问的。根据具体实现的不同,卡片可能把数据元素存储于这些数据分组标识中作为记录,也可能不存储。
中国金融集成电路(IC)卡借记/贷记应用由用于支持必要功能的基本最小数据集,和支持可选功能(对应用而言可能激活也可能没有)的附加数据集组成。用于支持基本支付服务所需的数据元包含于所有中国金融集成电路(IC)卡借记/贷记应用中。其它数据元根据发卡行对那些数据元素支持功能的需求可能提供也可能没有。这些功能包括:
? 授权控制(AuthC) ? 动态数据认证(标准DDA或CDA) ? 静态数据认证(SDA) ? 脱机PIN – 明文或密文 ? 卡片联机/发卡行认证(CAM/Isuth) ? 发卡行脚本,用于发布后更新
中国金融集成电路(IC)卡借记/贷记应用建议的数据分组定义如下:
表 1 中国金融集成电路(IC)卡借记/贷记应用的数据分组标示符
数据分组标识 0101 0102 数据内容 2磁道等价数据—表2 2磁道等价数据(无持卡人姓名)-表3 0103 0201 0202 0203 0204 0205 0207 0208 02nn* 持卡人证件数据-表4 数据认证数据-表5 数据认证数据-表6 签名静态应用数据-表7 ICC动态认证数据-表8 ICC动态认证数据-表9 最小数据 SDA,DDA SDA,DDA SDA DDA/PIN编码 DDA/PIN编码 否 否 否 否 否 否 否 否 否 读记录 读记录 读记录 读记录 读记录 读记录 读记录 读记录 读记录 特性 最小数据 最小数据 否 否 加密 外部访问 读及更新记录 读及更新记录 ICC PIN 加密数据-表10 PIN编码 ICC PIN 加密数据-表11 PIN编码 重复的签名静态应用数据-表12,表13 SDA 6