第14 部分:非接触式IC 卡小额支付扩展
应用规范
1.非接触式系统基本组成部分包括非接触读写器(或者是PCD)和响应器(或者是PICC)。非接触读写器主要由连接在电路上的天线构成。响应器包括一个感应天线和接在天线尾部的集成电路。读写器和响应器结合起来,功能类似于一个变压器。
2. 对电子(或光)载波信号添加信息称之为调制,调制方法有:
—— 振幅调制(AM):信号载波的振幅随时间的变化而变化;
—— 相位调制(PM):信号载波的相位随时间的变化而变化。
3. 按本部分要求正确定义的信号称之为序列;使用术语“命令”表示PCD发送的命令序列,采用术语“响应”表示PICC的响应序列。
4.编码方式:
通信
Type A
Type B
PCD 到PICC
改进的米勒编码
NRZ-L 编码
PICC 到PCD
曼彻斯特编码
NRZ-L 编码
5. Type A–位编码要求
(1)从PCD 到PICC的位编码 ,PCD使用ASK100%调制的改进的米勒编码方式进行位编码
PCD
PICC
6.3.1.1 PCD 编码逻辑0 和逻辑1 的规定如下:
—— 逻辑1:符号X
—— 逻辑0:符号Y
下列情况除外:
—— 符号Z 用于编码第一个逻辑0(SoF)
6.3.1.2 PICC 解码逻辑0 和逻辑1 的规定如下:
—— 第一个符号Z 应解码为逻辑0
—— 如果有符号X,应解码为逻辑1
—— 如果在符号X 后是符号Y,则将符号Y 解码为逻辑0
(2)从PICC 到PCD 的位编码 ,PICC使用OOK副载波调制的曼彻斯特编码方式进行位编码
PCD
PICC
如果PCD 检测到在前半个位持续时间载波被调制,但是位周期不是从副载波加载状态开始,则PCD 可认为发生传输错误
6.3.2.1 如果载波在位持续时间的前半部分被副载波调制(符号D),则位周期应从副载波加载状态开始
6.3.2.2 PCD 解码逻辑0 和逻辑1 的规定如下:
—— 如果检测到符号D,解码为逻辑1
—— 如果检测到符号E,解码为逻辑0
6.3.2.3 PICC编码逻辑0 和逻辑1 的规定如下:
—— 逻辑1:符号D
—— 逻辑0:符号E
6. Type B–位编码要求
(1)从PCD到PICC的位编码 ,PCD使用ASK10%调制的NRZ-L编码方式进行位编码
PCD
PICC
6.4.1.1 PCD 编码逻辑0 和逻辑1 的规定如下:
—— 逻辑0:符号L
—— 逻辑1:符号H
6.4.1.2 PICC解码逻辑0 和逻辑1 的规定如下:
—— 如果检测到符号L,解码为逻辑0
—— 如果检测到符号H,解码为逻辑1
(2)从PICC到PCD位编码 ,PICC使用BPSK调制的NRZ-L编码方式进行编码
PCD
PICC
.4.2.1 如果连续检测到以下情况,解码为逻辑1:
—— 副载波相位发生了Φ0到Φ0或Φ0+180º到Φ0的变化
—— 随后副载波在一个位持续时间内保持相位为Φ0
6.4.2.2 按以下连续情况编码为逻辑1:
—— 副载波相位发生了Φ0到Φ0或Φ0+180º到Φ0的变化
—— 随后副载波在一个位持续时间内保持相位为Φ0
6.4.2.3 如果连续检测到以下情况,解码为逻辑0:
—— 副载波相位发生了Φ0到Φ0+180º或Φ0+180º到Φ0+180º的变化
—— 随后副载波在一个位持续时间内保持相位为Φ0+180º
6.4.2.4 按以下连续情况编码为逻辑0:
—— 副载波相位发生了Φ0到Φ0+180º或Φ0+180º到Φ0+180º的变化
—— 随后副载波在一个位持续时间内保持相位为Φ0+180º
7.同步
(1)Type A–同步
TypeA没有单独定义同步序列,主要是因为以下原因:
——从PCD到PICC的通讯,使用ASK100%的方法调制,其低电平足以触发解调和指明第一个符号的开始;
——对于PICC到PCD的通讯,采用同步固定格式,从PCD命令的最后一个低电平起,在等待规定的载波周期后,PICC应发送SoS。
(2)Type B–同步
a. 从PCD到PICC-Type B的同步
PCD
PICC
6.5.2.1 PCD编码SoS的规定如下:
—— 载波在tPCD,S,1内保持低电平(调制),其后在tPCD,S,2内保持高电平(未调制)
tPCD,S,1和tPCD,S,2的取值见附录A
6.5.2.2 PICC解码SoS的规定如下:
—— 在tPCD,S,1期间,载波为低电平(调制),并且其后在tPCD,S,2内保持高电平(未调制)
b. 从PICC到PCD-Type B的同步
PCD
PICC
6.5.2.3 PCD设置参考相位Φ0的流程如下:
—— PCD发送完命令之后,应忽略在TR0MIN时间内PICC产生的任何副载波
—— PCD在TR1时间内检测到的副载波应为参考相位Φ0
如果PCD在TR1MAX时间后没有检测到相位变化,可认为发生传输错误 如果PCD在TR1MIN之前检查到相位变化,可认为发生传输错误
6.5.2.4 PICC设置参考相位Φ0的流程如下:
—— 在任何PCD命令之后,PICC在最小保护时间TR0MIN内,不应产生任何副载波
—— 在TR0时间后,PICC应在同步时间TR1内产生没有相位变化的副载波,此副载波的相位即为参考相位Φ0
TR0MIN、TR1MAX、TR1MIN的取值见附录A
6.5.2.5 如果在同步时间TR1后PCD连续检测到以下情况,应解码为SoS:
—— 副载波相位发生Φ0到Φ0+180°的变化
—— 随后副载波在tPICC,S,1时间内保持相位为Φ0+180°
—— 随后副载波相位发生Φ0+180°到Φ0变化
—— 最后副载波在tPICC,S,2时间内保持相位为Φ0
6.5.2.6 在同步时间TR1之后,PICC将以下连续情况编码为SoS:
—— 副载波相位发生Φ0到Φ0+180°的变化
—— 随后副载波在tPICC,S,1时间内保持相位为Φ0+180°
—— 随后副载波相位发生Φ0+180°到Φ0变化
—— 最后副载波在tPICC,S,2时间内保持相位为Φ0
tPICC,S,1和tPICC,S,2的取值见附录A
8.帧格式:
数据组合成帧的形式在PCD和PICC之间传输,Type A 和Type B的帧格式不同。Type A使用两种帧:短帧和标准帧,短帧用于通讯初始化,标准帧用于数据交换。Type A的帧是由所有数据位加上一个帧开始(SoF)和一个帧结束(EoF),并且在每8个数据位之后有一个奇偶校验位(P)组成(短帧除外),EoF只用于PCD到PICC的通讯,PICC到PCD的通讯不使用EoF。 Type B是基于字符的协议,首先要将数据字节(=8 bits)组合成字符,一个字符包括一个起始位,8个数据位和一个停止位,然后字符再组成帧进行传输。Type B不使用SoF和EoF。
9. 在PCD中执行的功能,包括:轮询、冲突检测、激活和移出过程。
第15部分:电子现金双币支付应用规范
1. 双币电子现金是在标准电子现金和qPBOC基础上,在卡中增加一组第二币种相关数据元,交易时卡片根据交易货币代码,选择对应币种的数据元进行风险检查和余额更新
2.个人化要求:
双币电子现金应将新增的第二币种相关数据元个人化至卡片中,PDOL应至少包含电子现金终端支持指示器(标签“9F7A”)、授权金额(标签“9F02”)和交易货币代码(标签“5F2A”)
3.应用初始化
卡片在接收到GPO命令后,首先将交易货币代码(标签 “5F2A”)与应用货币代码(标签“9F51”) 进行比较,如果匹配,则在后续流程中使用第一币种相关数据元进行处理;如果不匹配,则将交易货币代码(标签 “5F2A”)与第二币种电子现金应用货币代码(标签“DF71“)进行比较:如果与第二币种电子现金应用货币代码匹配,则在后续流程中使用第二币种相关数据元代替第一币种相关数据元进行处理,否则仍然使用第一币种相关数据元按照标准电子现金流程中币种不匹配的情况处理。
4.读应用数据
终端读取的记录数据中包含电子现金发卡行授权码(标签“9F74”), 则终端将通过GET DATA 读取电子现金余额(标签“9F79”)和电子现金重置阈值(标签“9F6D”),用于终端风险管理中的处理。
对于第二币种电子现金交易,卡片完成GPO 命令的处理后:
终端以GET DATA命令分别读取电子现金余额(标签“9F79”)、电子现金重置阈值(标签“9F6D”)、电子现金余额上限(标签“9F77”)、电子现金单笔交易限额(标签“9F78”)时,卡片应分别将第二币种电子现金余额(标签“DF79”)、 电子现金重置阈值(标签“DF76”)、电子现金余额上限(标签“DF77”)、电子现金单笔交易限额(标签“DF78”)的值返回。
如果没有收到GPO命令或者GPO命令中收到的交易货币代码与第二币种应用货币代码(标签“DF71”)不匹配,则卡片在处理GET DATA命令时仍按标准电子现金交易情况处理。
5.卡片行为分析
卡片在响应GAC命令时,卡片应根据初始化应用处理过程中币种匹配的情况决定在发卡行应用数据(标签“9F10”)中返回电子现金余额(标签“9F79”)还是返回第二币种电子现金余额(标签“DF79”)。
6.发卡行脚本处理
卡片需支持发卡行通过发卡行脚本命令PUT DATA修改第二币种相关数据元。例如发卡行脚本命令PUT DATA的P1 P2参数为“DF79”,则卡片直接修改第二币种电子现金余额(标签“DF79”)对应的值。
7. 基于qPBOC的双币电子现金
基于qPBOC的双币电子现金仅适用于“支持小额检查”选项(卡片附加处理选项,标签“9F68”),不适用“支持小额和CTTA检查”和“支持小额或CTTA检查”选项。当“支持小额和CTTA检查”或“支持小额或CTTA检查”选项打开时,卡片应关闭第二币种电子现金功能,并按照JR/T 0025.12的定义的qPBOC流程处理。
8.卡片风险管理
卡片在接收到GPO命令后开始进行风险管理。在卡片风险管理的第一步“设置货币匹配或不匹配”中,卡片应使用交易货币代码进行电子现金的币种匹配和数据元选择:过程步骤同借记/贷记的双币电子现金初始化交易流程。卡片在风险管理结束后,返回GPO命令的响应数据时:
——如响应数据中包括可用脱机消费金额(标签“9F5D”),则卡片应根据卡片风险管理过程中币种匹配的结果选择使用电子现金余额(标签“9F79”)或第二币种电子现金余额(标签“DF79”) 参与“9F5D”的计算;
——如卡片需要在发卡行自定义数据中返回电子现金余额(标签“9F79”)或脱机可用余额(标签“9F5D”),则卡片应根据卡片风险管理过程中币种匹配的结果选择电子现金余额(标签“9F79”) 或第二币种电子现金余额(标签“DF79”)参与计算。
第16部分:IC卡互联网终端规范
1. 安全通道的建立协议由握手协议和记录协议两部分组成。其中握手协议用于完成终端与处理中心的双向身份认证和会话密钥的交换过程。记录协议用于完成应用数据的加密传输。
2.握手协议工作步骤
1)终端获取算法标识A1,并产生随机数r1,r1 和A1 连接后得到R1(R1=r1|A1),根据终端的算法支持设置在以下步骤中需要用到的对称算法和非对称算法;
2)终端将随机数和算法信息发送到处理中心,启动握手协议;
3)处理中心选择算法标识A2,产生随机数r2,r2 和A2 连接后得到R2。根据从终端发来的算法信息,检查处理中心是否支持,如果处理中心支持此算法,则设置处理中心对应的加解密算法; 不支持则返回错误信息,断开连接;
4)处理中心发送随机数和处理中心的渠道证书;
5)终端使用终端中预制的CA 根证书验证收到的处理中心的渠道证书,如果验证不通过,则发送出错消息,结束链接;否则,终端产生48 字节随机数作为共享主密钥M1,并且使用处理中心的渠道证书中的公钥采用之前设置的非对称算法对M1 加密得到E1;
6)R1 和R2 连接后得到R3,终端先对R3 进行摘要算法得到H1,然后使用终端私钥对H1 进行签名运算得到S1;
7)终端将S1、E1 和终端证书发送到处理中心;
8)处理中心使用CA 根证书验证终端证书合法性,若终端证书验证不通过,则发送错误消息,结束链接;如果终端证书验证通过,则使用终端证书验证S1。若S1 验证不通过,则发送错误消息,结束链接。否则,从E1 中解密得到共享主密钥M1;
9)处理中心对渠道证书进行摘要运算得到H2,对终端证书进行摘要运算得到H3。将R1、R2、H2、H3、S1、E1 连接后得到T1(T1=R1||R2||H2||H3||S1||E1);然后对T1 进行摘要运算得到H4; 将ASCII 码“SERVER”和H4 连接后得到D1;使用M1 前16 个字节对D1 进行HMAC 运算得到F1 (HMAC 计算方法见B.2);
10)处理中心发送握手验证完成消息F1 到终端;
11)终端验证接收到的处理中心发来的F1,若验证不成功,则发送错误消息,结束链接;否则, 发送终端握手验证消息F2到处理中心;F2 运算与F1运算方法一样,只需要将F1 运算时的ASCII码“SERVER”改为ASCII码“CLIENT”;
12)终端发送握手验证完成消息F2到处理中心;
13)处理中心使用同样的计算方法验证接收到的F2消息。验证失败,则发送错误消息,结束链接;
14)上述握手过程成功后,双方使用如下方法计算会话密钥:
X= HMAC(M1, key_label||r1||r2) (M1取其前16个字节)
其中key_label为3字节ASCII码“KEY”,HMAC算法见附录B.2。令X1X2„X20分别为X的第1个至第20字节,则加密密钥SKey为:SKey = X1X2„X16,MAC密钥MKey为:MKey = X5X6„X20;
15)握手过程结束。