为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

中国金融集成电路(IC)卡借记贷记规范v2-卡片部分

2017-11-12 50页 doc 441KB 24阅读

用户头像

is_196623

暂无简介

举报
中国金融集成电路(IC)卡借记贷记规范v2-卡片部分中国金融集成电路(IC)卡借记贷记规范v2-卡片部分 中国金融集成电路(IC)卡 借记/贷记规范 第一部分:卡片规范 中国金融集成电路(IC)卡标准修订工作组 二零零四年九月 目 次 1. 引言 ........................................................................................................................................................1 2. 范围 ....
中国金融集成电路(IC)卡借记贷记规范v2-卡片部分
中国金融集成电路(IC)卡借记贷记v2-卡片部分 中国金融集成电路(IC)卡 借记/贷记规范 第一部分:卡片规范 中国金融集成电路(IC)卡标准修订工作组 二零零四年九月 目 次 1. 引言 ........................................................................................................................................................1 2. 范围 ........................................................................................................................................................1 3. 参考资料.................................................................................................................................................1 4. 定义 ........................................................................................................................................................1 5. 缩略语和符号表示 ..................................................................................................................................2 6. 概述 ........................................................................................................................................................5 6.1 功能概述 ........................................................................................................................................5 6.1.1 应用选择 (强制) .....................................................................................................................5 6.1.2 应用初始化/读应用数据(强制) ...............................................................................................5 6.1.3 脱机数据认证(可选) ...............................................................................................................5 6.1.4 交易处理限制(强制) ...............................................................................................................6 6.1.5 持卡人验证(强制) ..................................................................................................................6 6.1.6 终端风险管理(强制) ...............................................................................................................6 6.1.7 终端行为分析(强制) ...............................................................................................................6 6.1.8 卡片行为分析(强制) ...............................................................................................................7 6.1.9 联机处理(可选) ......................................................................................................................7 6.1.10 交易结束(强制) ..................................................................................................................7 6.1.11 发卡行到卡片的脚本处理(可选) .........................................................................................7 6.2 强制与可选功能..............................................................................................................................9 6.2.1 卡片功能需求 .............................................................................................................................9 6.2.2 命令支持需求 .......................................................................................................................... 10 7. 应用选择.............................................................................................................................................. 11 7.1 卡片数据 ..................................................................................................................................... 11 7.2 终端数据 ..................................................................................................................................... 13 7.3 命令 ............................................................................................................................................. 13 7.4 建立候选应用列表 ....................................................................................................................... 14 7.4.1 目录选择方式 .......................................................................................................................... 14 7.4.2 AID列表选择方式 ................................................................................................................... 16 7.5 确定和选择应用........................................................................................................................... 16 7.6 流程图 ......................................................................................................................................... 17 7.7 后续相关流程 .............................................................................................................................. 18 8. 应用初始化 .......................................................................................................................................... 19 8.1 卡片数据 ..................................................................................................................................... 19 8.2 终端数据 ..................................................................................................................................... 20 8.3 命令 ............................................................................................................................................. 20 8.4 处理流程 ..................................................................................................................................... 20 8.5 前期相关处理 .............................................................................................................................. 22 8.6 后续相关处理 .............................................................................................................................. 22 9. 读应用数据 .......................................................................................................................................... 22 9.1 卡片数据 ..................................................................................................................................... 22 9.2 终端数据 ..................................................................................................................................... 23 9.3 命令 ............................................................................................................................................. 23 ii 9.4 处理流程 ..................................................................................................................................... 23 9.5 前期相关处理 .............................................................................................................................. 23 9.6 后续相关处理 .............................................................................................................................. 23 10. 脱机数据认证 .................................................................................................................................. 23 10.1 密钥和证书 .................................................................................................................................. 24 10.2 决定脱机数据认证方法 ................................................................................................................ 24 10.2.1 卡片数据 ............................................................................................................................. 24 10.2.2 处理流程 ............................................................................................................................. 24 10.3 静态数据认证(SDA) ............................................................................................................... 25 10.3.1 卡片数据 ............................................................................................................................. 25 10.3.2 终端数据 ............................................................................................................................. 26 10.3.3 命令 ..................................................................................................................................... 26 10.3.4 处理流程 ............................................................................................................................. 26 10.4 动态数据认证(DDA) ............................................................................................................... 26 10.4.1 卡片数据 ............................................................................................................................. 27 10.4.2 终端数据 ............................................................................................................................. 27 10.4.3 命令 ..................................................................................................................................... 28 10.4.4 处理流程 ............................................................................................................................. 28 10.5 前期相关处理 .............................................................................................................................. 29 10.6 后续相关处理 .............................................................................................................................. 30 11. 处理限制 ......................................................................................................................................... 30 11.1 卡片数据 ..................................................................................................................................... 30 11.2 终端数据 ..................................................................................................................................... 31 11.3 处理流程 ..................................................................................................................................... 31 11.3.1 应用版本号检查 ................................................................................................................... 31 11.3.2 应用用途控制检查 ............................................................................................................... 31 11.3.3 应用生效日期检查 ............................................................................................................... 32 11.3.4 应用失效日期检查 ............................................................................................................... 32 11.4 前期相关处理 .............................................................................................................................. 32 11.5 后续相关处理 .............................................................................................................................. 32 12. 持卡人验证 ...................................................................................................................................... 33 12.1 卡片数据 ..................................................................................................................................... 33 12.2 终端数据 ..................................................................................................................................... 36 12.3 命令 ............................................................................................................................................. 36 12.4 处理流程 ..................................................................................................................................... 37 12.4.1 CVM列表处理 ..................................................................................................................... 37 12.4.2 脱机明文PIN处理 ............................................................................................................... 37 12.4.3 其它CVM处理 ..................................................................................................................... 41 12.5 前期相关处理 .............................................................................................................................. 41 12.6 后续相关处理 .............................................................................................................................. 41 13. 终端风险管理 .................................................................................................................................. 41 13.1 卡片数据 ..................................................................................................................................... 41 13.2 终端数据 ..................................................................................................................................... 42 13.3 命令 ............................................................................................................................................. 42 13.4 处理流程 ..................................................................................................................................... 43 iii 13.4.1 终端异常文件检查 ............................................................................................................... 43 13.4.2 商户强制交易联机 ............................................................................................................... 43 13.4.3 最低限额检查 ...................................................................................................................... 43 13.4.4 随机交易选择 ...................................................................................................................... 43 13.4.5 频度检查 ............................................................................................................................. 43 13.4.6 新卡检查 ............................................................................................................................. 43 13.5 前期相关处理 .............................................................................................................................. 43 13.6 后续相关处理 .............................................................................................................................. 44 14. 终端行为分析 .................................................................................................................................. 44 14.1 卡片数据 ..................................................................................................................................... 44 14.2 终端数据 ..................................................................................................................................... 45 14.3 命令 ............................................................................................................................................. 46 14.4 处理流程 ..................................................................................................................................... 46 14.4.1 检查脱机处理结果 ............................................................................................................... 46 14.4.2 请求密文处理 ...................................................................................................................... 46 14.5 前期相关处理 .............................................................................................................................. 46 14.6 后续相关处理 .............................................................................................................................. 46 15. 卡片行为分析 .................................................................................................................................. 46 15.1 卡片数据 ..................................................................................................................................... 47 15.2 终端数据 ..................................................................................................................................... 49 15.3 命令 ............................................................................................................................................. 49 15.4 处理流程 ..................................................................................................................................... 49 15.4.1 卡片收到密文请求 ............................................................................................................... 49 15.4.2 卡片风险管理 ...................................................................................................................... 49 15.4.3 卡片风险管理流程 ............................................................................................................... 51 15.5 卡片提供响应密文 ....................................................................................................................... 54 15.5.1 卡片脱机拒绝交易 ............................................................................................................... 55 15.5.2 卡片请求联机操作 ............................................................................................................... 55 15.5.3 卡片脱机接受交易 ............................................................................................................... 56 15.5.4 复合动态数据认证/生成应用密文响应 ................................................................................. 56 15.6 流程图 ......................................................................................................................................... 57 15.7 前期相关处理 .............................................................................................................................. 62 15.8 后续相关处理 .............................................................................................................................. 63 16. 联机处理 ......................................................................................................................................... 63 16.1 卡片数据 ..................................................................................................................................... 63 16.2 联机响应数据 .............................................................................................................................. 64 16.3 命令 ............................................................................................................................................. 64 16.4 处理流程 ..................................................................................................................................... 65 16.4.1 联机请求 ............................................................................................................................. 65 16.4.2 联机响应 ............................................................................................................................. 65 16.4.3 发卡行认证 .......................................................................................................................... 65 16.5 流程图 ......................................................................................................................................... 66 16.6 前期相关处理 .............................................................................................................................. 66 16.7 后续相关处理 .............................................................................................................................. 67 17. 交易结束 ......................................................................................................................................... 67 iv 17.1 卡片数据 ..................................................................................................................................... 67 17.2 终端数据 ..................................................................................................................................... 69 17.3 命令 ............................................................................................................................................. 70 17.4 结束操作概述 .............................................................................................................................. 70 17.5 收到生成应用密文(GENERATE AC)命令 ............................................................................. 71 17.6 联机授权的交易........................................................................................................................... 71 17.6.1 联机授权后请求AAC(拒绝) ............................................................................................ 72 17.6.2 联机授权后请求TC(接受) ............................................................................................... 73 17.7 请求联机操作,但是联机授权没有完成 ...................................................................................... 75 17.7.1 卡片风险管理 ...................................................................................................................... 75 17.7.2 无法联机上送后的卡片响应 ................................................................................................ 77 17.8 复合动态数据认证/生成应用密文响应 ......................................................................................... 78 17.9 流程图 ......................................................................................................................................... 79 17.10 前期相关处理 .............................................................................................................................. 85 17.11 后续相关处理 .............................................................................................................................. 85 18. 脚本处理 ......................................................................................................................................... 85 18.1 卡片数据 ..................................................................................................................................... 85 18.2 终端数据 ..................................................................................................................................... 86 18.3 发卡行脚本操作中的密钥管理 ..................................................................................................... 86 18.4 认证响应数据 .............................................................................................................................. 88 18.5 命令 ............................................................................................................................................. 88 18.6 处理流程 ..................................................................................................................................... 90 18.6.1 授权响应报文 ...................................................................................................................... 90 18.6.2 卡片脚本处理 ...................................................................................................................... 90 18.6.3 卡片安全报文 ...................................................................................................................... 90 18.6.4 结果指示器 .......................................................................................................................... 91 18.6.5 流程图 ................................................................................................................................. 91 18.7 前期相关处理 .............................................................................................................................. 92 18.8 后续相关处理 .............................................................................................................................. 93 19. 卡片记录交易明细 ........................................................................................................................... 93 19.1 交易明细记录文件 ....................................................................................................................... 93 19.2 交易记录数据元........................................................................................... 错误~未定义书签。94 附录 ................................................................................................................................................................1 A. 卡片数据元素定义 ..................................................................................................................................1 A.1 卡片和发卡行数据元描述 ...............................................................................................................1 A.2 卡片和发卡行数据元需求 ............................................................................................................ 31 A.2.1 标签(Tag) ........................................................................................................................... 31 A.2.2 需求 ......................................................................................................................................... 31 A.2.3 数据完整性(备份) ............................................................................................................... 31 A.2.4 修改能力 ................................................................................................................................. 32 A.2.5 取回能力 ................................................................................................................................. 32 A.2.6 静态或动态 .............................................................................................................................. 32 A.2.7 秘密数据 ................................................................................................................................. 32 A.2.8 ADF或DDF数据 ..................................................................................................................... 32 A.2.9 数据需求表 .............................................................................................................................. 33 v A.2.10 数据需求表-条件号对应表 ................................................................................................... 41 B. 命令规范,描述卡片支持的命令 ......................................................................................................... 42 B.1 发卡行脚本命令的基本处理原则 ................................................................................................. 43 B.2 应用锁定(APPLICATION BLOCK)命令APDU .................................................................... 43 B.2.1 定义和范围 .............................................................................................................................. 43 B.2.2 命令报文 ................................................................................................................................. 43 B.2.3 命令报文的数据域 ................................................................................................................... 43 B.2.4 响应报文的数据域 ................................................................................................................... 44 B.2.5 响应报文返回的处理状态 ........................................................................................................ 44 B.3 应用解锁(APPLICATION UNBLOCK)命令APDU .............................................................. 44 B.3.1 定义和范围 .............................................................................................................................. 44 B.3.2 命令报文 ................................................................................................................................. 44 B.3.3 命令报文的数据域 ................................................................................................................... 44 B.3.4 响应报文的数据域 ................................................................................................................... 44 B.3.5 响应报文返回的处理状态 ........................................................................................................ 44 B.4 卡片锁定(CARD BLOCK)命令APDU ................................................................................... 45 B.4.1 定义和范围 .............................................................................................................................. 45 B.4.2 命令报文 ................................................................................................................................. 45 B.4.3 命令报文的数据域 ................................................................................................................... 45 B.4.4 响应报文的数据域 ................................................................................................................... 45 B.4.5 响应报文返回的处理状态 ........................................................................................................ 45 B.5 外部认证(EXTERNAL AUTHENTICATE)命令APDU ........................................................ 45 B.5.1 定义和范围 .............................................................................................................................. 45 B.5.2 命令报文 ................................................................................................................................. 46 B.5.3 命令报文的数据域 ................................................................................................................... 46 B.5.4 响应报文的数据域 ................................................................................................................... 46 B.5.5 响应报文返回的处理状态 ........................................................................................................ 46 B.6 生成应用密文(GENERATE AC)命令APDU ......................................................................... 47 B.6.1 定义和范围 .............................................................................................................................. 47 B.6.2 命令报文 ................................................................................................................................. 47 B.6.3 命令报文的数据域 ................................................................................................................... 48 B.6.4 响应报文的数据域 ................................................................................................................... 48 B.6.5 响应报文返回的处理状态. ....................................................................................................... 49 B.7 取数据(GET DATA)命令APDU ............................................................................................ 49 B.7.1 定义和范围 .............................................................................................................................. 49 B.7.2 命令报文 ................................................................................................................................. 50 B.7.3 命令报文的数据域 ................................................................................................................... 51 B.7.4 响应报文的数据域 ................................................................................................................... 51 B.7.5 响应报文返回的处理状态 ........................................................................................................ 51 B.8 取处理选项(GET PROCESSING OPTIONS)命令APDU..................................................... 51 B.8.1 定义和范围 .............................................................................................................................. 51 B.8.2 命令报文 ................................................................................................................................. 51 B.8.3 命令报文的数据域 ................................................................................................................... 52 B.8.4 响应报文的数据域 ................................................................................................................... 52 B.8.5 响应报文返回的处理状态 ........................................................................................................ 52 vi B.9 内部认证(INTERNAL AUTHENTICATE)命令APDU ........................................................ 52 B.9.1 定义和范围 .............................................................................................................................. 52 B.9.2 命令报文 ................................................................................................................................. 52 B.9.3 命令报文的数据域 ................................................................................................................... 53 B.9.4 响应报文的数据域 ................................................................................................................... 53 B.9.5 响应报文返回的处理状态 ........................................................................................................ 53 B.10 PIN修改/解锁(PIN CHANGE/UNBLOCK)命令APDU........................................................ 53 B.10.1 定义和范围 .......................................................................................................................... 53 B.10.2 命令报文 ............................................................................................................................. 53 B.10.3 命令报文的数据域 ............................................................................................................... 54 B.10.4 响应报文的数据域 ............................................................................................................... 55 B.10.5 响应报文返回的处理状态 .................................................................................................... 56 B.11 设置数据(PUT DATA)命令APDU ......................................................................................... 56 B.11.1 定义和范围 .......................................................................................................................... 56 B.11.2 命令报文 ............................................................................................................................. 56 B.11.3 命令报文的数据域 ............................................................................................................... 57 B.11.4 响应报文的数据域 ............................................................................................................... 57 B.11.5 响应报文返回的处理状态 .................................................................................................... 57 B.11.6 SW2 ..................................................................................................................................... 57 B.12 读记录(READ RECORD)命令APDU .................................................................................... 58 B.12.1 定义和范围 .......................................................................................................................... 58 B.12.2 命令报文 ............................................................................................................................. 58 B.12.3 命令报文的数据域 ............................................................................................................... 58 B.12.4 响应报文的数据域 ............................................................................................................... 59 B.12.5 响应报文返回的处理状态 .................................................................................................... 59 B.13 选择(SELECT)命令APDU .................................................................................................... 59 B.13.1 定义和范围 .......................................................................................................................... 59 B.13.2 命令报文 ............................................................................................................................. 59 B.13.3 命令报文数据域 ................................................................................................................... 60 B.13.4 应答报文数据域 ................................................................................................................... 60 B.13.5 应答报文状态码 ................................................................................................................... 62 B.14 修改记录(UPDATE RECORD)命令APDU ........................................................................... 62 B.14.1 定义和范围 .......................................................................................................................... 62 B.14.2 命令报文 ............................................................................................................................. 62 B.14.3 命令报文的数据域 ............................................................................................................... 63 B.14.4 响应报文的数据域 ............................................................................................................... 63 B.14.5 响应报文返回的处理状态 .................................................................................................... 63 B.15 校验(VERIFY)命令APDU ..................................................................................................... 64 B.15.1 定义和范围 .......................................................................................................................... 64 B.15.2 命令报文 ............................................................................................................................. 64 B.15.3 命令报文的数据域 ............................................................................................................... 65 B.15.4 响应报文的数据域 ............................................................................................................... 65 B.15.5 响应报文中的处理状态 ........................................................................................................ 65 C. 安全报文.............................................................................................................................................. 65 C.1 安全报文格式 .............................................................................................................................. 65 vii C.2 报文完整性和认证(MACing) .................................................................................................. 66 C.2.1 MAC位置 ................................................................................................................................ 66 C.2.2 MAC长度 ................................................................................................................................ 66 C.2.3 MAC密钥生成 ......................................................................................................................... 66 C.2.4 MAC计算 ................................................................................................................................ 66 C.3 数据加密 ..................................................................................................................................... 67 C.3.1 数据加密密钥计算 ................................................................................................................... 67 C.3.2 加密数据的结构 ....................................................................................................................... 67 C.3.3 数据加密计算 .......................................................................................................................... 68 C.3.4 数据解密计算 .......................................................................................................................... 69 C.4 生成过程密钥 .............................................................................................................................. 69 C.5 命令中的安全报文 ....................................................................................................................... 70 D. 认证密钥和算法 ................................................................................................................................... 70 D.1 数据源 ......................................................................................................................................... 70 D.2 生成TC,AAC和ARQC .............................................................................................................. 70 D.3 生成授权响应密文ARPC ............................................................................................................. 72 D.4 密钥分散方法 .............................................................................................................................. 73 E. 支持的密文版本 ................................................................................................................................... 75 F. 算法标识.............................................................................................................................................. 76 图 表 图表 6-1:交易流程图例子 ................................................................................................................................ 8 图表 7-1:卡片目录结构例子 .......................................................................................................................... 15 图表 7-2:使用目录方式进行应用选择 .......................................................................................................... 17 图表 7-3:使用AID列表选择方式进行应用选择 ........................................................................................... 18 图表 8-1:应用初始化流程图 .......................................................................................................................... 21 图表 12-1:检查PIN尝试计数器 ..................................................................................................................... 38 图表 12-2:脱机明文PIN处理 ......................................................................................................................... 40 图表 15-1:卡片行为分析处理流程图(1) .................................................................................................. 57 图表 15-2:卡片行为分析处理流程图(2) .................................................................................................. 58 图表 15-3:卡片行为分析处理流程图(3) .................................................................................................. 59 图表 15-4:卡片行为分析处理流程图(4) .................................................................................................. 60 图表 15-5:卡片行为分析处理流程图(5) .................................................................................................. 61 图表 15-6:卡片行为分析处理流程图(6) .................................................................................................. 62 图表 16-1:联机处理流程图 ............................................................................................................................ 66 图表 17-1:交易结束处理流程图 .................................................................................................................... 71 图表 17-2:交易流程图(1) .......................................................................................................................... 80 图表 17-3:交易流程图(2) .......................................................................................................................... 81 图表 17-4:交易流程图(3) .......................................................................................................................... 82 图表 17-5:交易流程图(4) .......................................................................................................................... 83 图表 17-6:交易流程图(5) .......................................................................................................................... 84 图表 18-1:MAC密钥的生成和使用 ............................................................................................................... 87 图表 18-2:安全报文加密密钥的生成和使用 ................................................................................................ 88 图表 18-3:发卡行脚本处理流程图 ................................................................................................................ 92 viii 图表 C-1:使用双长度DEA密钥计算MAC的算法 ........................................................................................ 67 图表 C-2:用双长度DEA密钥进行数据加密 ................................................................................................. 68 图表 C-3:使用双长度DEA密钥进行数据解密 ............................................................................................. 69 图表 D-1:TC/AAC/ARQC的生成算法。 ...................................................................................................... 71 图表 D-2:生成ARPC的算法 .......................................................................................................................... 73 图表 D-3:密钥分散 ......................................................................................................................................... 74 图表 D-4:使用UDK执行卡片认证 ................................................................................................................ 75 表 格 表格 6-1:卡片功能需求 .................................................................................................................................... 9 表格 6-2:命令支持需求 .................................................................................................................................. 10 表格 7-1:应用选择——卡片数据 .................................................................................................................. 12 表格 7-2:应用选择——终端数据 .................................................................................................................. 13 表格 7-3:AID匹配例子 .................................................................................................................................. 16 表格 8-1:应用初始化——卡片数据 .............................................................................................................. 19 表格 8-2:应用初始化——终端数据 .............................................................................................................. 20 表格 9-1:读应用数据——卡片数据 .............................................................................................................. 22 表格 9-2:读应用数据——卡片文件 .............................................................................................................. 23 表格 10-1:脱机数据认证——卡片数据 ........................................................................................................ 24 表格 10-2:SDA中使用的卡片数据 ................................................................................................................ 25 表格 10-3:脱机数据认证——DDA卡片数据 ............................................................................................... 27 表格 10-4:脱机数据认证——DDA处理中卡片内部数据元 ....................................................................... 27 表格 10-5:脱机数据认证——终端数据 ........................................................................................................ 27 表格 11-1:处理限制——卡片数据 ................................................................................................................ 30 表格 11-2:处理限制——终端数据 ................................................................................................................ 31 表格 11-3:应用用途控制(AUC) ............................................................................................................... 32 表格 12-1:CVM列表处理——卡片数据 ....................................................................................................... 33 表格 12-2:CVM列表例子 .............................................................................................................................. 35 表格 12-3:脱机PIN处理——卡片数据 ......................................................................................................... 36 表格 12-4:PIN处理——终端数据 ................................................................................................................. 36 表格 13-1:终端风险管理——卡片数据 ........................................................................................................ 41 表格 13-2:终端风险管理——终端数据 ........................................................................................................ 42 表格 14-1:终端行为分析——卡片数据 ........................................................................................................ 44 表格 14-2:请求密文处理——卡片数据 ........................................................................................................ 45 表格 14-3:检查脱机处理结果——终端数据 ................................................................................................ 45 表格 14-4:请求密文处理——终端数据 ........................................................................................................ 45 表格 15-1:卡片行为分析——卡片数据 ........................................................................................................ 47 表格 15-2:卡片行为分析——终端数据 ........................................................................................................ 49 表格 15-3:卡片风险管理检查 ........................................................................................................................ 50 表格 15-4:卡片响应第一个生成应用密文命令 ............................................................................................ 55 表格 16-1:生成应用密文响应——卡片数据 ................................................................................................ 63 表格 16-2:决定发卡行认证——卡片数据 .................................................................................................... 63 表格 16-3:联机处理,发卡行认证——卡片数据 ........................................................................................ 64 表格 16-4:联机处理——终端数据 ................................................................................................................ 64 ix 表格 17-1:交易结束——卡片数据 ................................................................................................................ 67 表格 17-2:生成应用密文命令响应 ................................................................................................................ 68 表格 17-3:交易结束——终端使用的卡片数据 ............................................................................................ 69 表格 17-4:交易结束——终端数据 ................................................................................................................ 69 表格 18-1:发卡行脚本处理——卡片数据 .................................................................................................... 85 表格 18-2:发卡行脚本处理——终端数据 .................................................................................................... 86 表格 18-3:发卡行脚本处理——联机响应数据 ............................................................................................ 88 表格 A-1:卡片和终端的数据元描述 ............................................................................................................... 1 表格 A-2:数据需求 ......................................................................................................................................... 33 表格 A-3:条件号对应条件 ............................................................................................................................. 41 表格 B-1:APPLICATION BLOCK命令报文 ................................................................................................ 43 表格 B-2:APPLICATION UNBLOCK命令报文 ........................................................................................... 44 表格 B-3:CARD BLOCK命令报文 ............................................................................................................... 45 表格 B-4:EXTERNAL AUTHENTICATE命令报文 .................................................................................... 46 表格 B-5:生成应用的密文类型 ..................................................................................................................... 47 表格 B-6:GENERATE AC命令报文 ............................................................................................................. 47 表格 B-7:GENERATE AC引用控制参数 ..................................................................................................... 47 表格 B-8:GENERATE AC响应报文数据域格式1 ....................................................................................... 48 表格 B-9:密文信息数据编码 ......................................................................................................................... 49 表格 B-10:使用GET DATA命令访问的静态数据 ....................................................................................... 50 表格 B-11:GET DATA命令报文 ................................................................................................................... 50 表格 B-12:GET PROCESSING OPTIONS命令报文 .................................................................................... 51 表格 B-13:GET PROCESSING OPTIONS响应报文数据域格式 ................................................................ 52 表格 B-14:INTERNAL AUTHENTICATE命令报文 ................................................................................... 52 表格 B-15:PIN CHANGE/UNBLOCK命令报文 ........................................................................................... 54 表格 B-16:使用PUT DATA命令修改的数据 ............................................................................................... 56 表格 B-17:PUT DATA命令报文 ................................................................................................................... 56 表格 B-18:PUT DATA命令的警告响应码 ................................................................................................... 57 表格 B-19:READ RECORD命令报文 ........................................................................................................... 58 表格 B-20:READ RECORD命令引用控制参数 ........................................................................................... 58 表格 B-21:READ RECORD响应报文数据域 ............................................................................................... 59 表格 B-22:SELECT命令报文 ........................................................................................................................ 59 表格 B-23:SELECT命令引用控制参数 ........................................................................................................ 59 表格 B-24:SELECT命令的可选参数 ............................................................................................................ 60 表格 B-25:选择PSE的应答报文 (FCI) .......................................................................................................... 60 表格 B-26:选择DDF的应答报文 (FCI) ......................................................................................................... 61 表格 B-27:选择ADF的应答报文 (FCI) ......................................................................................................... 61 表格 B-28:UPDATE RECORD命令报文 ...................................................................................................... 62 表格 B-29:UPDATE RECORD命令引用控制参数 ...................................................................................... 62 表格 B-30:UPDATE RECORD命令的警告响应码 ...................................................................................... 63 表格 B-31:UPDATE RECORD命令的错误响应码 ...................................................................................... 63 表格 B-32:VERIFY命令报文......................................................................................................................... 64 表格 B-33:VERIFY命令参考数据定义(P2) ............................................................................................ 64 表格 D-1:TC/AAC/ARQC数据元顺序 .......................................................................................................... 70 表格 E-1:生成TC/AAC和ARQC的数据 ....................................................................................................... 75 x xi 1.引言 《中国金融集成电路(IC)卡借记/贷记应用卡片规范》从卡片角度根据交易流程描述了芯片卡和 终端在PBOC借记贷记交易中相关的技术细节,包括卡片内部处理细节、所使用数据元、卡片支持的 指令集等。 2.范围 《中国金融集成电路(IC)卡借记/贷记应用卡片规范》适用于由银行发行或接受的金融借记/贷记 IC卡。其使用对象主要是与金融借记贷记IC卡应用相关的卡片设计、制造、管理、发行、受理以及应 用系统的研制、开发、集成和维护等部门(单位)。 3.参考资料 EMV规范文档 , EMV 2000 Integrated Circuit Card Specification for Payment Systems,Version 4.0, Book 1, Application Independent ICC to Terminal Interface Requirements , EMV 2000 Integrated Circuit Card Specification for Payment Systems,Version 4.0, Book 2, Security and Key Management , EMV 2000 Integrated Circuit Card Specifications for Payment Systems,Version 4.0, Book 3, Application Specification , EMV 2000 Integrated Circuit Card Specifications for Payment Systems,Version 4.0, Book 4, Cardholder, Attendant and Acquirer InterfaceRequirements VIS规范文档 , VISA Integrated Circuit Card Application Overview , Version 1.4.0 , VISA Integrated Circuit Card Card Specification , Version 1.4.0 , VISA Integrated Circuit Card Terminal Specification , Version 1.4.0 中国集成电路(IC)卡文件 , 《中国金融集成电路(IC)卡规范》第1部分:卡片规范 (V1.0) , 《中国金融集成电路(IC)卡规范》第2部分:应用规范 (V1.0) , 《中国金融集成电路(IC)卡规范》第3部分:终端规范 (V1.0) 4.定义 以下定义适用于本规范: 1 应用Application 卡片和终端之间的应用协议和相关的数据集 命令 Command 终端向IC卡发出的一条信息,该信息启动一个操作或请求一个应答 密码 Cryptogram 加密运算的结果 金融交易 Financial 持卡人、商户和收单行之间基于收、付款方式的商品或服务交换行为 Transaction 功能 Function 由一个或多个命令实现的处理过程,其操作结果用于完成全部或部分交易 集成电路Integrated 完成处理和/或存储功能的电子器件 Circuit(IC) 集成电路卡(IC卡) 内部封装一个或多个集成电路用于执行处理和存储功能的卡片 Integrated Circuit(s) Card 接口设备 Interface 终端上插入IC卡的部分,包括其中的机械和电气部分 Device 发卡行行为代码(Issuer 发卡行根据TVR的内容选择的动作。 Action Code) 磁条 Magstripe 包括磁编码信息的条状物 路径 Path 没有分隔的文件标识符的连接 支付系统环境 Payment 当符合本规范的支付系统应用被选择,或者用于支付系统应用目的的目录System Environment 定义文件(DDF)被选择后,IC卡中所确立的逻辑条件 响应 Response IC卡处理完收到的命令报文后,返回给终端的报文 脚本(Script) 发卡行向终端发送的命令或命令序列,目的是向IC卡连续输入命令。 终端 Terminal 为完成金融交易而在交易点安装的设备,用于同IC卡的连接。它包括接口 设备,也可包括其它部件和接口,例如与主机通讯的接口 终端行为代码(Terminal 终端行为代码(缺省、拒绝、联机)反映了收单行根据TVR的内容选择的动Action Code) 作。 5.缩略语和符号表示 以下缩略语和符号表示适用于本规范: AAC 应用认证密文(Application Authentication Cryptogram) AAR 应用授权参考(Application Authorization Referral) AC 应用密文(Application Cryptogram) ADA 应用缺省行为(Application Default Action) ADF 应用数据文件(Application Definition File) 2 AEF 应用基本文件(Application Elementary File) AFL 应用文件定位器(Application File Locator) AID 应用标识符(Application Identifier) AIP 应用交互特征(Application Interchange Profile) APDU 应用协议数据单元(Application Protocol Data Unit) ARPC 授权响应密文(Authorization Response Cryptogram) ARQC 授权请求密文(Authorization Request Cryptogram) ATC 应用交易序号(Application Transaction Counter) ATM 自动柜员机(Automated Teller Machine) AUC 应用用途控制(Application Usage Control) BER 基本编码规则(Basic Encoding Rules) CA 认证中心(Certificate Authority) CAM 联机卡片认证(Card Authentication Method) CDA 复合动态数据认证/应用密文生成 CDOL 卡片风险管理数据对象列表(Card Rish Management Data Object List) CID 密文信息数据(Cryptogram Information Data) CLA 命令报文的类别字节(Class Byte of the Command Message) cn 压缩数字格式(compress numeric) C-TPDU 命令TPDU(Command TPDU) CVM 持卡人验证方法(Cardholder Verification Method) CVR 卡片验证结果(Card Verification Results) DDA 动态数据认证(Dynamic Data Authentication) DDF 目录数据文件(Directory Definition File) DDOL 动态数据认证数据对象列表(Dynamic Data Authentication Data Object List) DF 专用文件(Dedicated File) DIR 目录(Directory) DOL 数据对象列表(Data Object List) GPO 获取处理选项(GET PROCESSING OPTIONS) EF 基本文件(Elementary File) 3 EMV Europay MasterCard VISA FCI 文件控制信息(File Control Information) IAC 发卡行行为代码(Issuer Action Code) IC 集成电路(Integrated Circuit) IC卡 集成电路卡(Integrated Circuit Card) Lr 响应数据域的长度(Length of Response Data Field) M 必备(Mandatory) MAC 报文鉴别代码(Message Authentication Code) MDK 主密钥(Master DEA Key) MF 主文件(Mater File) n 数字型(Numeric) O 可选(Optional) P1 参数1(Parameter 1) P2 参数2(Parameter 2) P3 参数3(Parameter 3) PAN 主帐号(Primary Account Number) PBOC 中国人民银行(People Bank of China) PKI 公钥基础设施(Public Key Infrastructure) PIN 个人识别码(Personal Identification Number) PIX 专用应用标识符扩展(Proprietary Application Identifier Extension) RFU 保留(Reserved for Future Use) RID 注册应用提供商标识(Registered Application Provider Identifier) R-TPDU 响应TPDU(Response TPDU) SAD 签名的静态应用数据(Signed Static Application Data) SDA 静态数据认证(Static Data Authentication) SFI 短文件标识符(Short File Identifier) SW1 状态字1(Status Word One) SW2 状态字2(Status Word Two) TAC 终端行为代码(Terminal Action Code) 4 TC 交易证书(Transaction Certificate) TDOL 交易证书数据对象列表(Transaction Certificate Data Object List) TLV 标签、长度、值(Tag Length Value) TSI 交易状态信息(Transaction Status Information) TVR 终端验证结果(Terminal Verification Results) UDK 子密钥(Unique DEA Key) 专用的 本规范内未定义或/和超出本规范范围的 必须 表示强制的要求 应该 表示推荐的要求 6.概述 本章概述了PBOC借记/贷记交易。交易流程图画出了交易中各功能的执行顺序。本章最后描述了卡片和终端支持的功能和命令要求。 6.1 功能概述 下面是PBOC借记/贷记交易处理中用到的功能。有些强制功能中的某些步骤是可选。没有标注强制的功能是可选,是否执行要由卡片或终端中的参数决定。 6.1.1 应用选择 (强制) 面对一张PBOC借记/贷记卡片,终端要决定哪些是卡片和终端都支持的应用。终端显示所有两方都支持的应用,由持卡人选择哪一个应用用于支付。如果这些应用不能在终端显示出来,终端选择由发卡行在卡片个人化时指定的优先级最高的应用。 6.1.2 应用初始化/读应用数据(强制) 在选择了PBOC借记/贷记应用以后,终端要求卡片明确应用支持的数据和功能。根据应用的不同情况(国内或国外)卡片确定的数据或者支持的功能可能不同。终端读出卡片指定的数据,使用支持功能列表决定要执行的处理流程。 6.1.3 脱机数据认证(可选) 根据终端与卡片的支持情况,由终端决定是否使用脱机静态或动态数据认证进行卡片脱机认证。 静态数据认证(SDA)验证卡片中的重要数据在发卡后是否被篡改。终端使用卡片中的发卡行公钥验证卡片中的静态(不变)数据,发卡行公钥保存在卡片中的发卡行公钥证书中。数字签名包括一个重要数据哈希结果,使用发卡行私钥签名加密。还原出的哈希值与实际应用数据所产生的哈希值匹配证实了数据并未被修改。 动态数据认证(DDA)验证卡片中的重要数据在发卡后是否被篡改,同时验证卡片是否伪卡。DDA有两种形式:标准DDA和复合动态数据认证/应用密文生成(CDA)。这两种方式中,终端使用类似SDA 5 的方法验证卡片中的静态数据。 标准DDA,终端请求卡片使用来自卡片和终端的动态数据和IC卡私钥生成一个动态签名密文。终端使用从卡片中恢复出来的IC卡公钥对动态签名密文解密。恢复的数据和原始数据匹配验证了此卡片不是从一张合法卡片通过复制数据而生成的伪卡。 CDA,动态签名密文生成和卡片行为分析处理阶段的生成卡片应用密文组合在一起以确保应用密文来自有效的卡片。 6.1.4 交易处理限制(强制) 终端执行交易处理限制判断交易是否允许进行。终端检查卡片的有效期是否达到,卡是否失效,卡片和终端的应用版本是否匹配,应用用途控制(AUC)限制是否生效。发卡行可以使用AUC限制卡片的应用,包括:国内、国外,现金,货物,服务或返现。 6.1.5 持卡人验证(强制) 持卡人认证可以用来确保持卡人是合法而且卡片没有遗失或被盗。终端使用一个卡片中的卡片认证方式(CVM)列表数据决定认证的执行方式。CVM列表建立了持卡人认证方式优先级别,根据终端能力和交易特性提示用户采用特定的持卡人认证方式。如果持卡人认证方式是脱机PIN,终端提示持卡人输入PIN并传送持卡人输入的PIN到卡片中,卡片比较输入的PIN和卡片中的PIN值。CVM也可能指定联机PIN,签名或不需要持卡人认证。 如果卡片不支持CVM处理,或卡片中不存在CVM,终端可能使用一个缺省的CVM。 CVM处理失败 IC卡进行的明文PIN验证 联机加密PIN验证 IC卡进行的明文PIN验证和签名(纸上) 签名(纸上) 出示证件 无需CVM 6.1.6 终端风险管理(强制) 终端风险管理检查交易是否超过了最低限额,账号是否在终端异常文件中,连续脱机交易次数是否超过了限制次数,是否新卡,以及商户是否强制进行联机,有些交易可能被随机的选择联机处理。 终端风险管理也包括可选的频度检查,终端使用卡片中的数据进行检查。在终端行为分析过程中要考虑终端频度检查的结果。 6.1.7 终端行为分析(强制) 终端行为分析根据脱机数据认证,交易处理限制,终端风险管理结果,持卡人验证结果和卡片和终 6 端里设置的规则来决定交易应该接受脱机,送去联机授权或拒绝。卡片规则在由卡片送给终端的发卡行行为代码(IACs)数据域中设置。支付系统的规则在终端行为代码(TACs)中设置。在决定了交易的处理结果后,终端向卡片请求一个应用密文。应用密文的类型取决于交易的处理结果:接受交易是交易证书(TC),联机是授权请求密文(ARQC),拒绝是应用认证密文(AAC)。终端请求中指明交易是否符合执行CDA。 6.1.8 卡片行为分析(强制) 收到终端发来的应用密文请求后,卡片执行卡片行为分析。卡片可以执行卡片风险管理,以决定是否改变由终端做出的交易处理结果。可以包括的检查有前次没完成的联机交易,前次交易中发卡行认证失败或脱机数据认证失败,频度检查的交易次数和金额总量是否达到限制数。卡片可以将终端请求的脱机接受改成联机授权或脱机拒绝。卡片不能推翻终端做出的拒绝交易的决定。 检查完成后,卡片使用应用数据和卡片中的一个对称密钥生成应用密文,返回给终端。对于脱机接受的交易,TC和用来生成TC的数据通过清算报文传送,用于未来持卡人争议或退单处理。TC可以作为一个交易“证据”当一个持卡人质疑一笔交易的时候用来证明商户或收单行没有修改交易数据。对于脱机拒绝交易,密文类型为AAC。对于请求联机授权的交易,密文类型为ARQC。 当卡片作出接受交易的结论(卡片返回TC)后,卡片会记录交易明细。 6.1.9 联机处理(可选) 如果卡片和终端决定交易需要一个联机授权,而且终端具有联机能力,则终端传送一个联机授权报文给发卡行。这个报文包括ARQC密文,生成ARQC的数据和脱机处理结果指示器。在联机处理阶段,发卡行使用一个名为联机卡片认证(CAM)的处理过程验证ARQC来鉴别卡片。发卡行可以在它的授权决定中考虑CAM和脱机处理的结果。 传送回终端的授权响应报文包括一个发卡行生成的授权响应密文(ARPC)(由ARQC,授权响应码和卡片对称密钥生成)。这个响应也可能包括称为发卡行脚本的二次发卡(post-issuance)更新。 如果授权响应包含ARPC而且卡支持发卡行认证,卡片通过验证ARPC执行发卡行认证,校验响应来自真实的发卡行(或其代理)。一旦发卡行认证成功,卡片可以重新设置卡片中一些和风险控制相关的参数。这样阻止了通过模拟联机处理和伪造接受交易来重新设置计数器和指示器攻击卡片的安全特性。如果发卡行认证失败,卡片的后续交易将联机进行授权直到发卡行认证成功。发卡行可以选择当发卡行认证失败时设置卡片拒绝交易。 6.1.10 交易结束(强制) 卡片和终端执行最后的交易结束处理。一个发卡行接受的交易可能因为发卡行认证结果和卡片中的发卡行编码参数而被修改为拒绝。卡片使用交易处理结果、发卡行认证结果和发卡行编码规则决定是否重新设置基于卡片的计数器和指示器(位)。卡片接受交易生成TC,拒绝交易生成AAC。 如果终端在授权报文后传送一个清算报文,TC要在清算报文中。 当卡片作出接受交易的结论(卡片返回TC)后,卡片会记录交易明细。 6.1.11 发卡行到卡片的脚本处理(可选) 如果发卡行在授权响应报文中包括了更新脚本,终端传递这些脚本命令给卡片。在处理更新之前,卡片执行安全校验确保脚本来自认证过的发卡行而且在传输过程中没有被修改。支持的脚本命令允许更新脱机处理参数,锁定和解锁应用,锁卡,重新设置脱机PIN尝试计数器,修改脱机PIN值。 7 卡片终端 选择指令/响应 强制处理读记录指令/响应支持的应用列表应用选择 取处理选项指令/响应强制处理中又可支持的功能和应应用初始化选步骤用数据定位 读记录指令/响应提供应用记录读应用记录可选步骤 内部认证指令/响应 1脱机数据认证生成动态密文SDA或DDA1 - 如果支持DDA 2 - 在脱机PIN过 程中可选处理限制3 - 如果支持脱机 PIN取数据指令/响应 2PIN尝试计数器持卡人验证校验PIN 3校对PIN 取数据指令/响应上次联机ATC寄终端风险管理存器 生成应用密文指令终端行为分析 执行卡片行为分生成应用密文响应析和生成应用密联机交易 文 是 联机处理 否外部认证指令/响应校验ARPC密文发卡行认证 生成应用密文指令/响应执行最终检查并交易结束生成密文 发卡行脚本指令/响应 处理脚本指令发卡行脚本处理 图表 6-1:交易流程图例子 8 6.2 强制与可选功能 6.2.1 卡片功能需求 PBOC借记/贷记卡片必须支持下表中列出的强制功能。可选功能由发卡行或者市场需求来决定。 如果相关条件满足,有条件的功能也要支持。 表格 6-1:卡片功能需求 功能 卡片支持 应用选择 强制(EMV) , 目录选择方式 可选(EMV) , 直接选择方式 强制(EMV) 应用初始化 强制(EMV) 读应用纪录 强制(EMV) 脱机数据认证 可选(EMV) , SDA 可选(EMV)有条件——如果支持DDA(PBOC借记/贷记) , 标准DDA 可选(EMV)有条件——如果支持CDA(PBOC借记/贷记) , 复合DDA/应用密文生成 可选(EMV) 处理限制 强制(EMV) , 应用版本号检查 强制(EMV) , 应用用途控制检查 可选(EMV) , 生效日期检查 可选(EMV) , 失效日期检查 强制(EMV) 持卡人验证 可选(EMV)需要(VIS) , 单独的CVMs 可选(EMV)需要(VIS) 终端风险管理 可选(EMV)强制(PBOC借记/贷记) , 终端异常文件检查 n/a(卡片没有处理) , 商户强制联机 n/a(卡片没有处理) , 最低限额检查 n/a(卡片没有处理) , 交易日志 n/a(卡片没有处理) , 随机选择 n/a(卡片没有处理) , 频度检查 可选(EMV)不推荐但是不排除(PBOC借记/贷记) 9 , 新卡检查 可选(PBOC借记/贷记) 终端行为分析 IACs可选(EMV)IACs需要(PBOC借记/贷记) 卡片行为分析 强制(EMV) , 联机/脱机决定 强制(EMV) , 脱机参考 可选(EMV)不支持(PBOC借记/贷记) , 卡片风险管理可选(EMV)强制(PBOC借记/贷记)在有些卡片风险管理步骤是可选的(参 见卡片规范第11章,卡片行为分析) , 通知报文 可选(EMV) , 应用密文 提供算法选择(EMV) 提供多算法选择(PBOC借记/贷记) 联机处理 , 联机能力 强制(EMV) , 发卡行认证 可选(EMV) 交易结束 强制(EMV) 发卡行到卡片脚本处理 可选(EMV) , 安全报文 如果支持脚本一些形式是强制的(EMV) 推荐的形式(PBOC借记/贷记) 6.2.2 命令支持需求 卡片支持的命令在下表中描述。 表格 6-2:命令支持需求 命令 卡片支持 应用锁定 应用锁定能力可选,如果支持,推荐使用应用锁定命令(PBOC借记/贷记) APPLICATION BLOCK 应用解锁 应用解锁能力可选,如果支持,推荐使用应用解锁命令(PBOC借记/贷记) APPLICATION UNBLOCK 卡片锁定 卡片锁定是推荐功能,卡片锁定命令是一种方法(PBOC借记/贷记) CARD BLOCK 外部认证 有条件的——如果支持发卡行认证(EMV) 10 EXTERNAL AUTHENTICATE 生成应用密文 强制(EMV) GENERATE APPLICATION CRYPTOGRAM 取数据 可选(EMV) GET DATA 强制(PBOC借记/贷记) 取处理选项 强制(EMV) GET PROCESSING OPTIONS 内部认证 有条件的——如果支持DDA(EMV) INTERNAL AUTHENTICATE PIN修改/解锁 解锁PIN——可选,如果支持脱机。可以使用的方法是PIN修改/解锁(PBOC借记/贷记) PIN CHANGE / UNBLOCK PIN修改——可选,必须在发卡行控制的环境下(PBOC借记/贷记) 设置数据 可选(PBOC借记/贷记) PUT DATA 读纪录 强制(EMV) READ RECORD 选择 强制(EMV) SELECT 修改纪录 可选(PBOC借记/贷记) UPDATE RECORD 校验 有条件的——如果支持脱机PIN(EMV) VERIFY 7.应用选择 应用选择处理决定了选择哪一个卡片和终端都支持的应用来完成交易。这一处理分为两个步骤: 1. 终端建立终端和卡片都支持的应用列表 2. 从列表中确定一个应用来处理交易。 7.1 卡片数据 应用选择使用的卡片数据元和简单描述在下表中列出。附录A 卡片和发卡行数据元表中有这些数据 元以及他们的使用的详细描述。 11 表格 7-1:应用选择——卡片数据 数据元 描述 应用标识符(AID) AID由注册的应用提供者标识(RID)和专用应用标识符扩展(PIX)组成 。它标识了在ISO/IEC 7816-5中描述的应用。 如果一张卡片中有超过一个应用使用相同的AID,卡片AID必须要有一个后 缀。如果只有一个应用有这个AID,则卡片AID不应该有后缀除非在卡片个 人化以后另一个有同样AID的应用可能加到卡片中。 应用定义文件(ADF) 应用基本文件(AEF)的入口文件,应用基本文件(AEF)包含应用数据元 FCI模板 -DF名字 -FCI专有模板 应用标签 应用优先指示器(有条件。如果卡片包括多个支付账户,在磁条中有映射 的账户优先级必须为1) PDOL(可选。) 语言优先级(可选) 发卡行代码表索引(可选。如果应用首选名称存在) 应用首选名称(可选) FCI发卡行自定义数据(可选),如果卡片支持日志,则日志入口(9F4D )数据元在发卡行自定义数据中 应用基本文件(AEFs) 应用基本文件,包括应用处理过程中使用的数据元 应用标签 用于应用选择。ADF的FCI中和ADF目录入口的强制数据 应用首选名称 如果应用首选名称存在而且终端支持发卡行代码表索引入口,在应用选择 的最后,是应用首选名称而不是应用标签显示给持卡人。 应用首选名称应该和应用标签一样,不过也可以把它留给客户进行定制处 理。 应用优先指示器 表明一个目录中指定应用的优先级以及是否必须要持卡人确认才能选择 目录定义文件(DDF) 定义其下目录结构的文件,DDF的FCI: FCI模板 -DF名称 -FCI专有模板 目录文件的短文件标识符SFI FCI发卡行自定义数据(可选) 12 目录文件 一个文件,列出了目录下的DDFs和ADFs。在选择后,使用READ RECORD命 令对它进行访问 文件控制信息(FCI) SELECT命令的响应信息,选择不同类型的文件,响应信息不同 发卡行编码表索引 根据ISO8859,指明在终端显示应用首选名称时使用的编码表 支付系统环境(PSE) PSE从名为“1PAY.SYS.DDF01”的DDF开始。此DDF的相关目录文件叫支付 系统目录 支付系统目录 支付系统目录包括ADF和DDF的入口,入口格式由EMV定义。 处理选项数据对象列表(PDOL在应用初始化步骤,卡片需要的终端数据对象表,内容包括数据对象的标) 签和长度 短文件标识符(SFI) 短文件标识符是基本文件的指针 1-10 EMV保留 11-20 支付系统专用 21-30 发卡行专用 7.2 终端数据 应用选择使用的终端数据在下表中描述。终端数据的详细描述可参考终端规范。 表格 7-2:应用选择——终端数据 数据元 描述 AID AID由注册的应用提供者标识(RID)和专用应用标识符扩展(PIX)组 成。它标识了在ISO/IEC 7816-5中描述的应用。参见表格 7-1:应用选 择——卡片数据中的描述。 应用选择指示器 表明终端是否支持部分AID选择 终端支持的应用列表 终端维护的一个表包括支持的应用和它们各自的AID 7.3 命令 选择(SELECT) 选择命令在附录B中有详细描述。 终端发送SELECT命令给卡片获取卡片支持的应用信息。应用信息包括发卡行参数,例如:选择应用的优先级别,应用名称,语言优先级。命令中既可以包括支付系统环境目录名称(用于目录选择方式),一个目录名,或者一个被请求的AID(用于AID列表选择方式)。 命令的P1参数表明应用是按照名称方式选择的。P2参数表明在支持AID后缀的情况下是否有另外使用同样AID的应用被请求(当卡片支持多应用使用同样AID的时候) 命令可以有下列SW1 SW2返回状态码: , 9000——SELECT命令成功返回 , 6A82——卡片不支持目录选择方式(命令中包括支付系统环境名称)和文件未找到 13 , 6A82——选择的文件没有找到或已经是相同AID的最后一个文件而P2参数指定还有下一个相 同AID的应用可选(命令包含AID) , 6A81——卡片锁定或命令不支持 , 6283——应用锁定 如果卡片包括一个PDOL,PDOL作为FCI的一部分包括在SELECT命令的响应信息中。在应用初 始化处理中终端将PDOL中指定的数据送入卡片。 读记录(READ RECORD) READ RECORD命令在附录B中有详细描述。 当使用目录选择方式时,READ RECORD命令用来读取支付系统环境目录中的记录。只有在一个 ADF或DDF选择以后使用。命令包括要读取文件的短文件标识符(SFI)和文件中的记录号。 卡片在响应信息中返回请求的记录内容。SW1 SW2可以有下列返回值: , 9000——成功执行 , 6A83——记录号不存在 7.4 建立候选应用列表 终端使用两种方法建立卡片和终端都支持的应用列表。 , 目录选择方式对于终端是强制要求,对于卡片是可选的。终端应优先选择此方式。终端从卡片 中读取支付系统环境文件。此文件列出卡片支持的所有支付应用。终端将卡片列表和终端列表 中都有的应用加入候选列表中 , AID列表选择方式是卡片和终端都强制要求的。终端为每一个终端支持的应用发送一个 SELECT命令给卡片。如果卡片响应指出卡片支持此应用,终端加此应用到候选列表。 7.4.1 目录选择方式 从卡片角度来看,目录选择方式处理包括下列步骤: 1. 卡片接收一个来自终端的SELECT命令,请求选择PSE(文件名“1PAY.SYS.DDF01”)。 , 如果卡片锁定或者SELECT命令不支持,卡片响应SW1 SW2=“6A81”。 , 如果卡片中没有PSE,卡片响应SELECT命令指出文件不存在(SW1 SW2=“6A82”) , 如果PSE锁定,卡片响应“6283” , 如果PSE找到,卡片响应“9000”返回PSE的FCI。 2. 如果PSE找到,卡片接受终端发出的表明短文件标识和记录号的READ RECORD命令,卡片 对每一个READ RECORD命令响应请求的记录内容和返回状态码SW1 SW2=“9000”。当请求 的记录不存在,卡片返回SW1 SW2=“6A83”。 3. 终端处理记录中的每一个入口。如果入口表明一个DDF,终端发一个有此DDF名字的SELECT 命令,卡片响应DDF的FCI。FCI包括一个目录文件的SFI。 终端读取属于此DDF的目录文件中的所有记录,卡片对每个READ RECORD命令返回请求的 记录和状态码“9000”。当请求的记录不存在,卡片响应“6A83”,终端返回步骤2继续读PSE 下的目录文件。 终端执行的步骤显示在下图所示: 14 1. 从支付系统目录读记录1。 2. 检查ADF入口1或2中的AID是否和终端AIDs匹配。如果匹配,加入候选列表。 3. 从支付系统目录读记录2。 4. 选择记录2中入口1指出的DDF目录 5. 读DDF目录文件中的记录1。 6. 检查记录1中ADF入口1或2中的AID是否和终端AID匹配。如果匹配,加入候选列表。 7. 当卡片响应目录中没有其它记录时,返回前一个目录的处理入口和记录。 8. 检查支付系统目录文件中记录2内入口2是否和终端AID匹配。如果匹配,加入候选列表。 9. 当卡片响应支付系统目录中没有其它记录,建立候选列表结束。 图表 7-1:卡片目录结构例子 PSE 支付系统目录 记录2记录1 ADF入口1ADF入口2DDF入口1ADF入口2 DDF DDF目录 记录1 ADF入口1ADF入口2 15 7.4.2 AID列表选择方式 从卡片的角度来看,AIDs列表选择方式包括下列步骤: 1. 卡片收到终端发来SELECT命令,命令包括终端支持的应用列表中的AID。卡片检查是否卡 片中有匹配的AID应用(卡片AID长度可以长于终端AID,但仍然认为匹配)。 AID匹配的例子在下表中显示。 表格 7-3:AID匹配例子 终端AID 终端应用 卡片AID 卡片应用 PBOC PBOC 借记 PBOC PBOC贷记 , 如果AID匹配,卡片响应SELECT命令指明卡片支持此应用(SW1 SW2=“9000”)。 , 如果卡片找不到匹配的AID,卡片响应状态码SW1 SW2=“6A82”指明应用没找到。 , 如果卡片锁定或不支持SELECT命令,卡片响应状态码SW1 SW2=“6A81”指明交易应 被中止。 2. 如果匹配的卡片AID长度比终端AID长,卡片在SELECT命令响应信息中返回完整的AID给 终端。 , 卡片接收终端发来的第二个SELECT命令,参数P2设置为“02”表明卡片要选择有同样 AID的下一个应用。 , 卡片选择下一个应用并在SELECT命令响应中提供这一应用给终端。 , 当卡片不再有应用有此AID,卡片响应“6A82”表明所有匹配的应用都已经选择。 7.5 确定和选择应用 如果候选列表中至少有一个双方都支持的应用,终端和持卡人决定选择哪个应用。终端发一个SELECT命令给卡片指出此应用确认用来处理交易。如果卡片决定此应用可以处理交易,响应“9000”。如果应用锁定,卡片响应“6283”。 16 7.6 流程图 卡片选择指令终端 文件名称PSE交易支持目录卡片锁 选择,定, 终端中止是SW1/2=6A81否交易 SW1/PSE在卡否2=6A82片中,否 是SW1/ 是2=6283PSE锁定,终端进行AID列表 方式 根据FCI中的响应9000和否目录文件SFIBPSE的FCI读目录文件 请求的记读记录指令录找到, SW1/目录文件中所有是A否2=6A83记录都处理了, C 否 是处理记录还有入SW1/记录号加1否中入口口,2=9000 是 请求DDF的下一入口终端支持FCI获得返回DDF的是ADF或ADFDDF选择DDF此应用,DDF目录文FCIDDF?件 是B否SW1/2=9000加入候选 A列表 终端决定使用 的应用C 请求选择应用响应ADF的FCI选择应用,使用应用AID的FCI和SW1/2=9000 图表 7-2:使用目录方式进行应用选择 17 卡片终端终端处理自己的 AID列表 列表中多个选择终端列表中AIDAID,卡片锁定,否 否A是 P2=02选择下SW1/终端中止一个,2=6A81交易否 卡片AID和加入到候SW1/终端的匹是应用锁定否选列表2=9000配, 是 SW1/ 2=6A83是 否SW1/ 2=6A82 下一个匹配应用锁SW1/是是的应用,定,2=6A83 否 加入到候响应AID, 选列表SW1/2=9000 SW1/否2=6A82最终选择A 终端决定使用 的应用 相应ADF的请求应用的FCI,SW1/2用AID选择ADFFCI=9000 图表 7-3:使用AID列表选择方式进行应用选择 7.7 后续相关流程 应用初始化 18 终端发送取处理选项(GET PROCESSING OPTIONS)命令给卡片,如果在应用选择时SELECT命令的响应信息中包括PDOL,GPO命令中包括PDOL中指定的终端数据,例如交易日志记录里需要的终端数据。 如果某些限制不允许选择的应用做初始化,终端中止应用并返回应用选择步骤选择另一个应用。 8.应用初始化 在应用初始化处理中,终端通过发送GET PROCESSING OPTIONS命令给卡片通知卡片交易处理开始。在命令中,终端提供给卡片在处理选项数据对象列表(PDOL)中请求的数据元。PDOL(一个数据元标签和长度的列表)是在应用选择处理中由卡片返回给终端的可选数据项。 卡片对GPO命令的响应信息包括:AIP和AFL。AIP列出了交易在处理过程中执行的功能;AFL列出交易需要读出的数据存放的短文件标识符、记录号、记录个数以及脱机数据认证需要的静态签名数据的存放位置。 8.1 卡片数据 应用初始化处理使用的卡片数据在下表中列出。 表格 8-1:应用初始化——卡片数据 数据元 描述 应用文件定位器(AFL) 说明终端作交易处理要读出的卡片数据存放的文件位置和记 录范围。对每个要读出的文件,AFL包括下列信息: , 字节1——短文件标识符(一个文件的数字标签) , 字节2——第一个要读出的记录号 , 字节3——最后一个要读出的记录号 , 字节4——存放用于脱机数据认证的数据的连续记录个 数,字节2指出的是第一条要读的记录号 应用交互特征(AIP) 一个列表,说明此应用中卡片支持指定功能的能力(SDA,标 准DDA,CDA,终端风险管理,持卡人验证和发卡行认证)。 AIP在个人化时必须被写入卡中用来指明支持终端风险管理和 持卡人验证 应用交易计数器(ATC) 应用个人化后,卡片应用交易计数器启动 卡片验证结果(CVR) PBOC专用数据,表明从卡片角度来看本次和前次交易的脱机处 理结果。数据存放在卡片中,作为发卡行应用数据的一部分联 机上送。 密文信息数据(CID) 指明卡片返回的密文类型和终端需要进行的后续处理行为。在 应用初始化处理时被初始为全0 处理选项数据对象列表(PDOL在应用初始化步骤,卡片在处理GPO命令时需要由终端提供的 ) 数据元的标识和长度列表 19 8.2 终端数据 在应用初始化处理中使用的终端数据在下表中列出。 表格 8-2:应用初始化——终端数据 数据元 描述 PDOL中定义的其它数据 PDOL中指定的来自终端的其它数据,例如交易日志记录里需要的终端数据 注:阴影部分的数据是VIS定义的PDOL处理需要的数据 8.3 命令 取处理选项(GET PROCESSING OPTIONS) 终端使用GET PROCESSING OPTIONS命令通知卡片交易开始。 命令中包含卡片在PDOL中列出的终端数据元的值部分,PDOL是卡片在应用选择阶段返回的可选数据。 卡片响应数据内容为AIP和AFL。AIP列出了交易在处理过程中执行的功能;AFL列出交易需要的数据存放的短文件标识符、记录号、记录个数以及脱机数据认证需要的静态签名数据的存放位置。 命令编码见附录B。 8.4 处理流程 卡片收到终端发送的GET PROCESSING OPTIONS命令后,卡片: 1. 如果卡片支持自定义限制检查并且处理选项命令中包括PDOL中指定的终端数据,卡片执行 自定义的限制检查。如果限制检查不通过,卡片响应“使用条件不满足”(SW1 SW2=”6985” )提示终端将当前应用从候选列表中删除并返回应用选择步骤选择另一个应用。 2. 决定要读取的文件记录,文件位置,建立AFL。针对交易的不同情况可以返回不同AFL和AIP 。 3. 如果自定义限制检查通过,卡片 a) ATC加1 b) 密文信息数据(CID)置零 c) 卡片验证结果(CVR)置零(长度指示位除外) d) 卡片返回AIP和AFL 下图显示了应用初始化处理流程图。 20 卡片 终端卡片收到取处理 选项(GPO)指令。 包括PDOL中指定 的终端数据 是 否 是否 终端将交易从取处理选项指候选列表中删否令响应否除,返回应用“6985”选择步骤 是 ATC加1 设置CID字节2- 4为00 取处理选型指令响终端执行读应卡片返回AFL应AFL何AIP用数据步骤 图表 8-1:应用初始化流程图 21 8.5 前期相关处理 应用选择 在SELECT命令响应的FCI中卡片提供PDOL(如果存在)给终端 8.6 后续相关处理 应用选择 如果地域限制或其它限制生效,交易返回应用选择阶段,此应用从候选列表中删除,选择另一个应用。 读应用数据 在GET PROCESSING OPTIONS命令的响应数据中,卡片返回AFL给终端,终端使用AFL决定要从卡片中读取的应用数据和那些数据用于脱机数据认证。 脱机数据认证 终端使用卡片在GET PROCESSING OPTIONS命令的响应信息中的AIP决定卡片支持的脱机数据认证的类型。 持卡人验证 终端使用卡片在GET PROCESSING OPTIONS命令的响应信息中的AIP决定卡片是否支持持卡人验证。 联机操作 终端使用卡片在GET PROCESSING OPTIONS命令的响应信息中的AIP决定卡片是否支持发卡行认证。 9.读应用数据 在读应用数据处理中,终端读出卡片中处理交易和执行SDA或DDA的必须数据。 9.1 卡片数据 下表列出在读应用数据处理中使用,在前一步应用初始化处理中卡片返回的数据。 表格 9-1:读应用数据——卡片数据 数据元 描述 应用文件定位器(AFL) 在应用初始化处理中,卡片返回给终端的数据,包含了一组要求读取的记 录入口,每一个入口包含: , 文件的短文件标识符(SFI) , 第一个和最后一个要读取记录的记录号 , 用于保存SDA和DDA数据的记录个数。从文件中第一个开始读取的记 录号开始计算。 22 下表中列出读取卡片中应用基本文件记录的数据。 表格 9-2:读应用数据——卡片文件 数据元 描述 应用基本文件(AEF) 卡片数据文件,包括应用处理使用的数据。一个AEF包括一系列用记录号 标识的记录。每个AEF用SFI唯一标识。终端使用READ RECORD命令读取记 录内容,命令中包括SFI和记录号。 短文件标识符(SFI) 用来唯一标识应用数据文件。在AFL中列出,终端可以用来标识要读的文 件 9.2 终端数据 卡片在此步骤中不使用终端数据。 9.3 命令 读纪录(READ RECORD) READ RECORD命令编码见附录B 卡片收到的命令中包括短文件标识符(SFI)和记录号。 卡片响应数据文件中的记录内容。 9.4 处理流程 卡片收到终端发送的READ RECORD命令,返回终端请求的记录内容给终端。AFL中指定的每一条记录都是用一个READ RECORD命令读出。 终端连续发READ RECORD命令,直到AFL中指定的所有记录都读出。 用于脱机数据认证的记录数据是标识为‘70’的TLV编码格式 使用READ RECORD命令读出的数据参见附录A.2。 9.5 前期相关处理 应用初始化 在应用初始化处理中,卡片返回AFL给终端指出终端要读出的数据记录。 9.6 后续相关处理 脱机数据认证 终端使用在读应用数据处理中建立的一个静态数据列表做SDA验证或DDA中使用的IC卡公钥验证。 10.脱机数据认证 脱机数据认证是终端使用公钥技术认证卡片中的数据的操作。脱机数据认证有两种类型: , 静态数据认证(SDA) 23 , 动态数据认证(DDA) SDA是终端认证卡片中静态(不变)数据。SDA可以确保卡片在个人化之后,发卡行选定的数据不会被篡改。 DDA包括标准DDA和复合DDA/应用密文生成(CDA)两种认证方式。在DDA的处理过程中,终端认证卡片中静态数据和卡片用交易唯一数据生成的密文。DDA可以确保卡片在个人化之后,发卡行选定的数据不会被篡改;DDA还可以防止伪卡(复制)。 脱机数据认证的结果是卡片和终端决定交易脱机、联机或拒绝的参考条件之一。联机授权系统在作出认证响应决定时同样可能要参考脱机数据认证结果。 具有脱机能力的终端必须支持脱机数据认证,卡片是否支持是可选的。 10.1 密钥和证书 在安全规范“6.1密钥和证书”中描述。 10.2 决定脱机数据认证方法 终端使用卡片的应用交互特征(AIP)以及根据终端本身支持的脱机数据认证来决定是执行SDA,DDA还是CDA。 10.2.1 卡片数据 终端用来决定是否执行SDA或DDA的卡片数据在下表中列出。 表格 10-1:脱机数据认证——卡片数据 数据元 描述 应用交互特征(AIP) 包括指明: , 卡片支持静态数据认证SDA , 卡片支持动态数据认证DDA , 卡片支持复合数据认证CDA 10.2.2 处理流程 一次交易中只进行一种脱机数据认证。CDA优先级高于DDA,DDA的优先级高于SDA。如果卡片和终端一种脱机数据认证都不支持,脱机数据认证不执行。 如果终端测定卡片和终端都支持CDA,执行CDA;否则,如果都支持DDA,执行DDA;否则,如果都支持SDA,则执行SDA。 用于脱机数据认证的记录数据是标识为‘70’的TLV编码格式,对于文件的SFI分别在‘1-10’和‘11-30’的这两类文件,在脱机数据认证处理过程中的数据处理不同,详细的参见本规范第二册安全部分的定义。 如果用于脱机数据认证的记录数据不是标识为‘70’的TLV编码格式,终端会认为脱机数据认证执行但是失败。终端将设置TSI中“脱机数据认证执行”位为1,同时设置TVR中相应的“SDA失败”或“DDA失败”或“CDA失败”位为1。 24 10.3 静态数据认证(SDA) 在SDA处理中,终端使用公钥技术验证卡片中的关键数据自发卡后没有被改动。 10.3.1 卡片数据 终端在SDA处理中使用的卡片数据在下表中列出。 表格 10-2:SDA中使用的卡片数据 数据元 描述 CA公钥索引(PKI) 和发卡行公钥证书一起由CA提供。定义了终端里用于认证发 卡行公钥证书的CA公钥 发卡行公钥证书 证书中包括了使用CA私钥签名的发卡行公钥 发卡行公钥指数 用于RSA算法中恢复发卡行公钥证书。值为3或65537 发卡行公钥余项 发卡行公钥没有包含在发卡行公钥证书中的部分(如果有) AID中的注册应用标识部分(RID和CA公钥索引一起用来标识终端中的公钥 ) 签名的静态应用数据(SAD) 一个用来验证卡片静态数据的签名。在卡片个人化阶段,使 用发卡行私钥签名的SAD保存在卡片中。推荐下列数据用来 生成签名: 应用交互特征AIP(如果支持DDA) 应用生效日期 应用失效日期 应用主账号 应用主账号序列号 应用用途控制AUC 持卡人验证方法(CVM)列表 发卡行行为代码——缺省 发卡行行为代码——拒绝 发卡行行为代码——联机 发卡行国家代码(“5F28”) 如果应用中签名的数据不是唯一,卡片必须支持多个SAD。 举例来说,卡片给国内和国际交易分别设置CVM列表,而CVM 列表是签名数据。 如果发行后的卡片有修改签名数据的能力,则卡片必须支持 修改SAD的能力。 25 SDA标签列表 如果AIP也要签名,SDA标识列表包括AIP的标签,如果支持 DDA则建议将AIP做签名。除了AIP不能有其它数据标签。 下表中是和SDA相关的卡片内部数据。 表格 10-3:和SDA相关的卡片数据 数据元 描述 卡片验证结果(CVR) 包括一个给后续交易参考的指示位,指示位在卡片行为分析 时设置表明上次脱机拒绝交易的SDA失败 SDA失败指示位 如果SDA失败并且交易脱机拒绝,在卡片行为分析过程中设 置此位。根据发卡行认证的条件,在下一次联机交易的交易 结束步骤中,此指示位复位。 10.3.2 终端数据 在SDA过程中,卡片不需要终端数据。 10.3.3 命令 SDA操作没有使用命令。 10.3.4 处理流程 在SDA处理中,终端使用公钥验证技术恢复和验证发卡行公钥,并且验证卡片中的SAD。详细描 述见安全规范6.2静态数据认证(SDA).。概括的描述如下: 1. 检索CA公钥 终端使用卡片中的PKI和RID确定使用哪一个CA公钥 2. 恢复发卡行公钥 终端使用CA公钥验证卡片中的发卡行证书并恢复证书中的发卡行公钥 3. 验证签名的静态应用数据 a) 恢复哈希结果 b) 计算哈希 c) 比较哈希结果 如果所有的SDA步骤都成功,SDA通过。 10.4 动态数据认证(DDA) 在DDA处理中,终端使用公钥技术验证卡片中关键数据自发卡后没有被改动,同时验证卡片是否 是伪卡。 PBOC支持两种DDA形式:标准DDA和CDA。在这两种方式里,终端验证卡片中的静态数据没 有修改,同时验证一个卡片生成的动态密文。在标准DDA中,卡片在执行卡片行为分析之前,响应内 26 部认证命令时使用卡片、终端和交易的动态数据生成动态签名。在CDA中,卡片在响应生成应用密文 命令时生成动态签名,签名中包括应用密文、密文信息数据、以及和标准DDA一样的终端、卡片和交 易的动态数据。 10.4.1 卡片数据 除了SAD,SDA使用的所有数据DDA中都使用,下表中列出的数据仅用于DDA。 表格 10-4:脱机数据认证——DDA卡片数据 数据元 描述 动态数据认证数据对象列表指定在INTERNAL AUTHENTICATE命令中,卡片要求终端送入卡片(DDOL) 的终端数据标签和长度列表。至少DDOL中要有终端不可预知数据 的标签(“9F37”) IC卡动态数据 发卡行指定的包括在签名的动态应用数据中。PBOC里规定:1字 节为IC卡动态数长度;2,3字节为ATC IC卡动态数 IC卡动态数据的一部分,卡片生成的随时间变化的数。PBOC建议 为ATC IC卡公钥证书 包含发卡行私钥签名的IC卡公钥,在卡片个人化时放入卡中。证 书中有使用发卡行私钥作签名加密的静态应用数据。 IC卡公钥指数 用来恢复签名的动态应用数据,值为3或65537 IC卡公钥余项 没有包含在IC卡公钥证书内的IC卡公钥部分(如果存在) 签名的动态应用数据 卡片收到INTERNAL AUTHENTICATION命令生成的签名。 在DDA处理中,卡片内部使用的数据元在下表中列出。 表格 10-5:脱机数据认证——DDA处理中卡片内部数据元 数据元 描述 卡片验证结果(CVR) 包括和DDA相关的下列指示位: 上次交易脱机动态数据认证失败并且交易脱机拒绝 脱机数据认证执行 IC卡私钥 用来给动态应用数据签名加密的密钥 DDA失败指示位 指示上次脱机拒绝交易的DDA认证失败。根据发卡行认证的条件, 在下一次联机交易的交易结束步骤中,此指示位复位 10.4.2 终端数据 下表列出DDA处理中卡片使用的来自终端的数据。 表格 10-6:脱机数据认证——终端数据 27 数据元 描述 DDOL中列出的不可预知数据在内部认证命令中的数据 和其它数据元 缺省DDOL 如果卡片中没有DDOL,使用终端中缺省DDOL 10.4.3 命令 10.4.3.1内部认证(INTERNAL AUTHENTICATE)命令 在标准DDA处理过程中,终端发送INTERNAL AUTHENTICATE命令。命令包括了DDOL或缺省DDOL中指明的终端动态数据。 为了确保INTERNAL AUTHENTICATE命令返回数据在256字节限制内,签名的动态应用数据加上可选的TLV格式编码的长度应该限制在本规范安全部分中定义的范围内。 当卡片收到INTERNAL AUTHENTICATE命令,使用IC卡私钥生成签名的动态应用数据。在内部认证命令的返回中包含此动态签名。 具体的命令编码格式在附录B。 10.4.3.2生成应用密文(GENERATE APPLICATION CRYPTORAM (AC))命令 终端在卡片行为分析处理步骤中发送第一次GENERATE AC命令,下面两种情况满足一种,交易执行CDA: , 卡片的CDOL数据中指定终端性能数据并且送回卡片的此数据表明支持CDA而且卡内的AIP 数据表明卡片也支持CDA , CDOL中没有终端性能数据而且生成应用密文命令中参数P1的第5位为“1”,表明执行CDA 。当卡片返回一个TC或ARQC时,TC或ARQC要包括在DDA密文中。具体的描述在安全 规范部分 编码格式见附录B。 10.4.4 处理流程 在DDA处理步骤中,终端使用公钥技术验证卡片中的发卡行公钥证书、IC卡公钥证书和签名的动态应用数据(动态签名)。 在DDA处理过程中,卡片的唯一操作是生成动态签名。 DDA处理的详细描述在安全规范6.3动态数据认证(DDA)。下面是一个概括性的描述。 10.4.4.1标准动态数据认证(DDA) 标准DDA的处理有以下步骤 1. 检索CA公钥 终端使用卡片中的PKI和RID确定使用哪一个CA公钥 2. 恢复发卡行公钥 28 终端使用CA公钥验证卡片中的发卡行证书并恢复证书中的发卡行公钥 3. 恢复IC卡公钥 终端使用发卡行公钥验证卡片中的IC卡公钥证书并恢复证书中的IC卡公钥和静态数据哈希结 果。IC卡公钥证书确保IC卡公钥的合法性。终端用卡片中的实际数据元重新计算哈希值检查 是否和恢复的哈希值匹配。 4. 生成动态签名(仅用于标准DDA) 终端发送内部认证命令请求一个动态签名。命令中包括了DDOL中指定的数据。 收到内部认证命令后,卡片: a) 设置CVR中脱机动态数据认证执行位为“1”。 b) 连接内部认证命令中的终端数据和在IC卡动态数据中指定的卡片数据。详细描述见安全 规范2.3.5标准动态数据认证。 c) 用上一步连接的数据做哈希。 d) 将哈希包括在签名的动态应用数据中。 e) 使用IC卡私钥给签名的动态应用数据做签名 f) 在内部认证命令的响应信息中返回签名的动态应用数据。 5. 动态签名验证(仅用于标准DDA) 终端执行下列步骤验证动态签名: a) 使用IC卡公钥解密动态签名恢复数据元哈希值。 b) 使用动态数据元重新计算哈希。 c) 比较两个哈希是否匹配。 如果所有上述步骤成功,标准DDA通过。 10.4.4.2复合动态数据认证/应用密文生成(CDA) CDA处理包括下列步骤: , 终端在读取应用数据后终端行为分析之前,执行标准DDA中步骤1到3。 , CDA剩下的卡片步骤是生成一个包括应用密文的动态签名。这一步在卡片收到生成应用密文命 令时执行。只有当交易符合CDA的执行条件,而且应用密文类型是TC或ARQC时发生。 , CDA剩下的终端步骤是验证卡片生成动态签名。这一步在联机处理过程中执行。如果验证失败, 交易拒绝。 10.5 前期相关处理 读应用数据 29 终端从卡片中读数据。如果卡片支持SDA,数据中包括发卡行公钥证书,其它和密钥相关的数据和签名的静态认证数据(SAD)。如果卡片支持DDA,那数据中也要有DDOL,IC卡公钥证书和其它和密钥相关数据。 10.6 后续相关处理 终端行为分析 终端使用SDA或DDA的结果和卡片与终端的参数决定交易是拒绝、上送联机或接受脱机交易。 卡片行为分析 如果交易符合CDA执行要求,卡片在响应终端之前,将ARQC或TC放到签名的动态应用数据中用IC卡私钥签名。 如果动态数据认证失败指示位是“1”,卡片设置CVR中上次交易动态数据认证失败,交易拒绝位为“1”。如果静态数据认证失败指示位是“1”,卡片设置CVR中一个类似的位。 如果当前交易拒绝而且终端送来的TVR中的动态数据认证失败指示位为“1”,卡片设置卡片中动态数据认证失败指示位为“1”。SDA也有类似处理。 联机操作 如果执行了CDA而且卡片返回的应用密文是ARQC或TC,终端在卡片响应生成应用密文命令后恢复并验证签名数据。 结束 当交易联机处理而且发卡行认证: , 执行并通过 , 支持但可选并且没有执行,或 , 不支持 卡片中静态数据认证失败和动态数据认证失败指示位设为“0”。 如果交易拒绝而且终端送入的TVR中“CDA失败”位为“1”,卡片设置动态数据认证失败指示器为“1”。 11.处理限制 终端使用终端和卡片数据执行处理限制功能。包括检查应用版本,生效和失效日期等。 11.1 卡片数据 在处理限制过程中使用的卡片数据在下表中列出。 表格 11-1:处理限制——卡片数据 数据元 描述 应用生效日期 应用可以有效使用的开始日期 应用失效日期 应用使用的截止日期 30 应用版本号 此数据元(卡片标签“9F08”)表明卡片中应用的版本。在终端 执行应用版本检查时使用 应用用途控制(AUC) 可选数据元。指明发卡行设置的卡片应用限制,包括国内、国际、 交易种类、使用的终端设备等 发卡行国家代码 EMV定义数据(5F28)指明卡片发行者的国家。在终端执行应用 用途控制检查时使用。 11.2 终端数据 在处理限制过程中使用的终端数据在下表中列出。 表格 11-2:处理限制——终端数据 数据元 描述 应用版本号 终端标签“9F09”表明终端中应用的版本号。 交易类型 此数据元表明应用类型。在终端执行应用用途控制检查时使用。 终端国家代码 此数据元表明终端所处国家。在终端执行应用用途控制检查时使 用。 交易日期 交易发生时的终端当地日期。在终端执行生效和失效日期检查时 使用 11.3 处理流程 在处理限制过程中卡片不执行任何操作。下面部分描述了终端在处理限制过程中如何使用卡片数据。 11.3.1 应用版本号检查 终端比较卡片和终端中的应用版本号看是否一样。 11.3.2 应用用途控制检查 在应用用途控制处理中,终端检查交易发生地的不同情况,决定交易是否继续进行。如果在读应用数据步骤中终端读取到应用用途控制(AUC)和发卡行国家代码数据,终端检查下列应用限制: 1. 国内和国际检查 国内 终端比较发卡行国家代码和终端国家代码。如果相同,认为是国内交易。如果是国内交易, AUC中对应的国内交易类型指示位必须为“1”表明请求的服务允许进行。 举例:如果是一个现金交易,AUC中“国内现金交易有效”指示位必须为“1”。 国际 如果国家代码不同,认为是国际交易。如果是国际交易,AUC中对应的国际交易类型指示位 必须为“1”表明请求的服务允许进行。 31 举例:如果是一个现金交易,AUC中“国际现金交易有效”指示位必须为“1”。 2. ATM检查 如果终端设备为ATM,AUC中ATMs有效位必须为“1”。如果终端设备不是ATM,AUC中 “除ATM外的终端有效”位必须为“1”。 如果上述任何终端执行的检查失败,终端在TVR中标明“卡片产品不允许请求的服务”。 下表是AUC的编码格式,如果指示位的值为“1”说明支持此用途。 表格 11-3:应用用途控制(AUC) 字节 b8 b7 b6 b5 b4 b3 b2 b1 用途 1 1 X x x x x x x 国内现金交易有效 1 x 1 x x x x x x 国际现金交易有效 1 x X 1 x x x x x 国内商品有效 1 x X x 1 x x x x 国际商品有效 1 x X x x 1 x x x 国内服务有效 1 x X x x x 1 x x 国际服务有效 1 x X x x x x 1 x ATM有效 1 x X x x x x x 1 除ATM外的终端有效 2 1 X x x x x x x 允许国内返现 2 x 1 x x x x x x 允许国际返现 11.3.3 应用生效日期检查 当卡片应用数据中包括应用生效日期时,终端执行应用生效日期检查。检查确保应用是有效的。如果应用生效日期大于交易日期,终端要在TVR中标明应用还未生效。 11.3.4 应用失效日期检查 应用失效日期检查是强制的。检查确保应用没有过期。如果应用失效日期小于交易日期,终端要在TVR中标明应用已经过期。 11.4 前期相关处理 读应用数据 终端使用READ RECORD命令取得卡片中记录数据。这些数据包括发卡行国家代码,应用版本号,应用失效日期和可选的AUC和应用生效日期。 11.5 后续相关处理 终端行为分析 32 在终端行为分析阶段,终端检查发卡行行为代码(IAC)和终端行为代码(TAC)决定交易结果。 12.持卡人验证 持卡人验证用于确保持卡人身份合法以及卡片没有丢失。 在持卡人验证处理中,终端决定要使用的持卡人验证方法(CVM)并执行选定的持卡人验证。CVM处理允许增加其它持卡人验证方法,例如生物识别等。如果使用脱机PIN方式,卡片要验证卡片内部的脱机PIN。脱机PIN验证结果包括在联机授权信息中,发卡行作授权决定的时候要考虑其验证结果。 终端使用卡片中的CVM列表规则选择持卡人验证方式。选择原则包括交易类型(现金或消费),交易金额,终端能力等。CVM列表还给终端指明如果持卡人验证失败要如何处理。 12.1 卡片数据 下表描述了CVM列表处理过程中终端使用的卡片数据。 表格 12-1:CVM列表处理——卡片数据 数据元 描述 应用货币码 用来决定交易是否使用卡片中的指定货币。如果CVM列表存在而且CVM列表中金额X和金额Y 不为零,卡片中应用货币代码数据要存在 应用交互特征(AIP) 标明卡片是否支持持卡人验证 33 持卡人验证方式列表(CVM 一个有优先顺序的持卡人验证方式列表。一张卡包括一个CVM列表,如果要实现不同的应 List) 用类型例如国内或国际使用不同的验证方式,卡片中要有多个CVM列表。一个CVM列表包括下列内容: , 金额X - , 金额Y , CVM入口——CVM列表可以包括多个入口,每个入口包括下列子集: 子集 描述 CVM代码 指出如果这个CVM失败,是执行下一CVM还是认为CVM失败 CVM类型 CVM的类型有: ,脱机明文PIN验证 ,联机加密PIN验证 ,脱机明文PIN验证加签名 ,签名 ,不需要CVM(认为CVM通过) ,CVM处理失败(认为CVM失败) ,出示证件 CVM条件 此CVM的使用条件,包括: ,总是执行 ,如果是现金或返现交易 ,如果不是现金或返现交易 ,如果终端支持此CVM ,如果交易金额小于金额X ,如果交易金额大于金额X ,如果交易金额小于金额Y ,如果交易金额大于金额Y 注意:后四个条件要求交易使用的是卡片指定货币(卡片应用货币) 34 下面是一个发卡行如何定义CVM的例子: 例子 CVM列表 一个发卡行以下列方式验证持卡人: , 所有ATM交易和返现交易使用联机PIN , 如果终端支持脱机PIN,所有POS交易使用脱机PIN , 如果终端不支持脱机PIN,POS交易使用签名 , 如果终端不支持脱机PIN或签名,不需要签名 CVM列表内容参考下表: 表格 12-2:CVM列表例子 入口 值/含义 注释 金额X 0 CVM列表中不检查金额 金额Y 0 CVM列表中不检查金额 CVM入口1 ATM交易使用此CVM入口 CVM条件 01-如果现金或返现 CVM类型 000010b-联机加密PIN验证 CVM代码 1b-如果失败持卡人验证失败 CVM入口2 POS交易使用此入口 如果终端支持脱机明文PIN核对,CVM条件 03-如果终端支持 执行此CVM CVM类型 000001b-脱机明文PIN验证- CVM代码 1b-如果失败持卡人验证失败 CVM入口3 如果终端不支持脱机明文PIN核 对,执行此入口。 CVM条件 03-如果终端支持 如果终端支持收集签名,执行此 CVM CVM类型 011110b-签名 CVM代码 0b-如果失败执行下一个CVM CVM入口4 如果终端不支持脱机明文PIN核对 和签名,执行此入口。 CVM条件 00-总是 CVM不可能失败 CVM类型 011111b-不需要CVM CVM代码 1b-如果失败持卡人验证失败 35 卡片使用的卡片数据在下表中描述。 表格 12-3:脱机PIN处理——卡片数据 PIN尝试限制数 发卡行指定的PIN连续错误的最大次数 PIN尝试次数计数器 指明PIN的剩余尝试次数。卡片使用GET DATA命令返回PIN尝试计 数器(可选)。在校验命令中返回给终端。 当PIN校验不成功,计数器减一,直到校验成功或发重置计数器 的脚本命令,计数器复位成最大尝试次数。当卡片支持脱机PIN 校验时,此计数器应存在卡片中。 这一数据不一定可读。当发卡行希望终端在持卡人最后一次输入 PIN前获得提示信息,此数据必须可以由GET DATA命令读出。否 则此数据不应由终端通过GET DATA命令读取。 脱机PIN 卡片脱机PIN被安全的保存在卡片中。 卡片认证结果(CVR) 包括下列内容的指示位: , 脱机PIN认证已执行 , 脱机PIN认证失败 , 超过PIN尝试次数 , 因为超过PIN尝试次数应用锁定 持卡人证件号 用于证件验证 持卡人证件类型 用于标识证件类型 12.2 终端数据 下表列出了终端使用的数据 表格 12-4:PIN处理——终端数据 数据元 描述 交易PIN 持卡人输入的PIN 12.3 命令 脱机PIN处理中使用下列命令: , 取数据(GET DATA)—终端用来从卡片中取得PIN尝试次数计数器的值,可选。 如果卡片不支持用GET DATA命令返回PIN尝试次数计数器,卡片返回“6A88”。 , 校验(VERIFY)——用于脱机明文PIN校验。 36 如果卡片支持脱机PIN处理就要支持VERIFY命令。 命令的响应状态码SW1 SW2可能有如下返回值: -“9000”校验成功 -“63Cx”PIN不匹配,“x”表明剩余的次数 -“6984”当在上次交易中尝试次数限制数已经超过,本次交易第一次处理VERIFY命令时返 回 -“6983”当在本次交易中尝试次数限制数超过,卡片再次收到VERIFY命令时返回 12.4 处理流程 下面描述了在处理CVM列表中不同CVM时的卡片规则。 12.4.1 CVM列表处理 除了在读应用数据处理过程中提供给终端CVM列表外,卡片不作操作。 12.4.2 脱机明文PIN处理 当一个PIN传送给卡片后,卡片的处理: 1. 检查PIN尝试次数计数器 在终端决定要输入一个脱机PIN以后,终端可以发送一个GET DATA命令获取PIN尝试次数 计数器值。 a) 如果卡片支持使用取数据命令返回PIN尝试次数计数器,卡片: , 如果PIN尝试次数计数器为“0”,设置CVR中“PIN尝试限制数超过”位为“1”。 , 在GET DATA命令的响应信息中返回PIN尝试次数计数器。如果为“0”,终端不再 允许持卡人输入PIN。 b) 如果卡片不支持使用GET DATA命令返回PIN尝试次数计数器,卡片要返回“6A88”。 37 卡片终端卡片支持返回 否GET DATA命令PIN尝试计数 器, 取数据命令 是响应错误 PIN尝试计数 器=0, 是 设置CVR中 PIN尝试限制否 数超过位 卡片将PIN尝 试计数器放 到响应信息 中 卡片返回响GET DATA响应应 图表 12-1:检查PIN尝试计数器 2. 接收校验(VERIFY)命令 持卡人输入交易PIN以后,终端发送一个包含此被输入的交易PIN的VERIFY命令。当卡片 收到VERIFY命令,卡片要设置CVR中“脱机PIN验证执行”位为“1”。 3. PIN验证 卡片执行下列PIN验证步骤: a) PIN尝试限制数已经超过,卡片: , 设置CVR中“PIN尝试限制数超过”位为“1” , 设置CVR中“脱机PIN验证失败”位为“1” , 如果PIN尝试限制数是在上次交易中超过的,返回SW1 SW2=“6984” , 如果PIN尝试限制数是在本次交易中超过的,返回SW1 SW2=“6983” b) PIN匹配 如果PIN尝试功能没有锁定,卡片进行PIN验证。如果匹配,卡片: , 将PIN尝试次数计数器设置为最大值(PIN尝试限制数) , 设置CVR中“脱机PIN验证失败”位为“0” 38 , VERIFY命令响应“9000” c) PIN不匹配 如果交易PIN和卡片内脱机PIN不匹配,卡片: , PIN尝试计数器减1 , 设置CVR中“脱机PIN验证失败”位为“1” 卡片判断PIN尝试限制数是否超过 , 没有PIN尝试机会 如果PIN尝试计数器为“0”,卡片: -设置CVR中“PIN尝试限制数超过”位为“1” -如果有应用缺省行为(ADA)数据,而且ADA中“PIN尝试限制数在本次交易中超 过,应用锁定”位为“1”,设置CVR中“因为PIN尝试次数超过卡片锁应用”位为 “1”并且锁应用。卡片将允许当前交易执行到结束步骤。这里描述的应用锁定不会 使应用或卡片永久无效。 -VERIFY命令响应“63C0” , 还有尝试机会 如果PIN尝试计数器不为零,卡片响应VERIFY命令“63Cx”,x表示剩余的尝试次 数。 39 卡片终端 PIN尝试限制VERIFY命令否数超过, 是交易PIN和参考PIN尝试计否PIN匹配,数器减1设置CVR中“脱机PIN 验证失败”位 是设置CVR中“脱 PIN尝试计数器机PIN验证失败设置CVR中“PIN尝试 复位成最大值”位限制超过”位 置CVR中 “脱机PINPIN尝试限制数超交易中第一个 验证失败”过,校验指令,是否位为0 是SW1SW1 SW2=6984SW2=6983设置CVR中“PIN尝 试限制数超过”位否SW1 SW2 = 9000 ADA中“如果PIN尝 试限制数超过,锁 应用”位为1,SW1 SW2=63Cx是 设置CVR中“因为 PIN尝试限制数超设置CVR中“脱机PIN 否过,锁应用”位验证执行”位 锁应用返回校验指令 响应码 SW1 SW2=63C0 图表 12-2:脱机明文PIN处理 4. 下一步处理 如果PIN核对失败而且PIN还有尝试次数,终端会提示持卡人再次输入交易PIN,并发送另一个 VERIFY命令。 如果在PIN尝试次数减为零之前PIN校验成功,卡片: -PIN尝试次数计数器重置为最大值(PIN尝试限制数) -设置CVR中“脱机PIN校验失败”位为“0” 持卡人可以连续输入错误的PIN,直到尝试计数器为零。此时,终端不再给卡片发送VERIFY命令 。 40 12.4.3 其它CVM处理 联机PIN或签名的持卡人验证处理过程中,卡片不执行操作。 12.5 前期相关处理 应用初始化 在GET PROCESSING OPTIONS命令响应中返回的应用交互特征(AIP)中指明卡片是否支持持卡人验证。 读应用数据 终端读出持卡认证件号、持卡认证件类型、CVM列表和其它处理CVM列表需要的卡片数据。 12.6 后续相关处理 终端行为分析 终端使用持卡人验证结果以及卡片和终端的参数决定交易是否拒绝、联机上送或接受交易。 卡片行为分析 卡片使用ADA中的参数决定当PIN尝试限制数超过是否生成通知。 卡片使用ADA参数决定当PIN尝试限制数在以前的交易中超过,交易是否拒绝或联机上送。 联机操作 CVM结果包括脱机PIN的校验结果,此数据包括在授权请求中,发卡行在作出授权决定的时候要考虑脱机PIN的验证结果。 如果CVM是联机PIN,联机请求中有加密的联机PIN。如果CVM是脱机PIN,联机授权请求中不包括此PIN值。 结束 如果终端尝试为一笔PIN尝试限制数超过的交易进行联机授权,而且尝试失败,卡片使用ADA参数决定交易是否拒绝或接受。 发卡行脚本操作 PIN修改/解锁命令用来重置PIN尝试计数器为最大值(PIN尝试限制数),也用来修改卡片中的脱机PIN值。 应用解锁命令可以用来解锁CVM处理过程中锁掉的应用。 13.终端风险管理 终端风险管理为大额交易提供了发卡行授权,确保芯片交易可以周期性的进行联机处理,防止过度欠款和在脱机环境中不易察觉的攻击。 发卡行需要支持终端风险管理。无论卡片是否支持,终端都需要支持终端风险管理。 13.1 卡片数据 终端在终端风险管理处理中使用的卡片数据在下表中列出: 表格 13-1:终端风险管理——卡片数据 41 数据元 描述 应用主账号(PAN) 此应用中的持卡人账号 应用交易序号计数器(ATC) 当卡片中建立应用时被初始化,由应用维护 上次联机应用交易序号(ATC上次联机授权成功时的ATC值。 )寄存器 如果卡片强制要求发卡行认证,在结束处理阶段,当发卡行认证 执行并通过,设置寄存器的值。 用于终端风险管理和新卡检查 连续脱机交易下限“9F14” 发卡行指定的,有联机能力的终端允许交易连续脱机的最大次数 。终端频度检查中和终端新卡检查时使用。 连续脱机交易上限“9F23” 发卡行指定的,终端允许交易连续脱机的限制数,如果联机授权 没有执行,交易拒绝。终端频度检查中和终端新卡检查时使用。 13.2 终端数据 终端风险管理中使用的终端数据在下表中列出。 表格 13-2:终端风险管理——终端数据 数据元 描述 授权金额 数字数据对象(标签“9F02”)存放当前交易的金额。用于最低 限额检查 用于偏置随机选择的最大目用于随机选择交易联机的数据 标百分数 用于随机选择的目标百分数 用于随机选择交易联机的数据 终端最低限额 标明应用的终端最低限额。用于最低限额检查和交易随机选择联 机处理 终端验证结果(TVR) 一组指示位,用来记录所有终端风险管理的处理结果 偏置随机选择的阈值 用于随机选择交易联机的数据 交易日志 终端上存储的被接受的交易的交易日志,用来防止使用分次消费 的方法企图躲过最低限额检查。这个日志至少包含了应用的主帐 号和交易金额,并可选包含应用主帐号顺序号和交易日期。而交 易数量的储存和日志的维护由具体应用定义。如果该日志存在, 则终端最低限额检查将可能使用到这个日志 交易状态信息(TSI) 概述了交易过程中终端执行的功能。在联机授权和清算报文中, 这个数据元不被提供,但是终端用这个数据元标明终端风险管理 已被执行 13.3 命令 取数据(GET DATA)命令 42 如果终端中上次联机应用交易序号值和应用交易序号值不存在,终端发送GET DATA命令从卡片中读取上次联机应用交易序号(ATC)寄存器和应用交易序号计数器(ATC)。这些数据在终端频度检查和新卡检查时使用。 如果卡片支持终端频度检查或新卡检查,卡片要返回这些数据给终端。 如果卡片不支持终端频度检查或新卡检查,这些数据要存储为PBOC专用数据元并不能返回给终端。此时卡片响应SW1 SW2=“6A88”。 GET DATA命令,见附录B 13.4 处理流程 在终端频度检查和新卡检查中,除了响应取数据命令,卡片不做操作。 下面描述了终端在终端风险管理处理过程中如何使用卡片数据: 13.4.1 终端异常文件检查 如果有终端异常文件,终端要检查卡片中的应用主账号(PAN)是否在其中。 13.4.2 商户强制交易联机 在有联机能力的终端上,商户可以指示终端进行联机交易。在此步骤中不需要卡片数据。 13.4.3 最低限额检查 进行最低限额检查,当交易金额超过终端最低限额,交易联机上送。此步骤中不需要卡片数据。 13.4.4 随机交易选择 有脱机和联机能力的终端要执行随机选择交易联机处理。此步骤不需要卡片数据。 13.4.5 频度检查 在连续脱机次数达到一个特定的次数后,频度检查允许发卡行请求交易联机处理。发卡行可以选择不支持终端频度检查,则在个人化时,连续脱机交易的上限和下限(标签“9F14”和标签“9F23”)数据不写入卡中。 在频度检查处理中,终端发送GET DATA命令读取卡片中的上次联机ATC寄存器和ATC值。 卡片返回数据。 连续脱机交易的次数是ATC和上次联机ATC寄存器的差值。 注意:卡片在卡片行为分析处理时可以执行类似的处理。 13.4.6 新卡检查 如果终端执行新卡检查,终端检查上次联机ATC寄存器值是否为零(如果存在)。 终端发GET DATA命令给卡片读出上次联机ATC寄存器值。 注意:卡片在卡片行为分析处理时可以执行类似的处理。 13.5 前期相关处理 读应用数据 43 下列数据从卡片中读出: , 应用主账号,用于终端异常文件检查 , 连续脱机交易上限/下限,用于终端频度检查(可选) 13.6 后续相关处理 终端行为分析 根据卡片和终端的设置,如果出现下列情况,终端作出处理决定。 , 卡片在终端异常文件中 , 商户强制交易联机 , 超过最低限额 , 交易被随机选择联机 , 频度检查中金额或计数器超过限制数 , 卡片是新卡 14.终端行为分析 在终端行为分析过程中,终端对脱机处理结果使用发卡行在卡片中设置的规则和支付系统在终端中设置的规则来决定交易是接受、拒绝还是上送联机授权。终端行为分析包括下面两个步骤: 1. 检查脱机处理结果——终端通过检查脱机处理结果,决定交易是联机上送、接受脱机或拒绝。 这个处理过程中要考虑发卡行在卡片中定义的发卡行行为代码(IACs)以及终端中定义的终 端行为代码(TACs)。 2. 请求密文——终端请求卡片生成密文 终端行为分析过程中做出的交易联机或接受并不是一个最终的结果。卡片进行卡片行为分析处理时,卡片可能会推翻终端的决定。但是卡片不能推翻终端做出的交易拒绝的决定。 14.1 卡片数据 在终端行为分析处理过程中,终端使用的卡片数据在下表中列出。 表格 14-1:终端行为分析——卡片数据 数据元 描述 44 卡片行为代码(IACs) IACs是三个数据元,每个数据元都和终端验证结果(TVR)中的 每一位对应。这三个卡片行为代码是: IAC-拒绝 和对应的TVR中的条件如果满足,则交易拒绝 IAC-联机 和对应的TVR中的条件如果满足,则交易联机 IAC-缺省 当交易申请联机但无法执行时,对应的TVR中的条件如果满足, 则交易拒绝 IACs数据建议作为静态脱机数据认证用数据。 下表列出的数据是终端在之前的步骤中得到,在请求密文时使用的。 表格 14-2:请求密文处理——卡片数据 数据元 描述 卡片风险管理数据对象列表列出卡片在生成应用密文时需要终端提供的数据的标签和长度 CDOL1 交易证书数据对象列表TDOL 列出生成交易证书(TC)哈希计算的数据对象(标签和长度) 14.2 终端数据 在终端行为分析处理过程中,终端使用的终端数据在下表中列出。 表格 14-3:检查脱机处理结果——终端数据 数据元 描述 终端行为代码(TACs) TAC有3个数据元,它们都是由一系列的位组成的,这些位对应于 TVR中的数据位。分别为: , TAC-拒绝 收单行设置能够导致脱机拒绝的TVR条件位。 , TAC-联机 收单行设置能够导致交易联机的TVR条件位。 , TAC-缺省 收单行设置在交易联机无法进行的情况下能够导致脱机拒绝的 TVR条件位。 终端在请求应用密文时使用的终端数据元在下表中列出。 表格 14-4:请求密文处理——终端数据 45 数据元 描述 终端数据元 在CDOL1或TDOL中指定的终端数据,在生成应用密文命令中使用 。 交易证书(TC)哈希结果 可选。作为输入数据使用GENERATE AC命令送入卡片 14.3 命令 生成应用密文(GENERATE APPLICATION CRYPTOGRAM(AC)) 终端使用GENERATE AC命令请求卡片生成一个应用密文。 命令中的P1参数标明了密文类型以及是否执行CDA。命令的数据部分包括卡片在CDOL1中要求的终端数据元。CDOL1是终端在读应用记录处理过程中从卡片中读出的。当CDOL1中包含终端能力数据标签并且从终端返回终端能力数据值和卡片中的AIP表明两者都支持CDA,则执行CDA。 卡片处理GENERATE AC命令并响应。 具体的命令编码见附录B。 14.4 处理流程 14.4.1 检查脱机处理结果 终端行为分析中检查脱机处理结果步骤是完全由终端执行的,终端使用卡片中的IAC和终端中的TAC。 卡片在此步骤中没有操作。 14.4.2 请求密文处理 在请求密文处理过程中,终端发送一个GENERATE AC命令给卡片请求卡片生成一个应用密文。命令中包含CDOL1中指定的终端数据元。 当卡片收到命令后,卡片进行卡片行为分析处理。(下一章:卡片行为分析) 14.5 前期相关处理 读应用数据 在读应用数据处理中,卡片返回应用数据记录给终端,这些数据包括IAC,CDOL1等。 14.6 后续相关处理 卡片行为分析 在卡片行为分析阶段,卡片执行风险管理确定是否同意终端作出的交易拒绝、交易接受或联机上送的决定。 15.卡片行为分析 卡片行为分析允许发卡行设置在卡片内部执行频度检查和其它风险管理。本部分描述PBOC自定义的卡片风险管理,包括的检查有: 46 , 上次交易行为 , 卡片是否新卡 , 脱机交易计数和累计脱机金额 卡片行为分析结束后,卡片返回一个应用密文给终端。AAC表示交易拒绝,ARQC表示请求联机 授权,TC表示脱机交易接受。如果卡片和终端都支持CDA,卡片返回的ARQC或TC要作为签名的动 态应用数据的一部分。 15.1 卡片数据 下表列出了在卡片行为分析处理过程中使用的卡片数据。 表格 15-1:卡片行为分析——卡片数据 数据元 描述 应用密文 生成应用密文命令的响应信息。 , AAC表示交易拒绝 , TC表示接受交易 , ARQC表示请求联机授权 应用货币代码 指明和应用有关的国内货币,是卡片指定货币 应用缺省行为(ADA) 发卡行定义的指示器,指定在一些特殊条件下的卡片行为。如果 卡片中没有则缺省认为为零。 应用交互特征(AIP) 包括表明卡片支持CDA和发卡行认证能力的指示器 卡片风险管理数据对象列表列出在第一个生成应用密文命令中,卡片要求终端传送的数据对1(CDOL1) 象(标签和长度)。下列在CDOL1中的数据用于卡片风险管理检 查: , 交易货币代码——连续国际脱机交易次数频度检查(基于 货币),本地货币累计脱机交易金额频度检查,本地货币 加第二货币累计脱机交易金额频度检查 , 终端国家代码——连续国际脱机交易次数频度检查(基于 国家) , 授权金额——本地货币累计脱机交易金额频度检查,本地 货币加第二货币累计脱机交易金额频度检查 , 终端验证结果(TVR)——包括SDA和DDA是否失败的指示位 CDOL1中包含的数据不能重复。 卡片认证结果(CVR) PBOC专有数据。表明当前和上次交易的脱机处理结果。此数据作 为发卡行应用数据的一部分联机上送。 密文信息数据(CID) 在GENERATE AC命令中返回给终端,CID指出了卡片返回的密文的 类型。CID还包括了是否要生成通知的标识位,以及生成通知的 原因的代码 47 连续脱机交易计数器(国际-PBOC专有数据。每次使用非卡片指定货币的脱机交易,计数器加货币) 1 连续脱机交易限制次数(国PBOC专有数据。使用卡片非指定货币的脱机交易的限制次数,超际-货币) 过则请求联机处理 连续脱机交易计数器(国际-PBOC专有数据。每次发卡行国家代码和终端国家代码不同的脱机国家) 交易,计数器加1 连续脱机交易限制次数(国PBOC专有数据。发卡行国家代码和终端国家代码不同的脱机交易际-国家) 的限制次数,超过请求联机处理 累计脱机交易金额 PBOC专有数据。记录自从上次联机处理以来,使用卡片指定货币 的脱机交易总金额。 累计脱机交易金额限制 PBOC专有数据。累计脱机交易金额的限制数。如果超过请求联机 处理。 累计脱机交易金额(双货币PBOC专有数据。记录自从上次联机处理以来,使用卡片指定货币) 和第二货币的脱机交易总金额 累计脱机交易金额限额(双PBOC专有数据。累计脱机交易金额(双货币)的限制数。如果超货币) 过请求联机处理。 货币转换因子 用来将第二应用货币转换成应用指定货币的汇率值。此数据元有 四个字节,第一个高半字节表示小数点的位置,后面7个半字节 表示汇率值 DDA失败指示位 当上次交易DDA失败而且交易拒绝时设置的卡片内部应用指示位 。 发卡行认证失败指示位 当上次联机交易出现下面两种情况之一时设置的卡片内部应用 指示位: , 发卡行认证执行并失败 , 发卡行认证强制但没执行 发卡行认证指示位 指明卡片支持的发卡行认证是强制还是可选的指示位 发卡行国家代码(“9F57”PBOC专有数据。表明发卡行的国家 ) 发卡行脚本命令计数器 记录上次联机交易中,有安全报文的发卡行脚本命令的个数 发卡行脚本失败指示位 在上次联机交易中,发卡行脚本处理失败时设置 连续脱机交易下限(“9F58PBOC专有数据。在申请联机授权之前,卡片允许的最大连续脱机”) 交易限制数。 卡片请求脱机拒绝指示位 当卡片风险管理检查决定交易拒绝时设置的卡片内部应用指示 位 联机授权指示位 当申请联机的交易无法联机或联机授权被中止时设置的内部应 用指示位。 48 卡片请求联机指示位 当卡片风险管理检查决定交易要联机上送时设置的卡片内部应 用指示位。 PIN尝试次数计数器 记录PIN剩余的尝试次数 第二应用货币代码 用于双货币频度检查。可以使用货币转换因子转换为本地货币 (卡片指定货币) SDA失败指示位 当上次交易SDA失败而且交易拒绝时设置的卡片内部应用指示位 交易明细文件短文件标识符 当卡片作出接受交易的决定后,卡片内部自动记录交易明细,交 易明细文件的短文件标识符标识此文件。 15.2 终端数据 下表列出在卡片风险管理处理中是使用的终端数据。 表格 15-2:卡片行为分析——终端数据 数据元 描述 授权金额 交易的金额 交易货币代码 表明交易的货币类型,在CDOL1中 终端国家代码 表明终端的国家,在CDOL1中 终端认证结果(TVR) 终端记录脱机处理结果的一系列指示器。 15.3 命令 生成应用密文(GENERATE AC)命令 终端使用生成应用密文命令请求卡片提供一个应用密文。 命令中的P1参数表明了密文类型以及是否执行CDA。命令的数据部分包括CDOL1中指定的终端数据。 命令的响应信息包括应用密文和密文信息数据。如果卡片执行CDA,而且密文类型为ARQC或TC,密文要作为签名的动态应用数据使用IC卡私钥签名。具体描述在安全规范脱机数据认证部分中。 15.4 处理流程 15.4.1 卡片收到密文请求 卡片收到终端发来的GENERATE AC命令。命令的数据部分包括CDOL1中卡片指定的终端数据。 表格 15-1列出了CDOL1中支持卡片风险管理需要的数据。 15.4.2 卡片风险管理 下表了所有卡片风险管理检查,并标明这些检查是否强制或可选,同时描述了检查的结果。 49 如果发卡行选择执行任意一个可选的卡片风险管理检查,发卡行需要确保执行检查的数据在卡片个人化时被写入卡中,同时确保在CDOL1中列出了需要的终端数据的标签和长度。 如果指定的终端数据无效(即在GENERATE AC命令中,数据部分用零占位)卡片将跳过去处理下一个卡片风险管理检查。如果卡片中没有应用缺省行为(ADA),卡片认为该值缺省全零。 表格 15-3:卡片风险管理检查 风险管理检查 执行条件 结果(如果条件满足) 联机授权没有完成(上次交易有条件——如果支持发卡行脚本请求联机处理,设置CVR指示位 ) 命令或发卡行认证则执行 上次交易发卡行认证失败(或上次有条件——如果支持发卡行认证设置CVR指示位 交易发卡行认证强制但是没有执则执行 行) 检查ADA如果指明则请求联机处理 上次交易SDA失败 有条件——如果支持SDA则执行 设置CVR指示位 上次交易DDA失败 有条件——如果支持DDA则执行 设置CVR指示位 上次联机交易发卡行脚本处理 有条件——如果支持二次发卡在CVR中保存脚本命令的个数 (post-issuance)则执行 如果脚本处理失败(使用卡片内的 发卡行脚本失败指示位),设置CVR 指示位。ADA中的设置决定交易是 否联机处理 连续脱机交易下限频度检查 可选 如果限制数超过,请求联机处理 设置CVR中指示位 连续国际脱机交易(基于货币)频可选 如果限制数超过,请求联机处理 度检查 设置CVR中指示位 连续国际脱机交易(基于国家)频可选 如果限制数超过,请求联机处理 度检查 设置CVR中指示位 使用指定货币的累计脱机交易金可选 如果限制数超过,请求联机处理 额频度检查 设置CVR中指示位 累计脱机交易金额(双货币)频度可选 如果限制数超过,请求联机处理 检查 设置CVR中指示位 如果使用的货币是第二货币,需要 先进行货币转换 50 新卡检查 可选 如果以前没有请求过联机本次可 以申请联机 设置CVR中指示位 脱机PIN验证没有执行(PIN尝试限可选 设置CVR中如果本次交易脱机PIN制数超过) 验证没有执行而且PIN尝试限制数 在之前已经超过指示位 ADA中设置这种情况下交易拒绝或 请求联机 15.4.3 卡片风险管理流程 卡片执行每一个卡片风险管理检查确定预设的情况是否发生,看是否有情况满足,然后执行下一个。如果有检查不被支持,卡片继续执行下一个检查。 15.4.3.1联机授权没有完成检查 如果支持发卡行认证或发卡行脚本命令,需要执行此检查。检查在上次交易中,在卡片请求一个联机授权之后,在终端接收到联机响应进行处理之前或无法联机的终端处理之前,卡片是否离开了终端设备。卡片中的联机授权指示位在上次交易请求联机授权的时候置“1”。 如果指示位设置了,卡片将请求联机处理,直到交易联机并且下面中的一个条件满足: , 发卡行认证成功 , 发卡行认证可选并且没执行 , 不支持发卡行认证 注意:这些指示位在结束阶段根据发卡行认证的状态和卡片参数被重新设置 如果联机授权指示位设为“1”,卡片: , 设置卡片请求联机指示位置“1”。 , 设置CVR中“上次联机交易没完成”位为“1”。 15.4.3.2上次交易发卡行认证失败(或强制未执行)检查 如果卡片AIP中表明支持发卡行认证,则必须执行此检查。如果上次交易发卡行认证(1)失败或(2)强制(发卡行认证指示位表示)但是没有执行,卡片请求联机处理。 如果发卡行认证失败指示位设为“1”,卡片: , 设置CVR中“上次联机交易发卡行认证失败”位为“1”。 , 如果应用缺省行为(ADA)中“发卡行认证失败,下次交易联机上送”位为“1”,设置卡片 请求联机指示位置“1”。 15.4.3.3上次交易静态数据认证(SDA)失败检查 如果支持SDA,此检查强制执行。检查上次脱机拒绝的交易中SDA是否失败。 51 如果SDA失败指示位为“1”,卡片设置CVR中“上次交易SDA失败而且交易拒绝”位为“1”。 15.4.3.4上次交易动态数据认证(DDA)失败检查 如果支持DDA,此检查强制执行。检查上次脱机拒绝的交易中DDA是否失败。 如果DDA失败指示位为“1”,卡片设置CVR中“上次交易DDA失败而且交易拒绝”位为“1”。 15.4.3.5上次联机交易发卡行脚本处理检查 如果支持发卡行脚本处理,此检查强制执行。使用上次联机交易处理的发卡行脚本命令计数器和脚本处理失败指示位数据元。 卡片设置CVR中第4字节的第8-5位为发卡行脚本命令计数器的值。 如果发卡行脚本失败指示位为“1”,卡片设置CVR中“上次交易发卡行脚本处理失败”位为“1”。 如果发卡行脚本失败指示位为“1”,如果ADA中“如果上次交易发卡行脚本失败,交易联机上送”位是“1”,设置卡片请求联机指示位为“1”。 15.4.3.6连续脱机交易下限频度检查 此检查可选。如果连续脱机交易次数超过此下限,卡片请求联机授权。 如果上次联机ATC寄存器和PBOC专有数据:连续脱机交易下限(标签“9F58”)存在,卡片可以执行此检查。 如果ATC和上次联机ATC寄存器的差值大于连续脱机交易下限,卡片: , 设置CVR中“频度检查超过”位为“1”。 , 设置卡片请求联机指示位为“1”。在卡片风险管理结束时,卡片返回联机请求 15.4.3.7连续国际脱机交易(基于货币)限制数频度检查 此检查可选。如果连续脱机交易计数器(国际-货币)超过连续脱机交易限制数(国际-货币),卡片请求联机授权。此检查定义的国际脱机交易是终端发送的交易货币代码和卡片中的应用货币代码不同的交易。 如果数据应用货币代码、连续脱机交易计数器(国际-货币)、连续脱机交易限制次数(国际-货币)存在,卡片执行此检查。 卡片比较交易货币代码和应用货币代码,如果不等,而且连续脱机交易计数器(国际-货币)加1的值大于连续脱机交易限制次数(国际-货币),卡片: , 设置CVR中“频度检查超过”位为“1”。 , 设置卡片请求联机指示位为“1”。 52 15.4.3.8连续国际脱机交易(基于国家)限制数频度检查 此检查可选。如果连续脱机交易计数器(国际-国家)超过连续脱机交易限制数(国际-国家),卡片请求联机授权。此检查定义的国际脱机交易是终端送进的终端国家代码和卡片中的发卡行国家代码不同的交易。 如果数据发卡行国家代码、连续脱机交易计数器(国际-国家)、连续脱机交易限制次数(国际-国家)存在,卡片执行此检查。 如果下面两个条件都满足: , 终端国家代码和发卡行国家代码不同 , 连续脱机交易计数器(国际-国家)加1的值大于连续脱机交易限制次数(国际-国家) 卡片: , 设置CVR中“频度检查超过”位为“1”。 , 设置卡片请求联机指示位为“1”。 15.4.3.9使用指定货币的脱机交易累计金额频度检查 此检查可选。如果使用应用指定货币的累计脱机交易金额超过累计脱机交易金额限制,卡片请求联机授权。 如果数据应用货币代码、累计脱机交易金额、累计脱机交易金额限制存在,卡片执行此检查。 如果下面两个条件都满足: , 交易货币代码等于应用货币代码 , 累计脱机交易金额加本次授权金额大于累计脱机交易金额限制 卡片: , 设置CVR中“频度检查超过”位为“1”。 , 设置卡片请求联机指示位为“1”。 15.4.3.10交易累计金额(双货币)频度检查 此检查可选。如果使用应用指定货币和第二应用货币并接受脱机的累计脱机交易金额超过累计脱机交易金额限制(双货币),卡片请求联机授权。 如果数据应用货币代码、第二应用货币代码、货币转换因子、累计脱机交易金额(双货币)、累计脱机交易金额限制(双货币)存在,卡片执行此检查。 , 如果交易货币代码等于应用货币代码,累计脱机交易金额(双货币)加本次授权金额和累计脱 机交易金额限制(双货币)进行比较 , 如果交易货币代码等于第二应用货币代码,使用货币转换因子将授权金额转换为近似的应用货 币代码金额。累计脱机交易金额(双货币)加这个近似的授权金额和累计脱机交易金额限制(双 货币)进行比较 , 如果比较的结果是大于了限制数,卡片: -设置CVR中“频度检查超过”位为“1”。 53 -设置卡片请求联机指示位为“1”。 15.4.3.11新卡检查 此检查可选。如果卡片是新卡,交易请求联机。新卡是指从来没有联机接受过的卡片。 如果数据上次联机ATC寄存器、应用缺省行为存在,卡片执行此检查。 如果上次联机ATC寄存器值为零,卡片: , 设置CVR中“新卡”位为“1”。 , 如果ADA中“如果新卡,交易联机”位为“1”,设置卡片请求联机指示位为“1”。 注意:如果卡片要求发卡行认证强制执行,除非发卡行认证成功,否则上次联机ATC寄存器值一直为零。 15.4.3.12脱机PIN验证没有执行(PIN尝试限制数超过)检查 当卡片支持脱机PIN验证,此检查可选。如果PIN尝试限制数在上次交易中就已超过,交易请求联机。 如果执行此检查,卡片中要有应用缺省行为(ADA)数据 如果下列所有条件成立: , 卡片支持脱机PIN验证 , 卡片没有收到过校验命令 , PIN尝试次数计数器已经为零 卡片要执行下列操作: , 设置CVR中“PIN尝试限制数超过”位为“1” , 如果ADA中“如果上次交易PIN尝试限制数超过,交易拒绝”位为“1”,设置卡片请求拒绝 指示位为“1”。 , 如果ADA中“如果上次交易PIN尝试限制数超过,交易联机”位为“1”,设置卡片请求联机 指示位为“1”。 , 如果ADA中“如果上次交易PIN尝试限制数超过,交易拒绝并锁应用”位为“1”,拒绝交易 并锁应用。 15.5 卡片提供响应密文 根据卡片风险管理的结果,卡片响应GENERATE AC命令。卡片的响应可能会修改终端在GENERATE AC命令中参数P1指定的密文类型。修改要遵循下列原则: , 卡片可以把终端做出的接受交易决定改为交易联机上送或交易拒绝 , 卡片可以把终端做出的交易联机决定改为交易拒绝 54 下表列出了修改原则。 表格 15-4:卡片响应第一个生成应用密文命令 卡片响应 AAC ARQC TC AAC 拒绝 - - 终端请求 ARQC 拒绝 联机上送 - TC 拒绝 联机上送 接受 卡片中的卡片请求脱机拒绝指示位为“1”表明卡片决定交易拒绝。卡片中的卡片请求联机指示位为“1”表明卡片决定交易联机上送。 卡片设置CVR中第一个生成应用密文响应TC,AAC或ARQC指示位,卡片还设置CVR中“还没有请求第二个生成应用密文”指示位。 卡片使用终端提供的数据和卡片内部数据生成一个基于对称密钥算法的密文,需要的具体数据和算法在附录D中描述。 15.5.1 卡片脱机拒绝交易 当交易被脱机拒绝,卡片用AAC响应GENERATE AC命令,在响应之前,卡片: 1. 检查应用缺省行为(ADA): -在ADA中“如果交易脱机拒绝,生成通知”位为“1”,设置CID中需要通知位为“1” -如果PIN尝试限制数超过,而且ADA中标明需要通知: , 设置CID中“需要通知”位为“1” , 如果CID中的原因代码不是“服务不允许”,设置为“PIN尝试限制数超过” 注意:在CID中,“服务不被允许”原因代码比其它原因代码优先 2. 检查在GENERATE AC命令中提供的数据TVR -如果SDA失败位为“1”,设置卡片中SDA失败指示位为“1” -如果DDA失败位为“1”或者CDA失败位为“1”,设置卡片中DDA失败指示位为“1” 3. 计数器加1: -如果终端国家代码和发卡行国家代码不同,连续脱机交易计数器(国际-国家)加1 -如果交易货币代码和应用货币代码不同,连续脱机交易计数器(国际-货币)加1 15.5.2 卡片请求联机操作 当交易联机上送做授权,卡片用ARQC响应GENERATE AC命令。在响应之前,卡片设置卡片内联机授权指示位为“1”。 55 注意:此时下面的计数器不增加:连续脱机交易计数器(国际-货币),连续脱机交易计数器(国际 -国家),累计脱机交易金额,累计脱机交易金额(双货币) 15.5.3 卡片脱机接受交易 当脱机接受交易,卡片使用TC响应生成应用密文命令。在响应之前,卡片内相关计数器加1: , 如果终端国家代码不等于发卡行国家代码,连续脱机交易计数器(国际-国家)加1 , 如果交易货币代码等于应用货币代码: -累计脱机交易金额累加授权金额 -累计脱机交易金额(双货币)累加授权金额 , 如果交易货币代码不等于应用货币代码,连续脱机交易计数器(国际-货币)加1 , 如果交易货币代码等于第二应用货币代码,使用货币转换因子将授权金额转换为指定应用货币 的近似授权金额后累加到累计脱机交易金额(双货币)。 , 卡片记录交易明细,明细的内容在交易初始化阶段,通过GET PROCESSING OPTIONS命令 传送到卡片中。关于卡片交易明细的内容在19章中有详细描述。 15.5.4 复合动态数据认证/生成应用密文响应 下面列出的情况有一项发生,卡片执行CDA: , 卡片的CDOL1中包括终端能力数据标签,而且终端回送的终端能力数据和卡片中的应用交互 特征(AIP)中都标明支持CDA。 , 卡片的CDOL1中不包括终端能力数据标签,终端发送的生成应用密文命令中的P1参数中CDA 位为“1”。 卡片: 1. 按照上面的描述执行卡片风险管理,生成应用密文 2. 如果卡片响应AAC,没有特殊处理 3. 如果卡片响应ARQC或TC,卡片响应的应用密文作为签名动态应用数据用IC卡私钥签名, 步骤如下: a) 设置CVR中“DDA执行”位为“1”。此步骤在步骤1生成应用密文之前执行。 b) 使用应用密文生成一个动态签名密文,详见安全规范6.3.6.。归纳为下面4个步骤: ,在安全规范中6.3.6中描述的方法组织数据 ,用上述数据做一个哈希计算 ,将哈希包括到签名的动态应用数据中 ,使用IC卡私钥对签名的动态应用数据作签名 c) 在GENERATE AC指令响应中包括签名的动态应用数据。 56 15.6 流程图 ABGENERATE AC命令 P1表明请求密卡片支持脚本文类型卡片支持SDA?处理, 是是CVR中字节4的高半联机授权指示位 字节为为发卡行脚=1,否本指令计数器值SDA失败指示位=1, 是是设置CVR中“上次否设置CVR中“上次联交易SDA失败,交发卡行脚本失机交易没完成”位易拒绝”位=1否败指示位=1,否 否 是设置卡片请求联机指 设置CVR中“上次示位=1卡片支持DDA?联机交易发卡行脚 本处理失败”位=1是 支持发卡行认证,DDA失败指示位否=1,C 是是发卡行认证失败否设置CVR中“上次否指示位=1,交易DDA失败,交 易拒绝”位=1是否设置CVR中“上次联机 交易发卡行认证失败” 位=1B ADA指出上次联机交易 发卡行认证失败,交否易联机上送, 是 设置卡片请求A联机指示位=1图表 15-1:卡片行为分析处理流程图(1) 57 CDE 卡片执行国际-国卡片检查连续卡片执行国际-货家频度检查,脱机交易,币频度检查, 是是是 ATC-上次联机 终端国家代码=ATC寄存器〉连交易货币=应用否是发卡行国家带是续脱机交易下货币,吗,限, 否是否设置CVR中“频否连续脱机交易计数度检查超过”连续脱机交易计数器器(国际-货币)位=1(国际-国家)+1〉+1〉连续脱机交易否否连续脱机交易限制数限制数(国际-货(国际-国家),币), 否卡片请求联机否 指示位=1是是 设置CVR中“频设置CVR中“频度检查超过”度检查超过”位=1位=1 D 卡片请求联机卡片请求联机 指示位=1指示位=1 FE 图表 15-2:卡片行为分析处理流程图(2) 58 FG 卡片执行指定货卡片执行交易金额否币交易金额检(双货币)检查, 查, 是是 交易货币=应用交易货币=第二否交易货币=应货币,应用货币,否用货币, 是是是 使用货币转换因子累计交易金额+转换为指定货币的累计交易金额(双货 授权金额〉累计授权金额币)+授权金额〉累计否交易金额限制交易金额限制数(双 数,货币), 否累计交易金额(双是货币)+授权金额〉是是设置CVR中“频否累计交易金额限检查超过”为数(双货币),设置CVR中“频=1度检查超过”为 =1 设置卡片请求联否 机指示位=1 设置卡片请求联 机指示位=1 否G H 图表 15-3:卡片行为分析处理流程图(3) 59 IH 卡片执行新卡检卡片执行脱机PIN验查,证没执行检查?是是 否支持脱机PIN?否 是上次联机ATC寄 存器=0,是是卡片收到过校验命 令, 否设置CVR中“新 卡”位=1否PIN尝试计数器 =0, 是否 否ADA标明“如设置CVR中“PIN尝果新卡,交易试限制数超过”位联机”, 设置卡片请求脱是是机拒绝指示位ADA标明“如果上次交 易PIN尝试限制数超 过,交易拒绝”?否设置卡片请求联 机指示位=1设置卡片请求ADA标明“如果上次交是联机指示位易PIN尝试限制数超I过,交易联机”? J 图表 15-4:卡片行为分析处理流程图(4) 60 J 请求TC终端请求AAC或卡片请终端请求ARQC或卡片否否求脱机拒绝指示位=1请求联机指示位=1 请求AAC请求ARQC是是 设置CVR中“第1个生成应用密设置CVR中“第1个生成应用密文设置CVR中“第1个生成应用密文 文指令返回TC”“第2个生成应指令返回AAC”“第2个生成应用指令返回ARQC”“第2个生成应用密文指令没请求”密文指令没请求”用密文指令没请求” 生成应用密文生成应用密文生成应用密文 设置CID中密文类设置CID中密文类设置CID中密文类型为ARQC型为TC型为AAC 设置联机授权指示联机授权指示位复ADA标明“如果脱机拒位=1位绝,生成通知”? 是 终端请求CDA?终端请求CDA?设置CID中“需要 通知”否 是是 用IC卡私钥对应用用IC卡私钥对应用密文和CID生成动本次交易PIN尝试限否否密文和CID生成动态签名制数超过,态签名 是 响应第1个生成应 用密文指令LADA标明“本次交易PIN尝 否试限制数超过,交易拒 绝,生成通知”, GENERATE AC响应否 是 设置CID中“需要通知”位 =1,原因码为“PIN尝试限 制数超过” 图表 15-5:卡片行为分析处理流程图(5) K 61 KL脱机拒绝脱机接受 交易货币代码=应用货交易货币代码=第设置SDA失败指否TVR中SDA失败,是币代码,二应用货币代码,示位 是是 用货币转换因子计累计交易金额累加否算授权金额近似值授权金额 否设置DDA失败指累计交易金额(双累计交易金额(双TVR中DDA失败,是示位货币)累加授权金货币)累加近似授额权金额 否 交易货币代码=应用货币代码, 否 连续脱机交易计数器(国际-货币)加是1 终端国家代码=发卡行国家代码, 否 连续脱机交易计数器(国际-国家)是加1 返回第1个生成应用密文指令响应 GENERATE AC响应 图表 15-6:卡片行为分析处理流程图(6) 15.7 前期相关处理 读应用数据 终端从卡片中读取CDOL1数据,和交易明细文件短文件标识符(SFI)。 卡片行为分析 终端发送第一个GENERATE AC命令给卡片请求密文。命令包括CDOL1中指定的终端数据,这些 数据用来生成应用密文和进行卡片风险管理。 62 15.8 后续相关处理 联机处理 终端根据生成应用密文命令返回的密文类型决定是否执行联机授权。 结束 如果请求交易联机授权但是终端没有联机能力,卡片执行另外的风险管理。 根据发卡行认证的状态和发卡行认证的卡片设置,卡片中的一些计数器和指示位会被复位。 16.联机处理 联机处理允许发卡行使用发卡行主机系统中的风险管理参数对交易进行检查,作出批准或拒绝交易的决定。除了执行传统的联机检查以外,主机授权系统可以使用由卡片生成的动态密文执行联机卡片认证,并且在作出授权决定时可以考虑交易脱机处理的结果。 发卡行的响应可以包括给卡片的二次发卡更新和一个发卡行生成的密文。卡片验证密文确保响应来自一个有效的发卡行。此验证叫发卡行认证。 这一章描述卡片联机处理功能。 16.1 卡片数据 下表列出了在联机处理过程中终端使用的卡片数据。 表格 16-1:生成应用密文响应——卡片数据 数据元 描述 密文信息数据 包括表示密文类型的指示位。 应用交易计数器(ATC) 卡片建立应用时初始化的交易计数器 应用密文 卡片返回联机密文ARQC 发卡行应用数据 发卡行应用数据是PBOC强制数据,用来把PBOC定义的数据传送给 终端,然后被放到联机请求报文或清算报文中。此数据中包括的 数据元有: , 长度指针 , 分散密钥索引 , 密文版本信息 , 卡片验证结果(CVR) , 发卡行自定义数据(可选) 下表列出了在收到联机请求后,终端使用的卡片数据 表格 16-2:决定发卡行认证——卡片数据 63 数据元 描述 应用交互特征(AIP) AIP数据在应用初始化步骤由卡片送给终端。如果卡片支持发卡 行认证,AIP中“发卡行认证”位为“1” 表12-3列出了在发卡行认证处理中卡片用到的数据 表格 16-3:联机处理,发卡行认证——卡片数据 数据元 描述 授权请求密文(ARQC) 卡片在卡片行为分析处理时生成的应用密文,用来验证授权响应 密文(ARPC) 卡片认证结果(CVR) CVR包括了下列和发卡行认证相关的标记: , 发卡行认证执行并失败 , 上次联机交易发卡行认证失败 , 联机交易后发卡行认证没有执行 发卡行认证失败指示位 如果发卡行认证失败,卡片设置此指示位 应用密文(AC)密钥 卡片认证ARPC使用的对称密钥 16.2 联机响应数据 从发卡行到终端的联机响应信息中包括的数据在下表列出。终端用外部认证命令将此数据送入卡片 中用于发卡行认证。除了下面的数据,联机响应中可以包括发卡行脚本数据。 表格 16-4:联机处理——终端数据 数据元 描述 发卡行认证数据 在外部认证命令的数据域中的数据。包括内容: 授权响应密文(8字节)——发卡行主机(或代理)生成 授权响应码(2字节)——用来计算ARPC的数据。 16.3 命令 外部认证(EXTERNAL AUTHENTICATE)命令 如果执行发卡行认证,终端发送外部认证命令给卡片。 外部认证命令里包括发卡行认证数据。 外部认证命令的响应码说明发卡行认证数据验证是否通过。如果验证通过,SW1 SW2=“9000”, 如果失败,返回“6300”。 一次交易中,卡片允许处理一次外部认证命令,后续的外部认证命令卡片一律返回“6985”。 命令编码见附录B。 64 16.4 处理流程 联机处理由三部分组成:联机请求处理,联机响应处理和发卡行认证。卡片只在发卡行认证过程中有操作。 16.4.1 联机请求 当终端收到卡片返回的ARQC而且具有联机能力,终端发起一个联机请求。联机请求中包括终端之前从卡片取得的数据。在此步骤中,卡片不进行操作。 16.4.2 联机响应 在联机响应处理中,卡片不进行操作。 16.4.3 发卡行认证 如果卡片中的AIP数据表明卡片支持发卡行认证,而且终端收到的联机响应中包括发卡行认证数据,终端发送一个外部认证命令给卡片。 当卡片收到外部认证命令,卡片执行发卡行认证,步骤如下: 1. 如果在当前交易里,收到过外部认证命令: -设置发卡行认证失败指示位为“1”。 -返回状态码SW1 SW2=“6985”。 2. 将发卡行认证数据中的授权响应码分离出来保存,将来在交易结束阶段使用。 3. 使用第一次GENERATE AC命令响应时生成的ARQC和授权响应码生成一个授权响应密文 (ARPC)。附录D中描述密文生成用的密钥和算法。 4. 新生成的ARPC和外部认证命令里送进来的ARPC进行比较,如果相同,发卡行认证成功。 如果发卡行认证成功,卡片: 1. 设置发卡行认证失败指示位为“0”。 2. 外部认证命令响应“9000”。 如果发卡行认证失败,卡片: 1. 设置发卡行认证失败指示位为“1”。 2. 设置CVR中“发卡行认证执行但失败”位为“1” 3. 外部认证命令响应“6300” 卡片要确保当交易结束,卡片从终端中取出后,发卡行认证失败指示位继续设置为“1”。在下一个交易中,卡片行为分析过程中要检查此指示位来决定交易是否要联机上送。 在交易结束过程中,卡片在处理第二个GENERATE AC命令时,要检查发卡行认证是否执行以及是否成功。 65 16.5 流程图 卡片终端 卡片收到外部终端发外部认外部认证指令认证指令证指令给卡片第一个外部认证否返回6985指令, 是 用ARQC和认证响应 码生成一个密文 生成的密文否返回6300=ARPC, 是 设置发卡行认证失败设置发卡行认证失败指示位=0指示位=1 响应9000设置CVR中“发卡行认 证执行但失败”位=1 外部认证指令响应终端接收卡片送响应给终端返回的响应 图表 16-1:联机处理流程图 16.6 前期相关处理 应用初始化 卡片在GET PROCESSING OPTIONS命令中返回AIP给终端,AIP中标明卡片是否支持发卡行认 证。 卡片行为分析 第一条GENERATE AC命令里,卡片响应应用密文。 66 16.7 后续相关处理 交易结束 在交易结束处理中,卡片使用发卡行认证结果决定交易的最终结果以及对一些计数器和指示位进行复位。 发卡行到卡片脚本处理 终端将在联机响应中包括的所有发卡行脚本命令发送到卡片, 卡片行为分析(后续交易) 如果联机授权指示位指出:上次交易联机处理没有完成,卡片将请求本次交易进行联机授权。 17.交易结束 终端和卡片执行交易结束步骤决定交易处理结果。包括下列步骤: , 如果请求了联机处理但是终端不支持联机或者联机授权没有完成,终端和卡片执行另外的风险 管理决定交易是接受还是拒绝。 , 卡片可以根据发卡行认证的结果以及卡片内部的一些设置将一个发卡行作出的联机接受交易 改为拒绝。 , 一些计数器和指示位要被设置用来记录交易过程中发生的各种情况 , 联机授权结束后,根据授权结果和卡片内部的一些设置,一些计数器和指示位复位。 17.1 卡片数据 下表列出卡片在交易结束处理过程中使用的数据。 表格 17-1:交易结束——卡片数据 数据元 描述 应用货币代码(9F51) 指明和应用有关的国内货币。 应用缺省行为(ADA) 发卡行定义的指示器,指定在一些特殊条件下的卡片行为。 应用交互特征(AIP) 包括表明卡片支持发卡行认证能力的指示位。 连续脱机交易计数器(国际-PBOC专有数据。记录自从上次联机授权以来,使用非指定货币货币) 的脱机交易的次数。 连续脱机交易计数器(国际-PBOC专有数据。记录自从上次联机授权以来,终端国家代码和国家) 发卡行国家代码不同的脱机交易的次数。此检查使用发卡行国家 代码决定交易是国内还是国际。 累计脱机交易金额 PBOC专有数据。记录自从上次联机处理以来,使用应用指定货 币的脱机交易总金额。 67 累计脱机交易金额(双货币PBOC专有数据。记录自从上次联机处理以来,使用应用指定货) 币(应用货币代码)和第二应用货币的脱机交易总金额。如果是 第二应用货币,在累加之前要先使用货币转换因子将授权金额进 行转换。 累计脱机交易金额上限 PBOC专有数据。累计脱机交易金额和累计脱机交易金额(双货 币)的最大累计值限制数。 货币转换因子 用来将第二应用货币转换成应用指定货币的汇率值。第二应用货 币金额乘以转换因子转换为应用指定货币金额。 DDA失败指示位 标明本次或上次交易DDA失败。 发卡行认证失败指示位 标明本次或上次交易发卡行认证失败,在后续交易的卡片行为分 析步骤中使用。 发卡行认证指示位 标明发卡行认证是强制还是可选。 如果发卡行认证是强制的,卡片必须受到并成功处理一个ARPC (即通过发卡行认证)来对上次联机ATC寄存器和脱机计数器进 行复位 发卡行国家代码(9F57) PBOC专有数据。表明发卡行的国家。 发卡行脚本命令计数器 记录上次联机交易中,有安全报文的发卡行脚本命令的个数。 发卡行脚本失败指示位 在上次联机交易中,发卡行脚本处理失败时设置。 上次联机ATC寄存器 上次联机授权并满足发卡行验证需要的交易的ATC值。 联机授权指示位 当申请联机的交易无法联机或联机授权被中止时设置的内部应 用指示位。 第二应用货币代码 用于双货币频度检查。可以使用货币转换因子转换为应用货币。 SDA失败指示位 标明本次或上次交易SDA失败。 连续脱机交易上限 PBOC专有数据,如果交易无法联机,接受交易脱机的最大连续 脱机交易次数。 下表列出了在交易结束处理中卡片使用的以及生成应用密文的响应数据。 表格 17-2:生成应用密文命令响应 数据元 描述 密文信息数据 包括下列指示位: 密文类型 -拒绝AAC -接受TC -联机上送ARQC 其它状态信息 应用交易计数器(ATC) 当应用建立的时候初始化的交易次数计数器 68 应用密文(AC) 密文的值。如果卡片执行CDA,而且密文信息数据表明密文是TC 或ARQC,则应用密文和其它数据包含在一个非对称数字签名中 发卡行应用数据 包含用来上送给发卡行的自定义应用数据,包括CVR , 卡片认证结果(CVR) , PBPC专用数据元。表明当前和上次交易的脱机处理结果 下表列出了在交易结束处理过程中终端使用的卡片数据 表格 17-3:交易结束——终端使用的卡片数据 数据元 描述 卡片风险管理数据对象列表列出在第二个GENERATE AC命令中,卡片要求终端传送的数据2(CDOL2) 对象(标签和长度)。除了密文算法中要求的数据标签外,下面 列出的数据必须在CDOL2中用于交易结束处理: , 授权金额(如果支持使用金额的频度检查) , 授权响应码 , 终端验证结果(TVR) , 交易货币代码(如果支持使用货币代码的检查) , 终端国家代码(如果支持使用国家代码的检查) CDOL中的数据元不能重复 17.2 终端数据 下表列出了在交易结束处理过程中卡片使用的终端数据。 表格 17-4:交易结束——终端数据 数据元 描述 授权金额 当前交易金额 授权响应码 表明交易处理结果,提交给卡片。 , Y1=脱机接受 , Z1=脱机拒绝 , Y3=不能联机(脱机接受) , Z3=不能联机(脱机拒绝) 终端认证结果(TVR) 用来记录脱机处理结果,例如SDA执行情况等 终端国家代码 标明终端所在国家 交易货币代码 标明本次交易使用的货币 69 17.3 命令 生成应用密文(GENERATE APPLICATION CRYPTOGRAM(AC))命令 终端发第二个GENERATE AC命令给卡片请求第二个应用密文。 命令的数据域包括CDOL2中指定的终端数据,包括授权响应码。 命令的P1参数表明终端请求的应用密文类型。 命令的响应信息中包括密文信息数据,说明卡片的授权结果,应用交易计数器(ATC),应用密文和发卡行自定义数据。自定义数据中包括记录处理结果的CVR。 第二次发GENERATE AC命令。见附件B。 17.4 结束操作概述 只有在卡片行为分析后,卡片返回ARQC申请联机授权的情况下卡片执行结束操作。 在卡片行为分析的最后,卡片: , 请求脱机接受或拒绝。此时卡片的处理就已经结束,不再执行交易结束步骤 , 请求联机授权。这时卡片要执行交易结束步骤。 下图是结束处理的过程图。 70 卡片收到终端发送的最 后一条GENERATE AC命令 否授权响应码=Y3或是 联机授权完成Z3?联机授权没完成 终端请求AAC或执行卡片风险管AACTCTC?理 授权响应码=接受否码,终端或卡片风险否是管理请求AAC?响应AAC是 卡片接受或拒接受拒绝响应TC响应AAC绝, 指针复位响应AAC 响应TC 图表 17-1:交易结束处理流程图 17.5 收到生成应用密文(GENERATE AC)命令 卡片在收到第二次GENERATE AC命令后,进行交易结束处理。根据命令中的授权响应码类型,结束操作分为两条线路执行:联机授权的交易17.6和请求联机,但是联机授权没有完成的交易17.7。 17.6 联机授权的交易 当交易进行了联机授权(授权响应码不是Y3或Z3),卡片作如下处理: , 如果发卡行认证执行,检查在外部认证命令中送来的授权响应码: -授权响应码为00,10或11表明发卡行接受交易 71 -授权响应码为01或02表明发卡行请求参考, 则终端提示操作员打电话请求授权,根据发卡行 授权结果(批准或拒绝)请求相应的密文。如果终端不支持参考,则终端请求AAC -其它值表明发卡行拒绝。终端要请求交易拒绝。 , 检查第二个生成应用密文命令中的P1参数: -如果P1表明请求TC(接受交易)而且认证响应码表明发卡行接受或推荐,执行交易接受处 理。详细描述在17.6.2联机授权后请求TC(接受)中描述。 -如果P1表明请求AAC(拒绝交易)或者认证响应码表明发卡行拒绝,执行交易拒绝处理。 详细描述在17.6.1联机授权后请求AAC中描述。 17.6.1 联机授权后请求AAC(拒绝) 当第二个GENERATE AC命令中请求生成AAC或者授权响应码表明交易发卡行拒绝,卡片要响应 AAC,在响应之前,卡片: , 设置CVR中“第二个GENERATE AC命令返回AAC位”为“1” , 如果AIP中标明支持发卡行认证但是没有执行,设置CVR中“联机授权后,发卡行认证没有 执行”位为“1” , 如果发卡行认证强制(由发卡行认证指示器标明)但是没有执行,设置发卡行认证失败指示位 为“1” , 如果发卡行认证:(1)不支持,或者(2)可选而且没有执行,或者(3)执行并成功。下列指 示位归零: -联机授权指示位 -SDA失败指示位 -DDA失败指示位 -发卡行脚本命令计数器 -发卡行脚本失败指示位 , 下列指示位不变: -上次联机ATC寄存器 -累计脱机交易金额 -累计脱机交易金额(双货币) -连续脱机交易计数器(国际-货币) -连续脱机交易计数器(国际-国家) , 生成应用密文 , 设置密文信息数据中密文类型为AAC , 响应第二个GENERATE AC命令 72 17.6.2 联机授权后请求TC(接受) 当第二个GENERATE AC命令中终端请求TC而且授权响应码表示发卡行接受或推荐,卡片执行下 列步骤: , 如果AIP中标明支持发卡行认证但是没有执行,设置CVR中“联机授权后,发卡行认证没有 执行”位为“1” 卡片可以根据发卡行认证的设置情况决定是接受交易还是拒绝交易。 , 卡片接受——如果下面条件满足一条,卡片接受交易: -发卡行认证成功 -AIP中标明发卡行认证不支持 -发卡行认证可选而且没有执行 -发卡行认证失败,但是ADA中“如果发卡行认证失败,交易拒绝位”为“0” -发卡行认证强制但是没有执行,但是ADA中“如果发卡行认证强制但没有ARPC收到,交易 拒绝位”为“0” 执行卡片接受交易的后续步骤,详细描述在17.6.2.1收到TC请求后卡片接受交易中。 , 卡片拒绝——如果下面条件满足一条,卡片拒绝交易: --发卡行认证失败,ADA中“如果发卡行认证失败,交易拒绝位”为“1” -发卡行认证强制但是没有执行,但是ADA中“如果发卡行认证强制但没有ARPC收到,交易 拒绝位”为“1” 执行卡片拒绝交易的后续步骤,详细描述在17.6.2.2收到TC请求后卡片拒绝交易中。 17.6.2.1收到TC请求后卡片接受交易 当卡片接受交易,卡片: 1. 设置CVR中“第二个GENERATE AC命令返回TC”位为“1” 2. 设置CID中密文类型为TC 3. 根据发卡行认证的状态复位计数器 a) 如果发卡行认证(1)失败,或者(2)强制但是没有执行,卡片: , 下列计数器值不变: -上次联机ATC寄存器 -累计脱机交易金额 -累计脱机交易金额(双货币) -连续脱机交易计数器(国际-货币) 73 -连续脱机交易计数器(国际-国家) -联机授权指示位 -SDA失败指示位 -DDA失败指示位 -发卡行脚本命令计数器 -发卡行脚本失败指示位 , 如果发卡行认证强制但是没有执行: -设置发卡行认证失败指示位为“1” --设置CVR中“联机授权以后,发卡行认证没有执行位”为“1” b) 如果发卡行认证(1)成功,或者(2)可选而且没有执行,或者(3)不支持,卡片: , 如果AIP标明支持发卡行认证但是卡片没有收到外部认证命令,设置CVR中“联 机授权以后,发卡行认证没有执行位”为“1” , 下列计数器和指示位复位: -联机授权指示位 -SDA失败指示位 -DDA失败指示位 -发卡行脚本命令计数器 -发卡行脚本失败指示器 -累计脱机交易金额 -累计脱机交易金额(双货币) -连续脱机交易计数器(国际-货币) -连续脱机交易计数器(国际-国家) , 修改上次联机ATC寄存器的值为当前交易ATC。 4. 生成应用密文 5. 卡片记录交易明细,明细的内容在交易初始化阶段,通过GET PROCESSING OPTIONS 命令传送到卡片中。关于卡片交易明细的内容在19章中有详细描述。 6. 响应第二个GENERATE AC命令 17.6.2.2收到TC请求后卡片拒绝交易 当卡片收到接受交易请求后决定拒绝交易,卡片: , 设置CVR中“第二个GENERATE AC命令返回AAC”位为“1” 74 , 如果支持发卡行认证而且是强制的,设置发卡行认证失败指示位为“1” , 设置CID中的应用密文类型为AAC , 如果ADA中“如果因为发卡行认证失败或没有执行造成交易拒绝,生成通知”位为“1”,设 置CID中“需要通知”位为“1” , 下列计数器值不变: -累计脱机交易金额 -累计脱机交易金额(双货币) -连续脱机交易计数器(国际-货币) -连续脱机交易计数器(国际-国家) -上次联机ATC寄存器 -SDA失败指示器 -DDA失败指示器 -发卡行脚本命令计数器 -发卡行脚本失败指示器 卡片: , 生成应用密文 , 响应第二个应用密文生成命令 17.7 请求联机操作,但是联机授权没有完成 当发送的第二个GENERATE AC命令中的授权响应码表明请求联机处理但是没有完成时(Y3或Z3),卡片: , 执行可选的卡片风险管理,17.7.1卡片风险管理中描述 , 响应终端,17.7.2无法联机上送后的卡片响应 17.7.1 卡片风险管理 卡片风险管理执行的检查是可选的,包括检查连续脱机交易的次数是否超过了连续脱机交易上限,连续脱机累计金额是否超过限制数,卡片是否新卡和PIN尝试限制数是否在上次交易中超过。 当联机授权没有完成,即使在第二个GENERATE AC命令中终端请求拒绝(AAC)或在之前的风险管理中卡片决定拒绝,卡片仍然要执行所有支持的卡片风险管理步骤。因为卡片执行所有的检查,执行检查的顺序不需要按照下面所描述的顺序。 17.7.1.1连续脱机交易上限频度检查 此检查可选。检查连续脱机交易次数是否超过了最大限制。 75 如果上次联机ATC寄存器和PBOC专有数据:连续脱机交易上限(标签“9F59”)存在,卡片执行 此检查。 如果ATC和上次联机ATC寄存器的差值大于连续脱机交易上限,卡片: , 设置CVR中“频度检查超过”位为“1”。 , 设置卡片请求脱机拒绝指示位为“1”。在卡片风险管理后,卡片返回交易拒绝 17.7.1.2新卡检查 此检查可选。检查以前是否有过联机接受的交易。 如果卡片中上次联机ATC寄存器存在,卡片执行此检查。如果ADA不存在,卡片认为缺省为零。 如果上次联机ATC寄存器值为零,卡片: , 设置CVR中“新卡”位为“1”。 , 如果ADA中“如果是新卡而且交易无法联机,交易拒绝”位为“1”,设置卡片请求脱机拒绝 指示位为“1”。在卡片风险管理后,卡片返回交易拒绝。 17.7.1.3PIN尝试限制数超过 此项检查可选,检查PIN尝试限制数是否在之前的交易中就已经超过。 如果卡片中没有ADA数据,卡片认为ADA值缺省为零。 如果卡片支持脱机PIN验证,而且在本次交易中,卡片没有收到过校验命令,卡片: , 如果PIN尝试计数器已经为零,而且如果ADA中“如果上次交易PIN尝试限制数超过而且交 易无法联机,交易拒绝”位为“1”: -设置卡片请求脱机拒绝指示位为“1” -设置CVR中“PIN尝试限制数超过”位为“1” 17.7.1.4累计脱机交易金额(上限)频度检查 此检查可选。检查使用指定货币的连续脱机交易累计金额是否超过了最大限制数。 如果累计脱机交易金额和累计脱机交易金额上限数据存在,卡片执行此检查。 如果累计脱机交易金额加本次授权金额大于累计脱机交易金额上限 卡片: , 设置CVR中频度检查超过位为“1”。 , 设置卡片请求脱机拒绝指示位为“1”。 76 17.7.1.5累计脱机交易金额上限(双货币)频度检查 此检查可选。检查使用指定货币和第二应用货币的连续脱机交易累计金额是否超过了最大限制数。 如果累计脱机交易金额(双货币)和累计脱机交易金额上限数据存在,卡片执行此检查。 如果累计脱机交易金额加本次授权金额(如果使用第二应用货币要先使用货币转换因子转换)大于累计脱机交易金额上限 卡片: , 设置CVR中频度检查超过位为“1”。 , 设置卡片请求脱机拒绝指示位为“1”。 17.7.2 无法联机上送后的卡片响应 根据终端请求的应用密文类型和卡片风险管理的结果,卡片响应第二个GENERATE AC命令。 如果下面的条件满足一条,卡片拒绝交易: , 终端在生成应用密文命令中请求AAC , 卡片风险管理的结果是卡片请求脱机拒绝指示位设置为“1” 交易拒绝处理在“17.7.2.1无法联机上送后,卡片拒绝交易”中描述。 如果下面的条件都满足,卡片接受交易: , 终端在生成应用密文命令中请求TC , 卡片风险管理的结果是卡片请求脱机拒绝指示位设置为“0” 交易接受处理在“17.7.2.2无法联机上送后,卡片接受交易”中描述。 17.7.2.1无法联机上送后,卡片拒绝交易 本部分描述了当交易请求联机但是联机授权无法完成(授权响应码为Y3或Z3),卡片拒绝交易的处理过程。卡片: , 设置CVR中的下列指示位: -第二个GENERATE AC命令返回AAC -终端不能联机上送 , 如果TVR中“SDA失败”位为“1”,设置SDA失败指示位为“1” , 如果TVR中“DDA失败”位为“1”,设置DDA失败指示位为“1” , 如果TVR中“CDA失败”位为“1”,设置DDA失败指示位为“1” , 如果终端国家代码和发卡行国家代码不同,连续脱机交易计数器(国际-国家)加1 , 如果交易货币代码和应用货币代码不同,连续脱机交易计数器(国际-货币)加1 77 , 如果ADA中“如果交易拒绝,生成通知”位为“1”,设置CID中“需要通知”位为“1” , 上次联机ATC寄存器值不变 , 生成应用密文 , 设置CID中应用密文类型 , 响应GENERATE AC命令 17.7.2.2无法联机上送后,卡片接受交易 本部分描述了当交易请求联机但是联机授权无法完成(授权响应码为Y3或Z3),卡片接受交易的 处理过程。卡片: , 设置CVR中的下列指示位: -第二个生成应用密文命令返回TC -终端不能联机上送 , 如果终端国家代码和发卡行国家代码不同,连续脱机交易计数器(国际-国家)加1 , 如果交易货币代码和应用货币代码相同, -累计脱机交易金额累加授权金额 -累计脱机交易金额(双货币)累加授权金额 , 如果交易货币代码和应用货币代码不同,连续脱机交易计数器(国际-货币)加1 , 如果交易货币代码和第二应用货币代码相同,累计脱机交易金额(双货币)累加转换后的授权 金额 , 上次联机ATC寄存器值不变 , 生成应用密文 , 设置CID中密文类型为TC , 卡片记录交易明细,明细的内容在交易初始化阶段,通过GET PROCESSING OPTIONS命令 传送到卡片中。关于卡片交易明细的内容在19章中有详细描述。 , 响应生成应用密文命令 17.8 复合动态数据认证/生成应用密文响应 下面列出的情况有一项发生,卡片执行CDA: , 卡片的CDOL2中包括终端能力数据标签,而且终端回送的终端能力数据和卡片中的应用交互 特征(AIP)中都标明支持CDA。 , 卡片的CDOL2中不包括终端能力数据标签,终端发送的生成应用密文命令中的P1参数中CDA 位为“1”。 78 卡片: 1. 按照上面的描述,生成应用密文 2. 如果卡片响应AAC,没有特殊处理 3. 如果卡片响应TC,卡片响应的应用密文作为签名动态应用数据用IC卡私钥做签名,步骤如下: a) 设置CVR中“DDA执行”位为“1”。此步骤在步骤1生成应用密文之前执行。 b) 使用应用密文生成一个动态密文,详见安全规范6.3.6.。归纳为下面4个步骤: ,按照安全规范中6.3.6中描述组织数据。数据包括IC卡动态数据(包括IC卡动态数长 度,IC卡动态数,密文信息数据和应用密文等)。 ,用上述数据做一个哈希计算 ,将哈希包括到签名的动态应用数据中 ,使用IC卡私钥对签名的动态应用数据作签名 c) 响应GENERATE AC指令信息中包括签名的动态应用数据 17.9 流程图 下图是卡片执行交易结束处理的流程图 79 卡片收到最后的生成应 用密文指令 无法联机认证响应码=Y3是或Z3? 否 请求密文类型是联机接受TC而且响应码不是 是拒绝 否 设置CVR中第2个生成应 用密文返回AAC 支持发卡行认 证, 是 设置CVR中“联机授权发卡行认证执否后发卡行认证没有执行行,”为=1 是 否 发卡行认证成 功, 发卡行认证可是是选,否复位成0: -联机授权指示位 -SDA失败指示位否-DDA失败指示位 -发卡行脚本指令计数器 -发卡行脚本失败指示位 图表 17-2:交易流程图(1) 设置发卡行认证失败指 示位 卡片生成密文响应指令 80 联机授权响应不是Y3或接受Z3而且请求TC 卡片支持发卡行认否接受证, 是 执行发卡行认 证, 否 卡片发卡行认证可是接受选, 否 设置发卡行认是 证失败指示位 =1 ADA中“如果发卡行认 卡片接证强制但没有收到否受ARPC,交易拒绝”位 =1, 是 卡片 拒绝 卡片 发卡行认证成是接受功, 图表 17-3:交易流程图(2) 否 ADA中“发卡行认证卡片拒81 失败,拒绝交易”是绝位=1, 否 卡片 接受 卡片接卡片拒 受绝设置CVR中密文设置CVR中密文类型为TC类型为AAC设置CID中密文设置CID中密文类型类型 G 支持发卡行认否证, 是复位成0: -联机授权指示器 -SDA失败指示器执行发卡行认-DDA失败指示器证,-发卡行脚本指令计数器否-发卡行脚本失败指示器否-累计交易金额 -累计交易金额(双货币)设置CVR“联机授权-连续脱机交易计数器(国际后发卡行认证没执行-货币)”为=1-连续脱机交易计数器(国际 -国家) ADA中“如果发卡行认 证失败或强制不执行,是上次联机ATC寄存发卡行认证强生成通知”位=1,器=ATC制, 否 是是 设置CID“需要 通知”为=1发卡行认证成否功 生成密文是 G 相应指令 图表 17-4:交易流程图(3) 82 不能联机C授权响应码表明 交易不能联机卡片支持脱机PIN? 是ATC-上次联机ATC寄 存器〉连续脱机交易卡片收到过检验指是上限,令, 否否 上次交易PIN尝试限累计交易金额+授权否是制数超过,金额〉累计交易金额是 上限, 是 否 ADA中“上次交易PIN尝否累计交易金额(双货试限制数超过,拒绝交否币)+授权金额〉累是易”为=1,计交易金额上限, 是设置CVR中“频度 检查超过”位=1设置卡片请求拒绝指 示位=1 否设置卡片请求拒 绝指示位=1 设置CVR中“PIN尝试 闲置数超过”为=1上次联机ATC寄存器 =0,设置CVR中“不能联机 上送”位=1 是 设置CVR中“新卡 ”位=1无法联机 上送ADA中“如果新卡,否拒绝交易”位=1否 是 图表 17-5:交易流程图(4) 设置卡片请求拒 绝指示位=183 C 脱机拒绝不能联 机设置CVR"第2个 生成应用密文 返回AAC”发卡行国家代码脱机交易计数 =终端国家代是器(国际-货设置SDA失码,币)加1TVR中表明SDA败指示位是失败,=1否 否交易货币代脱机交易计数 码=应用货是器(国际-国是设置DDA失币代码,家)加1TVR中表明DDA败指示位是失败,=1否 否终端请求是AAC,ADA中“如果交易 拒绝,需要通知”否位=1,卡片请求拒 绝指示位是=1, 设置CID中“需否脱机拒绝否要通知”位 累计交易金额交易货币码=应是累加授权金额用货币吗, 设置CID中密文累计交易金额否类型AAC(双货币)累 加授权金额 用货币转换因子得应用货币码=第二是出近似的授权金额应用货币码, 累计交易金额(双否货币)累加近似授 权金额设置CVR"第2个 生成应用密文返 回TC” 生成应用密文设置CID中密文 类型 卡片相应第二 个生成应用密 文指令 图表 17-6:交易流程图(5) 84 17.10 前期相关处理 读应用数据 从卡片中读出交易明细文件短文件标识符。 卡片行为分析 卡片行为分析处理后,卡片作出交易联机、交易拒绝或交易接受的决定。只有当卡片作出交易请求联机授权的交易才执行交易结束处理步骤。此时终端向卡片发送第二个GENERATE AC命令。 联机处理 如果卡片收到终端发送的外部认证命令,卡片验证命令中的ARPC后设置指示器为“发卡行验证执行并通过”或“发卡行验证执行并失败”。 17.11 后续相关处理 卡片行为分析(后续交易) 在下一次交易时,卡片使用交易结束处理时设置的计数器和指示位进行判断和检查。 18.脚本处理 发卡行可以不用重新发卡而是通过发卡行脚本处理来修改卡片中的个人化数据。发卡行将脚本命令放在授权响应报文中传送给终端,终端将命令转发给卡片。当满足安全要求以后,卡片执行命令。 支持的命令有: , 修改卡片参数 , 锁定或解锁应用 , 锁卡 , 重置PIN尝试计数器 , 修改脱机PIN值 脚本处理通过锁定恶意透支和失窃的卡片来限制信用和伪卡风险。卡片参数可以在不需要重新发卡的情况下根据持卡人情况的变化而修改。 18.1 卡片数据 下表描述了在发卡行脚本处理过程中卡片使用的计数器和指示位。 表格 18-1:发卡行脚本处理——卡片数据 数据元 描述 应用交易计数器(ATC) 每次交易加1的计数器。在脚本处理中用于计算过程密钥 卡片认证结果(CVR) 在后续交易的卡片行为分析处理中,CVR中的一些内容被设置: , 上次联机交易,第二次GENERATE AC命令后卡片收到的 有安全报文的命令的个数,值来自发卡行脚本命令计数器 , 发卡行脚本命令失败位设置为“1”——如果发卡行脚本失 败指示位为“1” 85 发卡行脚本命令计数器 记录第二次生成应用密文后卡片收到的有安全报文的命令的个 数。在下次交易中的结束处理步骤中可能被复位 发卡行脚本失败指示位 在第二次GENERATE AC命令后,如果脚本命令执行失败,指示 位置“1”,失败的情况有: , 安全报文错误(计算的MAC和命令中的MAC不等) , 安全报文通过但是命令执行失败 , 需要安全报文但是不存在 不含安全报文的脚本命令执行失败不影响这个指示位。在下次交 易中的结束处理步骤中可能被复位。 18.2 终端数据 下表列出了发卡行脚本处理过程中使用的终端数据 表格 18-2:发卡行脚本处理——终端数据 数据元 描述 发卡行脚本结果 记录卡片对发卡行脚本命令处理的结果,此结果要包括在清算报 文和下次联机授权中 终端认证结果(TVR) TVR中包括和脚本有关的两个指示位 , 最后一个生成应用密文命令之前,发卡行脚本失败 , 最后一个生成应用密文命令之后,发卡行脚本失败 PBOC 只支持在最后一个生成应用密文命令之后,处理发卡行脚 本 交易状态信息(TSI) TSI中包括一个表明执行发卡行脚本处理标记 18.3 发卡行脚本操作中的密钥管理 安全报文认证(MAC)密钥 安全报文加密密钥 详细内容在安全规范中描述 下图是安全报文认证(MAC)密钥的生成和使用 86 发卡行生成MAC发卡行开始MAC MDK存放在发DEA主密钥(MAC卡行授权系统MDK) PAN何PAN序列号 从MAC MDK生成MACPAN何PAN序列号个人化UDK。PAN何PAN序ATC列号写入卡片 ATC 发卡行认证系统 -使用MAC MDK和PAN及PAN序列交易过程中卡片从MAC UDK生号计算MAC UDK成MAC过程密钥-使用MAC UDK和ATC计算MAC过 程密钥 -生成脚本指令MAC 卡片使用MAC过程 授权响应密钥验证从发卡行 授权系统传来的待MAC的脚本指令 MAC 图表 18-1:MAC密钥的生成和使用 下图是安全报文加密密钥的生成和使用 87 发卡行生成数据加发卡行开始ENC MDK保存在发卡密DEA主密钥(ENC行授权系统MDK) PAN PAN序列号 从ENC MDK生成ENC个人化UDK,使用PAN和PAN 序列号PAN PAN序列号 ATC 发卡行授权系统:ATC-使用ENC MDK和PAN及PAN序列号 生成ENC UDK -使用ENC UDK和ATC计算数据加交易过程中卡片从ENC UDK生成密过程密钥数据加密过程密钥-使用过程密钥对脚本指令数据 域中数据加密 卡片使用数据加密授权响应,过程密钥解密指令带加密数据域的脚本指令中的加密数据 图表 18-2:安全报文加密密钥的生成和使用 18.4 认证响应数据 下表列出的是授权响应中发卡行脚本数据。 表格 18-3:发卡行脚本处理——联机响应数据 数据元 描述 发卡行脚本模板 PBOC规范仅支持发卡行脚本模板2。标签“72”标识模板2,模 板中包括在第二次生成应用密文命令后,传送给卡片的发卡行专 有脚本数据。 发卡行脚本标识符 发卡行用来唯一标识发卡行脚本 发卡行脚本命令 脚本中的每一个发卡行脚本命令都按照BER-TLV格式,用标签 “86”开始。 18.5 命令 下面列出的功能是发卡行脚本处理过程中可以执行的功能。推荐使用发卡行脚本命令处理这些功能 88 。命令的详细编码在附录B。 除了卡片锁定命令,所有命令处理的都是当前选择应用。 应用锁定 如果发卡行决定当前使用的应用无效,执行应用锁定功能。此时锁定的应用可以在后面由发卡行解锁。 使用应用锁定(APPLICATION BLOCK)命令锁应用。应用锁定后,和应用有关的文件状态指示器要指明应用已经锁定。即使应用锁定,卡片内部数据访问仍然有效。一个锁定的应用,卡片对生成应用密文命令总是返回AAC。 如果应用在交易过程中锁定,卡片和终端允许交易继续执行到结束处理步骤。但是在后续交易时,卡片不允许锁定的应用被选择进行金融交易(终端可能选择一个锁定的应用进行解锁,因此卡片必须对生成应用密文(GENERATE AC)命令响应AAC)。 应用解锁 应用解锁解除了应用的锁定状态。应用解锁要在发卡行指定的特殊设备上执行。 因为应用解锁要在特殊设备上执行。处理流程不需要采用正常授权或金融交易的处理规则。在卡片对第一个GENERATE AC命令响应AAC后,设备要能将交易联机上送。即使卡片支持发卡行认证,也不需要执行。卡片风险管理和终端风险管理都不是必须进行的。也不需要第二个GENERATE AC命令。(如果由于一些原因,卡片在第二个GENERATE AC命令发送之前解锁了,设备要将响应的密文当AAC处理。) 卡片锁定 卡片锁定(CARD BLOCK)命令是一个二次发卡命令,使得卡片上的所有应用永久失效。 卡片锁定命令使卡片上所有应用无效而且实行卡片下电。除非卡片锁定,支付系统环境(PSE)不会无效而且总是可以访问。 如果卡片在交易处理过程中锁定,卡片和终端允许交易继续进行到交易结束步骤。一个锁定的卡片不能用发卡行脚本命令或其它命令解锁,因此卡片已经失效。此时PSE也无效。卡片对选择命令响应“功能不支持”(SW1 SW2=“6A81”)。卡片也不允许任何其它形式的应用选择。 当发卡行决定对卡片禁止使用任何功能,执行卡片锁定。例如丢失或被偷窃的卡片。在卡片锁定后,卡片上的应用都不能被解锁。 发卡行脚本中的卡片锁定命令用来实现锁卡功能。 PIN修改/解锁 PIN修改/解锁(PIN CHANGE/UNBLOCK)命令用来对PIN解锁或解锁加同时修改PIN值,卡片通过重新设置PIN尝试次数计数器到最大值(PIN尝试限制数)实现PIN解锁。 , PIN解锁 PIN修改/解锁命令执行成功,PIN尝试次数计数器复位成PIN尝试限制数 , 修改PIN值 如果要修改PIN值,PIN数据要用对称算法加密。算法描述在“18.6.3卡片安全报文”中描述 。当PIN值修改时,PIN的尝试次数计数器自动复位成PIN尝试限制数。 修改PIN值必须在一个发卡行控制的安全环境中执行。 设置数据 卡片中的专有基本数据对象允许使用设置数据(PUT DATA)命令修改。只有有标签tag的基本数据对象才允许使用此命令修改。 89 在本版本的规范中,下列数据可以使用PUT DATA命令修改,这些数据放在卡片内部专有文件中: , 连续脱机交易上限(“9F59”) , 连续脱机交易下限(“9F58”) , 连续脱机交易限制数(国际-国家) , 连续脱机交易限制数(国际-货币) , 累计脱机交易金额限制数 , 累计脱机交易金额限制数(双货币) , 累计脱机交易金额上限 , 货币转换因子 EMV定义的连续脱机交易上限(“9F14”)和连续脱机交易下限(“9F23”)存在短文件标识符SFI1-10之间,使用发卡行脚本命令中的修改记录(UPDATE RECORD)命令修改。 修改记录 UPDATE RECORD命令用来修改文件中的一条记录内容,修改的内容在UPDATE RECORD命令的数据域中。 18.6 处理流程 18.6.1 授权响应报文 授权响应报文中的标签“72”表明,在第二个GENERATEAC命令后,执行发卡行脚本处理。一个脚本中可以包含多个命令。 附录B中定义了发卡行脚本命令的编码。 有用来修改、复位卡片内容的命令都必须包全报文,参考18.6.3。 18.6.2 卡片脚本处理 因为卡片不能识别命令是发卡行脚本命令还是其它命令,因此,卡片不能拒绝在第二个生成应用密文命令之前送来的命令。 “18.6.4结果指示器”中描述了卡片中PBOC专有的指示位,记录在第二个GENERATE AC命令之后收到的发卡行脚本命令执行情况。 18.6.3 卡片安全报文 在执行一个发卡行脚本命令之前,卡片使用安全报文认证发卡行。在脚本处理时不进行联机处理中描述的发卡行认证方法。 安全规范中描述了安全报文的执行方法。 使用安全报文的基本目的是保证数据的机密性、信息完整性和认证发卡行。信息完整和认证发卡行可以使用MAC,数据机密通过加密数据实现,例如PIN加密。 90 , 报文认证(MACing)——报文认证(MACing)用来认证发卡行是发卡行脚本命令的合法发 出方,并且保证命令在发出后没有被修改 MAC用命令中的所有数据计算而成,包括命令头。先进行数据加密(如果需要)后生成MAC 。 , 数据加密——数据加密用来保证命令中的明文数据的机密性。在生成命令的MAC之前进行。 发卡行和卡片中的应用都要知道数据加密方法。 MAC生成和数据加密的详细描述在附录C。 18.6.4 结果指示器 卡片使用发卡行脚本命令计数器记录第二个GENERATE AC命令后收到的有安全报文的命令个数。 在卡片处理第二个GENERATE AC命令后收到的命令时,如果下面列出的错误出现一种,卡片设置发卡行脚本失败指示位为“1”: , 需要安全报文但是没有提供 , 安全报文验证失败 , 安全报文通过但是命令执行失败 一个不需要安全报文的命令执行失败时,不设置指示位。 18.6.5 流程图 下图是卡片在发卡行脚本处理过程中,卡片处理每个命令的流程。 91 卡片终端 卡片收到终端脚本指令发送指令 指令需要安全有安全保文,否报文,否 是 脚本指令计数 器加1处理指令使用MAC UDK 和ATC生成MAC 过程密钥 MAC有效,是 是 否使用ENC UDK和 ATC生成数据加密 过程密钥 加密数据解密 设置发卡行脚本失败处理指令指示位=1 否 指令执行成 功, 指令响应卡片返回指令是图表 18-3:发卡行脚本处理流程图 响应 18.7 前期相关处理 联机操作 终端收到的联机响应中可以包括发卡行脚本。 交易结束 92 如果终端收到的联机响应中包括发卡行脚本,在交易结束处理后,执行发卡行脚本处理。 18.8 后续相关处理 卡片行为分析(后续应用) 在下次交易的卡片行为分析阶段: , 卡片设置CVR中第4字节第8-5位值为发卡行脚本命令计数器的值 , 如果发卡行脚本失败指示位为“1”,卡片设置CVR中“上次交易发卡行脚本处理失败”位为 “1”。 交易结束(后续应用) 一个联机交易以后,如果下列条件满足一条,发卡行脚本失败指示位和发卡行脚本计数器复位成“0”: , 发卡行认证成功 , 发卡行认证可选并且没有执行 , 发卡行认证不支持 19.卡片记录交易明细 在卡片风险分析和交易结束这两个处理过程中,当卡片决定接受交易返回TC之前,卡片要进行记录交易明细步骤。 19.1 交易明细记录文件 交易明细记录文件是一个定长循环记录文件。记录格式不包括应用基本数据模版(标识‘70’)。记录文件的短文件标识符和记录个数在日志入口数据元(标识‘9F4D’)中规定,交易明细记录文件的短文件标识符取值范围必须在11-30之间,本规范推荐值为11,日志入口数据元是在选择应用的时候,有卡片在发卡行专用数据中返回。 记录内容由日志格式(标识‘9F4F’)决定。日志格式的值域是一串日志内容数据对象的标识和长度。终端通过Get Data命令取得日志格式数据元,可知交易明细记录文件需要记录的内容。 日志格式和交易日志记录在应用锁定后仍可以访问。 为了读取交易日志信息,特定设备使用下列步骤: , 执行应用选择,在发卡行自定义数据处获得日志入口数据元。如果日志入口数据元不存在,应用 不支持交易日志功能。 , 发送一个GET DATA命令取得日志格式数据元。 , 发送READ RECORD命令读交易日志记录。交易明细记录文件的读权限为自由读,写权限不公开, 由卡片操作系统控制。 19.2 PBOC建议 日志入口数据元内容:?0B0A?,交易明细文件的SFI为11,记录个数为10个。 93 日志格式数据元内容是下表定义的数据对象的标识和长度 交易明细记录的内容在表19-1中列出。 表格 19-1:交易明细记录文件内容 数据 格式 长度(字节) YYYYMMDD 4 交易日期 HHMMSS 3 交易时间 B 4 授权金额 B 4 其它金额 N3 2 终端国家代码 N3 2 交易货币代码 Ans 20 商户名称 N2 1 交易类型 B 2 应用交易计数器(ATC) 在应用选择阶段,卡片对SELECT命令的相应信息中的发卡行专用数据中包含了日志入口数据元,还在PDOL数据元中,列出了需要终端输入的数据。则在下一条GET PROCESSING OPTIONS指令中,终端要把PDOL中列出的终端数据元送给卡片,卡片将这些数据保存起来。在卡片经过卡片风险管理或交易结束处理,做出接受交易的结论后,卡片将根据日志格式中规定的交易明细内容一起保存到交易明细文件中。 如果发卡行发卡时没有建立交易明细文件,但是在选择应用的响应中包含了日志入口数据元,则卡片仍然不能记录交易明细。 只有当上一条GENERATE AC命令中,卡片响应TC的前提下,卡片才进行记录交易明细的处理。一次交易最多记录一次交易明细。 94 附录 A. 卡片数据元素定义 A.1 卡片和发卡行数据元描述 表格 A-A-1中列出了本规范所用的卡片和发卡行数据元,包括的格式有:格式(F),标签(T)和 长度(L)。 支持的格式有: , n(数字) , cn(压缩数字) , b(二进制) , an(字母数字) , ans(特殊字母数字) 当为数据定义的长度超过数据实际长度,而位数没有占满时,补位规则如下: , 格式n的数据元右对齐,左补0 , 格式cn的数据元左对齐,右补F , 格式an的数据元左对齐,右补0 , 格式ans的数据元左对齐,右补0 需求列中列出的是对数据元的需求情况: , M(强制):此数据必须存在并提供给终端,终端在读应用数据过程中,如果没有读到强制数 据,终端中止交易。 , R(需要):数据必须存在,在读应用数据过程中,终端不检查。 , C(有条件):在一定条件下必须存在。 , O(可选):可选数据元。 表格 A-A-1:卡片和终端的数据元描述 名字(格式;标签需求 描述 值 ;长度) 1 应用密文(AC) R 生成应用密文命令返回 的密文 F: b 64 T: 9F26 L: 8 应用货币代码 C 如果CVM中要求金额检 查,需要此数据。根据 ISO4217编码 F: n 3 T: 9F42 L: 2 应用货币代码 C PBOC专有数据。根据 ISO4217编码 F: n 3 如果执行频度检 查 T: 9F51 L: 2 应用货币指数 O 指出金额数据中小数点 从最右边开始第几个位 置 F: n 1 T: 9F44 L: 1 2 应用缺省行为 C 如果支持发卡行认证。字节 1: PBOC专有数据。定义在一 些特定条件下卡片执行(ADA) bit 8: 1 = 如果发卡行认证失败,下次联机的发卡行指定的行为。如交易 果卡片中没有此数据,缺F: b 16 省认为全零 bit 7: 1 = 如果发卡行认证执行但失败,拒 绝交易 T: 9F52 bit 6: 1 = 如果发卡行认证必备但没有收到L: 2 ARPC,拒绝交易 bit 5: 1 = 如果交易拒绝,生成通知 bit 4: 1 = 如果PIN在本次交易中已锁而且交 易拒绝,生成通知 bit 3: 1 = 如果因为发卡行认证失败或没有 执行导致交易拒绝,生成通知 bit 2: 1 = 如果是新卡,联机交易 bit 1: 1 = 如果是新卡,当交易无法联机时 拒绝交易 字节 2: bit 8: 1 = 如果PIN在本次交易中锁定,应用 锁定。 Bit 7: 1 = 如果PIN在前次交易中锁定,拒绝 交易 bit 6: 1 = 如果PIN在前次交易中锁定,联机 交易 bit 5: 1 = 如果PIN在前次交易中锁定,当交 易无法联机时拒绝交易 bit 4: 1 = 如果发卡行脚本命令在前次交易 中失败,联机交易 bit 3: 1 = 如果PIN在前次交易中锁定,拒绝 交易并锁应用 bits 2–1: RFU (000) 应用自定义数据 O 和卡片应用有关的发卡 行指定数据 F: b 8–256 T: 9F05 L: 1–32 3 应用生效日期 O 卡片中应用启用日期 F:n 6 YYMMDD T: 5F25 L: 3 应用失效日期 M 卡片中应用的失效日期 F:n 6 YYMMDD T: 5F24 L: 3 应用文件定位器 R 指出和应用相关的数据对于每一个要读的文件,AFL包括4个字节: (AFL) 存放位置(短文件标识符 和记录号) 字节1: F: var. Bits 8–4 = SFI 短文件标识符 T: 94 Bits 3–1 = 000 L: var. up to 252 字节 2: 文件中要读的第一个记录的记录号 (不能为0) 字节 3: 文件中要读的最后一个记录的记录号 (等于或大于字节2) 字节4: 从字节2中的记录号开始,存放认证用 静态数据记录的个数(值从0到字节3-字节2+1 的值) 应用标识符(AID) R 根据7816-5规定标识应 用。由注册的应用提供者 标识(RID)和专用应用F: b 40–128 标识符扩展(PIX)组成 。 T: 4F L: 5–16 4 应用交互特征 M 一个列表,说明此应用中字节 1: (AIP) 卡片支持指定功能的能 力 bit 8: 1 = RFU F: b 16 bit 7: 1 = 支持SDA T: 82 bit 6: 1 = 支持DDA L: 2 bit 5: 1 = 支持持卡人认证 bit 4: 1 = 执行终端风险管理 bit 3: 1 = 支持发卡行认证 bit 2: RFU (0) bit 1: 1 = 支持CDA 字节2: RFU (“00”) 应用标签 R 和AID相关的便于记忆的 数据。 F: ans 1–16 (EMV规定将要 成为强制数据) 用于应用选择。ADF的FCI 中和ADF目录入口的强制T: 50 数据 L: 1–16 应用首选名称 O 和AID相关的便于记忆的 数据。如果终端支持在发 卡行编码表索引数据中F: ans 1–16 指定的字符类型,终端在 应用选择过程中显示应T: 9F12 用首选名称 L: 1–16 应用主账号(PAN) M 持卡人有效账号 F: var. up to cn 19 T: 5A L: var. up to 10 应用主账号序列号 O 用来表示卡片中使用同 一个账号的不同应用 F: n 2 T: 5F34 L: 1 5 应用优先指示器 C 如果卡片中有多个应用,bit 8 指出同一目录中的应用 的优先级 F: b 8 1:没有持卡人确认应用不能选择 T: 87 0:没有持卡人确认应用可以选择 L: 1 bit7-5:RFU(000) bit4-1: 0000:不指定优先级 xxxx:应用现实和选择的顺序,从1-15。1的 优先级最高 应用模板 C 根据ISO7816-5,包含和 应用目录入口相关的1个 或多个数据对象。 F: b 如果有PSE T: 61 L: var. up to 252 应用交易计数器 R 记录个人化以后交易处初始值为0,执行一次交易加1 理的次数。由卡片中的应 用维护。 F: b 16 T: 9F36 L: 2. 6 应用用途控制 O 标明发卡行指定的卡片字节1: 应用上的一些限制,包括 地域使用和服务类型等。 F: b 16 bit 8: 1 = 国内现金交易有效 T: 9F07 bit 7: 1 = 国际现金交易有效 L: 2 bit 6: 1 = 国内商品有效 bit 5: 1 = 国际商品有效 bit 4: 1 = 国内服务有效 bit 3: 1 = 国际服务有效 bit 2: 1 = ATM有效 bit 1: 1 = 除ATM外的终端有效 字节2: bit 8: 1 = 允许国内返现 bit 7: 1 = 允许国际返现 bits 6–1: RFU (000000) PBOC限制:字节1中,bit4,6值相同;bit3, 5值相同 应用版本号 M 支付系统给应用分配的 版本号 F: b 16 T: 9F08 L: 2 授权响应码 来自发卡行或终标明了交易结果 按照ISO8583:1987标准。发卡行生成。 端 F: an 2 下面的代码是终端生成: T: 8A Y1:脱机接受 L: 2 Z1:脱机拒绝 Y3:不能联机(脱机接受) Z3:不能联机(脱机拒绝) 7 卡片风险管理数据M 列出第一个生成应用密 对象列表1 文命令中,卡片请求终端 (CDOL1) 传送的数据。 F: b 内容是终端数据对象(标 签和长度) T: 8C L: var. up to 252 卡片风险管理数据M 列出第二个生成应用密 对象列表2 文命令中,卡片请求终端 (CDOL2) 传送的数据。 F: b 内容是终端数据对象(标 签和长度) T: 8D L: var. up to 252 卡片验证结果 M PBOC专有数据。记录卡片字节1: 长度字节 03 在本次和上次交易中出 现的异常情况。要作为发(CVR) 字节 2: 卡行应用数据的一部分 返回给终端 F: b 32 bits 8–7: T: – 00 = 第二个GENERATE AC返回AAC L: 4. 01 = 第二个GENERATE AC返回TC 10 = 不请求第二个GENERATE AC 11 = RFU bits 6–5: 00 = 第一个GENERATE AC返回AAC 01 = 第一个GENERATE AC返回TC 10 = 第一个GENERATE AC返回ARQC 11 = 不能返回11 bit 4: 1 = 发卡行认证执行但失败 bit 3: 1 = 脱机PIN执行 bit 2: 1 = 脱机PIN认证失败 bit 1: 1 = 不能联机 8 卡片验证结果 字节 3: (CVR) bit 8: 1 = 上次联机交易没有完成 (继续) bit 7: 1 = PIN锁定 bit 6: 1 = 超过频率检查 bit 5: 1 = 新卡 bit 4: 1 = 上次联机交易发卡行认证失败 bit 3: 1 = 联机授权后,发卡行认证没有执 行 bit 2: 1 = 由于PIN锁卡片锁定应用 bit 1: 1 = 上次交易SDA失败交易拒绝 字节4: bits 8–5: 上次交易第二个GENERATE AC命令 后收到的带有安全报文的发卡行脚本命令 bit 4: 1 = 上次交易发卡行脚本处理失败指 针 bit 3: 1 = 上次交易DDA失败交易拒绝 bit 2: 1 = DDA执行 bit 1: RFU (0) 在应用初始化时,字节2-4置零 持卡人姓名 R 持卡人姓名,符合 ISO7813 F: ans 2–26 T: 5F20 L: 2–26 持卡人姓名扩展 O 如果持卡人姓名大于26 字节,多出部分放在此数 据元中。符合ISO7813 F: ans 27–45 T: 9F0B L: 1-19 9 持卡人证件号 O 持卡人证件号。 F:an 40 T:9F61 L:1-40 持卡人证件类型 O 表明持卡人证件类型 00:身份证 F:cn 1 01:军官证 T:9F62 02:护照 L:1 03:入境证 04:临时身份证 05:其它 10 持卡人验证方法R 按照优先顺序列出卡片字节1–4: 金额X(二进制) (CVM)列表 应用支持的所有持卡人 验证方法 字节5–8: 金额Y(二进制) F: b 注意:一个应用中可以有字节9 (CVM Code): 多个CVM列表,例如一个T: 8E 用于国内交易,一个用于bit 8: 0 = 只有符合此规范的取值(如果不国际交易。 L: var. up to 252 为1,说明有自定义的值) bit 7: 1 = 如果此CVM失败,应用后续的 0 = 如果此CVM失败,则持卡人验证失败 bits 6–1 (CVM Type): 000000 = CVM失败处理 000001 = 卡片执行明文PIN核对 000010 = 联机加密PIN验证 000011 = 卡片执行明文PIN核对+签名(纸上 ) 000100 = EMV保留 000101 = EMV保留 011110 = 签名(纸上) 011111 = 不需CVM 000110–011101 = 保留给加入的支付系统 100000–101111 = 保留给各自独立的支付系 统 110000–111110 = 保留给发卡行 111111 = RFU 11 持卡人验证方法 PBOC定义: (CVM)列表 100000 = 持卡人证件出示 (继续) 字节10 (CVM Condition Code): 00 = 总是 01 = 如果是ATM现金交易 02 = 如果不是ATM现金或有人值守现金或返现 交易 03 = 如果终端支持这个CVM 04 = 如果是人工值守现金交易 05 = 如果是返现交易 06 = 如果交易货币等于应用货币码而且小于X 值 07 = 如果交易货币等于应用货币码而且大于X 值 08 = 如果交易货币等于应用货币码而且小于Y 值 09 = 如果交易货币等于应用货币码而且大于Y 值 0A–7F: RFU 80–FF: RFU 保留给各个支付系统 下一个CVM用另外两个CVM码和CVM条件字节表 示 CA公钥索引 (PKI) C 在SDA或DDA过程中,和 RID一起使用,用来标识 CA公钥 F: b 8 如果支持SDA或 DDA。 T: 8F L: 1 12 连续脱机交易计数C PBOC专有数据元。记录自初始值为0,每接受一次国际-货币交易脱机后 器(国际-货币) 从上次联机后,不使用指加1 定应用货币的脱机交易如果执行国际- 次数 F: b 8 货币频度检查 T: – L: 1 连续脱机交易限制C PBOC专有数据元。不使用 数(国际-货币) 指定应用货币的连续脱 机交易次数最大数,超过如果执行国际- 后交易请求联机 F: b 8 货币频度检查 T: 9F53 L: 1 连续脱机交易计数C PBOC专有数据元。记录自初始值为0,每接受一次国际-国家交易脱机后 器(国际-国家) 从上次联机后,不在发卡加1 行所在国家内进行的脱如果执行国际- 机交易次数 F: b 8 国家频度检查 T: – L: 1 连续脱机交易限制C PBOC专有数据元。不在发 数(国际-国家) 卡行所在国家的连续脱 机交易次数最大数,超过如果执行国际- 后交易请求联机 F: b 8 国家频度检查 T: 9F72 L: 1 13 密文信息数据 R 表明卡片返回的密文类bits 8–7: 型并指出终端要进行的 操作。 F: b 8 00 = AAC T: 9F27 01 = TC L: 1 10 = ARQC 11 = AAR (本版本不支持) bit 6–5: RFU (00) bit 4: 1 = 需要通知 bits 3–1 (相应/通知/授权参考码): 000 = 无信息001 = 不允许服务 010 = PIN尝试次数超过 011 = 发卡行认证失败 xxx = RFU 密文版本号 R PBOC专有数据。标明生成PBOC指定密文版本号01(’01’) 密文的算法版本。作为发 卡行应用数据的一部分F: b 8 传送 T: – L: 1 累计脱机交易金额 C PBOC专有数据。记录自从初始值为0。累加每次使用应用指定货币的脱 上次联机交易完成后,使机交易的授权金额。在某些联机交易后可以被 用应用指定货币的脱机复位成零。 F: n 12 如果执行累计金 交易累计金额 额频度检查 T: – L: 6 累计脱机交易金额C PBOC专有数据。累计脱机 限制数 交易金额的最大限制。超 过交易请求联机 如果执行累计金 F: n 12 额频度检查 T: 9F54 L: 6 14 累计脱机交易金额C PBOC专有数据。记录自从初始值为0。累加每次使用应用指定货币或第(双货币) 上次联机交易完成后,使二应用货币的脱机交易的授权金额。在某些联 用应用指定货币和第二机交易后可以被复位成零。 如果执行累计金 应用货币的脱机交易累F: n 12 额(双货币)频 计金额 度检查 T: – L: 6 累计脱机交易金额C PBOC专有数据。累计脱机 限制数(双货币) 交易金额(双货币)的最 大限制。超过交易请求联如果执行累计金 机 F: n 12 额(双货币)频 度检查 T: 9F75 L: 6 累计脱机交易金额C PBOC专有数据。累计脱机 上限 交易金额和累计脱机交 易金额(双货币)的最大如果执行累计金 限制数。如果超过而且交F: n 12 额频度检查 易无法联机时,拒绝交易 。 T: 9F5C L: 6 货币转换因子 C 用来将第二应用货币转字节1 换成指定应用货币的10 进制数。 F: 8n 如果执行双货币bit8-5:小数点位置。从右边开始移动的位数 频度检查 T: 9F73 bit4-1:转换因子的第一个数字 L: 4 字节2-4:剩下的6个数字 数据认证码 O 发卡行指定数值。在SDA 过程中,终端从签名的静 态应用数据中恢复出来。F: b 16 作为签名的静态应用数 据保存在卡片中。 T: 9F45 L: 2 15 安全报文加密密钥 C PBOC自定义数据元。双长 度的安全报文加密密钥, 16字节。发卡行脚本命令F: b 64 如果执行修改 中的数据域需要加密时PIN 使用。 T: – L: 16 专用文件(DF)名R 根据ISO7816-4规定的, 称 DF的名字 F: b 40–128 T: 84 L: 5–16 分散密钥索引(DKIO PBOC专有数据。发卡行用发卡行指定。 ) 来明确使用哪个主密钥 分散得到卡片中的子密如果不存在,缺省值为0。 钥。用于卡片联机处理和F: b 8 发卡行认证。在发卡行应 用数据中返回给终端 T: – L: 1 目录数据文件(DDFC 标识目录名。 )名称 如果支持目录选 F: b 40–128 择 T: 9D L: 5–16 目录自定义模板 O 根据ISO7816-5,目录中 发卡行自定义部分 F: var. T: 73 L: var. up to 252 16 动态数据认证数据C 在内部认证命令中需要 对象列表(DDOL) 终端送到卡片中的数据 列表,包括数据对象的标如果支持DDA 签和长度 F: b T: 9F49 L: var. up to 252 动态数据认证(DDAC PBOC专有数据。标明当上bit 1: 1 = 上次交易DDA失败而且交易拒绝 )失败指示位 次交易拒绝时DDA是否失。 败。 如果支持DDA F: b 1 T: – L: – 文件控制信息(FCIO FCI中的发卡行自定义部 )发卡行自定义数分 据 F: var. T: BF0C L: var. up to 222 文件控制信息(FCIR 根据ISO7816-4,标识FCI )专用模板 模板中,专用于EMV4.0的 数据对象。 F: var. T: A5 L: var. 文件控制信息(FCIR 根据ISO7816-4,标识FCI )模板 模板。 F: var. T: 6F L: var. up to 252 17 IC卡动态数据 C IC卡生成或保存的动态 数据。在签名的动态应用 数据中传送给终端。终端F: – 如果支持DDA 用来证明脱机动态数据 认证执行了。 T: – L: var. IC动态数 C DDA处理过程中,卡片生 成的随时间变化不同的 随机数。包括在签名动态F: b 如果支持DDA 数据中送到终端,由终端 恢复。 T: 9F4C L: 2–8 ICC私钥 C IC卡公钥对中的私钥部 分。用于脱机动态数据认 证。有两种格式:模/私F: b 如果支持DDA 钥指数形式和中国余数 定理(CRT)形式。 T: – L: NIC IC卡公钥指数 C IC卡公钥指数用于验证 签名的动态应用数据。 F: b 如果支持DDA T: 9F47 L: 1 or 3 IC卡公钥证书 C 发卡行认证过的IC卡公 钥。 F: b 如果支持DDA T: 9F46 L: NI IC卡公钥余数 C 没有放入IC卡公钥证书 的IC卡公钥部分 F: b 如果需要 T: 9F48 L: NIC - NI + 42 18 发卡行行为代码R 指定当交易请求联机但值和终端验证结果(TVR)中的每一位对应。 (IAC)-缺省 是终端不能完成联机上 送的交易拒绝的条件。 将变成强制 F: b 40 T: 9F0D L: 5 发卡行行为代码R 指定交易不进行联机直值和终端验证结果(TVR)中的每一位对应。 (IAC)-拒绝 接拒绝的条件。 将变成强制 F: b 40 T: 9F0E L: 5 发卡行行为代码R 指定交易联机上送的条值和终端验证结果(TVR)中的每一位对应。 (IAC)-联机 件。 将变成强制 F: b 40 T: 9F0F L: 5 19 发卡行应用数据 R 在一个联机交易中,要传 送到发卡行的专有应用数据。 F: b 第1字节是PBOC自定义数T: 9F10 据长度。 L: var. up to 32 格式内容: 长度(07)(1字节) 分散密钥索引(1字节) 密文版本号(1字节) 卡片验证结果(CVR)(4字节) 算法标识(1字节) 如果由发卡行自定义数据。在上述数据后跟一个发卡行自定义数据长度字节和1-15字节的发卡行自定义数据。 发卡行认证数据 O 用于发卡行认证的数据, 从发卡行传来由终端送入卡片。 F: b 64–128 本版本中,发卡行认证数T: 91 据包括两部分: L: 8–16 ARPC(8字节) 授权响应码(2字节) 20 发卡行认证失败指C PBOC专有数据元。表明上bit 1: 1 = 上次联机交易发卡行验证失败 示位 次交易出现的发卡行认 证错误的情况。有: 如果支持发卡行 F: b 1 认证 发卡行认证执行但失败 T: – 发卡行认证没有执行但 是强制 L: – 发卡行认证指示位 C PBOC专有数据。标明当支bit 8: 持发卡行认证时,是强制 还是可选。 F: b 8 如果支持发卡行1 = 发卡行认证强制 认证 T: 9F56 0 = 发卡行认证可选 L: –1 bits 7–1: RFU (0000000) 发卡行代码表索引 C 根据ISO8859,显示应用01 = ISO 8859, Part 1 首选名称的代码表。 F: n 2 如果有应用首选02 = ISO 8859, Part 2 名称 T: 9F11 03 = ISO 8859, Part 3 L: 1 04 = ISO 8859, Part 4 05 = ISO 8859, Part 5 06 = ISO 8859, Part 6 07 = ISO 8859, Part 7 08 = ISO 8859, Part 8 09 = ISO 8859, Part 9 10 = ISO 8859, Part 10 21 发卡行国家代码 C 根据ISO3166指出发卡行 的国家。 F: n 3 如果有应用用途 控制 T: 5F28 L: 2 发卡行国家代码 C PBOC专有数据。根据 ISO3166指出发卡行的国 家。 F: n 3 如果支持卡片频 度检查 T: 9F57 如果支持地域检 查 L: 2 发卡行公钥证书 C CA认证过的发卡行公钥。 用于脱机数据认证 F: b 如果支持SDA, DDA T: 90 L: NCA 发卡行公钥指数 C 发卡行公钥指数,用来验 证签名的静态应用数据 和IC卡公钥证书 F: b 如果支持SDA, DDA T: 9F32 L: 1 or 3 22 发卡行公钥余数 C 没有放入发卡行公钥证 书中的发卡行公钥部分 F: b 如果需要 T: 92 L: NI-NCA+36 发卡行脚本命令 O 从发卡行到终端,由终端见附录B 送入卡片。包括在授权响 应中的发卡行脚本中。见F: b 附录B中的命令描述 T: 86 L: var up to 261 发卡行脚本命令计C PBOC专有数据。记录上次bits 4–1:第二个生成应用密文命令后收到数器 交易中,卡片处理的带安的有安全报文的脚本命令个数 全报文的发卡行脚本命如果支持发卡行 令个数。 F: b 4 脚本 值‘F’表示有15个或更多的发卡行脚本命令 。 T: – L: – 发卡行脚本失败指C PBOC专有数据。当上次交bit 1:上次交易发卡行脚本处理失败 示位 易发卡行脚本处理失败 时设置。 如果支持发卡行 F: b 1 脚本 T: – L: – 23 发卡行脚本模板2 C 最后的生成应用密文命 令后,发送到卡片的包括 发卡行自定义数据。 F: b 如果支持发卡行 脚本 T: 72 L: var. 发卡行URL O 存放发卡行服务器在互 联网上的位置 F: ans T: 5F50 L: var. 发卡行URL2 O PBOC定义的。存放发卡行 服务器在互联网上的位 置 F: ans T: 9F5A L: var. 首选语言 O 顺序存放的1-4种语言。 根据ISO639编码 F: an 2 T: 5F2D L: 2–8 上次联机应用交易C 上次联机上送交易时的初始值为0 计数器(ATC)寄存ATC值 器 如果卡片或终端 执行频度检查或 F: b 16 新卡检查 T: 9F13 L: 2 24 日志入口 O 提供日志文件的SFI和日Byte 1: 循环交易日志文件的SFI 志文件记录个数 F: b 16 Byte 2: 交易日志文件中的记录个数 T: 9F4D L: 2 日志格式 O 列出日志记录中数据对 象的标签和长度 F: b T: 9F4F L: var. 连续脱机交易下限 C 发卡行指定的有联机能 力的终端允许连续脱机 交易的最大次数。 F: b 8 如果执行终端频 度检查 T: 9F14 L: 1 连续脱机交易下限 C PBOC专有数据。发卡行指 定的有联机能力的终端 允许连续脱机交易的最F: b 8 如果执行卡片频 大次数。 度检查 T: 9F58 L: 1 安全报文认证(MACC PBOC专有数据。双长度安 )密钥 全报文认证(MAC)密钥, 16字节。当发卡行脚本需如果支持发卡行 要安全报文时用来计算F: b 64 脚本使用安全报 MAC。 文 T: – L: 16 25 卡片请求脱机拒绝C PBOC专有数据。在交易处 指示位 理过程中,当卡片决定交 易拒绝时设置。 如果卡片风险管 F: b 1 理检查允许得出 拒绝结论 T: – L: – 联机授权指示位 C PBOC专有数据。如果卡片bit 1: 1 = 本次获上次交易中,需要联机授 请求ARQC但是终端不能权但是没有实现 完成时设置。 F: b 1 如果卡片支持发 卡行授权或发卡 行脚本处理 T: – L: – 卡片请求联机指示R PBOC专有数据。在交易处 位 理过程中,当卡片决定交 易联机时设置。 F: b 1 T: – L: – PIN尝试次数计数C 剩余的PIN尝试次数。 初始值为PIN尝试限制数。验证失败一次减1。 器 验证成功或发卡行修改/解锁成功则复位到最 大值(PIN尝试限制数) 如果支持脱机 F: b 8 PIN T: 9F17 L: 1 PIN尝试限制数 C PBOC自定义数据。发卡行 指定的PIN允许的连续错 误次数。 F: b 8 如果支持脱机 PIN T: – L: 1 26 处理选项数据对象C 指定在取处理选项命令 列表(PDOL) 中终端送入卡片的数据。 包括终端数据对象(标签在终端进行应用 和长度) F: b 初始化时需要 T: 9F38 L: var. 专用应用标识符扩R 根据ISO7815-5规定的,PBOC PIX值有: 展(PIX) AID的组成部分之一。 F: b T: – L: 0–11 脱机PIN C PBOC专有数据。在卡片个 人化时由发卡行写入卡 片。 F: b 如果支持脱机 PIN T: – L: 8 注册的应用提供者R 根据ISO7816-5规定的, 标识符(RID) AID的组成部分之一 F: b T: – L: 5 响应报文模板格式R IC卡命令响应信息,包括 1 数据对象(不包括标签和 长度) F: var. T: 80 L: var. 27 响应报文模板格式C IC卡命令响应信息,包括 2 数据对象(包括标签和长 度) 如果支持CDA F: var. T: 77 L: var. 第二应用货币 C 第二种货币,要转换成应 用指定货币。根据 ISO4217编码 F: n 3 如果支持双货币 频度检查。 T: 9F76 L: 2 服务码 O 根据ISO/IEC7813标准, 和在磁条1和2中定义的 数据一致。 F: n 3 T: 5F30 L: 2 短文件标识符(SFIR 命令中用于标识文件。字1–10: EMV专用 ) 节中高三位为0。 11–20: 支付系统专用 F: b 8 21–30: 发卡行专用 T: 88 L: 1 签名的动态应用数C 卡片生成的动态数据签 据 名。在DDA过程中由终端 验证 如果支持DDA F: b T: 9F4B L: NIC 签名的静态应用数C 发卡行签名的数据签名。 据(SAD) 用卡片内的指定数据生 成。在SDA过程中由终端如果支持SDA 验证 F: b T: 93 L: NI 28 静态数据认证(SDAC PBOC专有数据。标明当上bit 1: 1 = 上次交易SDA失败而且交易拒绝 )失败指针 次交易拒绝时SDA是否失 败 如果支持SDA F: b 1 T: – L: – 静态数据认证标签C 列出基本数据对象标签,可以只包括应用交互特征(AIP)的标签 列表 标签的值包括在签名的 静态应用数据中或IC卡 公钥证书中。 F: – T: 9F4A L: var. 磁条1自定义数据 R 根据ISO/IEC7813,磁条1 中的自定义数据 F: ans 将会改为可选 T: 9F1F L: var. 29 磁条2等效数据 M 根据ISO/IEC7813,磁条2磁条2等效数据要保存在短文件标识符位1,记 的数据。不包括起始位、录1中 结束位和LRC(校验码),F: B 包括: T: 57 应用主账号(PAN) L: var. up to 19 分隔符(“D”) n, var. up to 19 期满日期(YYMM) 1 服务码 n4 PIN验证域 n3 自定义数据(由支付系统 定义) 0 or n 5 补F(如果不是偶数个) n, var. hex. 交易证书数据对象C 终端使用列出的数据对 列表(TDOL) 象(标签和长度)生成TC 哈希值。 如果需要预先哈 F: b 希。 T: 97 L: var. up to 252 应用密文(AC)密M PBOC专有数据。双长度应 钥 用密文密钥的16字节。用 于卡片联机授权,发卡行 联机授权和生成应用密F: b 64 文。 T: – L: 16 30 连续脱机交易上限 C 发卡行指定的卡片需要 联机处理前允许连续脱 机交易次数最大值 F: b 8 如果支持终端频 度检查 T: 9F23 L: 1 连续脱机交易上限 C PBOC专有数据。发卡行指 定的卡片需要联机处理 前允许连续脱机交易次F: b 8 如果无法联机, 数最大值 卡片风险管理可 以得出交易拒绝T: 9F59 结论 L: 1 PBOC自定义数据 R 发卡行应用数据的一部 分。包括一个长度字节, 分散密钥索引,密文版本F: b 56 号和卡片验证结果。在生 成应用密文命令中返回T: – 给终端。 L: var 7 to 9 A.2 卡片和发卡行数据元需求 表格 A-2中是卡片和发卡行数据元的需求。 A.2.1 标签(Tag) 标签列是数据元的标签(Tag)。 A.2.2 需求 强制/有条件/可选列是数据元的需求情况。加*号表示需求在未来会有变化,具体描述在“其它” 列 A.2.3 数据完整性(备份) 备份列是数据是否需要备份。 在一些特殊的情况下,例如在交易过程中突然拔出卡片、突然掉电等。卡片要有能力保护一些应用 数据的不被破坏。 31 A.2.4 修改能力 修改列是数据是否可以被修改。如果允许,则修改命令在命令列中列出。 A.2.5 取回能力 取回列是数据是否可以被终端取回或通过命令返回给终端。标明“SD”的数据表明此数据只能在特殊设备上取回,不能在金融交易过程中由终端取出。 A.2.6 静态或动态 卡片风险管理数据里,“静态”表明数据不能修改但是可以用取数据命令返回给终端。“动态”表明数据不能通过终端发命令修改,而且也不能返回给终端。 A.2.7 秘密数据 标明“秘密”的数据表示要在卡片中安全保存。终端或其它设备不能得到这些数据,而且也不能因为一些特殊情况而被修改。PIN可以通过由安全报文的命令PIN修改/解锁修改。 A.2.8 ADF或DDF数据 ADF或DDF列是数据是存在支付系统DDF还是ADF目录下。终端在应用选择阶段用读记录命令读出。 32 V1.0 中国金融集成电路(IC)卡应用规范 33 A.2.9 数据需求表 表格 A-2:数据需求 名称 标签 强制/有条件条件 备份需求 修改 取回 静态/动秘密数据 在ADF或DDF 其它 /可选 态 应用密文(AC) 9F26 R 生成应用密文 应用货币码 9F42 C 29 N 读记录 和9F51匹配 应用货币码 9F51 C 1,2或3 N 取数据(特殊设静态 和9F42匹配 备) 应用货币指数 9F44 C 1,2,3或 N 读记录 29 应用缺省行为(ADA) 9F52 C 19 静态 应用自定义数据 9F05 O N 读记录 应用生效日期 5F25 O N 读记录 应用失效日期 5F24 M N 读记录 应用文件定位器(AFL) 94 R N 取处理选项 应用标识符(AID) 4F R N 读记录 ADF 应用交互特征(AIP) 82 M N 取处理选项 应用标签 50 R* N 读记录 ADF 将来是强制 选择 应用首选名称 9F12 O N 读记录 ADF 选择 应用PAN 5A M N 读记录 应用PAN序列号 5F34 O N 读记录 应用优先指示位 87 C 20 N 读记录 ADF 选择 应用交易计数器(ATC) 9F36 R 备份 N 取数据 5,6 应用用途控制(AUC) 9F07 O N 读记录 应用版本号 9F08 M N 读记录 卡片风险管理数据对象列表8C M N 读记录 1(CDOL1) 卡片风险管理数据对象列表8D M N 读记录 2(CDOL2) 卡片验证结果(CVR) N 生成应用密文 9F10的一部分 持卡人姓名 5F20 R N 读记录 将来是C(9) 持卡人姓名扩展 9F0B O N 读记录 34 持卡人证件号 9F61 O N 读记录 持卡人证件类型 9F62 O N 读记录 持卡人验证方式(CVM)列表 8E R N 读记录 CA公钥索引 8F C 30或31 N 读记录 连续脱机交易计数器(国际- C 1 备份或缺省为N N 动态 货币) 9F53 连续脱机交易限制数(国际-9F53 C 1 设置取数据(特殊设 货币) 数据 备) 连续脱机交易计数器(国际- C 7 备份或缺省为N N 动态 国家) 9F72 连续脱机交易限制数(国际-9F72 C 7 设置取数据(特殊设 国家) 数据 备) 密文信息数据(CID) 9F27 R 生成应用密文 密文版本号 R N 生成应用密文 9F10的一部分 累计脱机交易金额 C 2 备份或缺省为N 9F54 累计脱机交易金额限制数 9F54 C 2 设置取数据(特殊设 数据 备) 累计脱机交易金额上限 9F5C O 2或3 设置取数据(特殊设 数据 备) 35 累计脱机交易金额(双货币 C 3 备份或缺省为N N 动态 ) 9F75 累计脱机交易金额限制数9F75 C 3 设置取数据(特殊设 (双货币) 数据 备) 货币转换因子 9F73 C 3 设置取数据(特殊设 数据 备) 数据认证码 9F45 O 读记录 93的一部分 数据加密DEA密钥 C 10 N N 秘密 专用(DF)文件名称 84 R N 选择 分散密钥索引 O N N 9F10的一部分 目录定义文件(DDF)名称 5D C 11 N 读记录 DDF 目录自定义模板 73 O N 读记录 ADF DDF 动态数据认证数据对象列表9F49 C 31 N 读记录 (DDOL) DDA失败指示位 C 31 备份或缺省为0 N N 动态 文件控制信息(FCI)发卡行BF0C O N 选择 自定义数据 FCI专有模板 A5 R N 选择 FCI模板 6F R N 选择 36 C 地域指示器 9F55 12 N 取数据(特殊设静态 备) ICC动态数据 C 31 内部认证 ICC动态数 9F4C C 31 内部认证 9F4B的一部分 IC卡公私钥数据 , 私钥 C 31 N N 秘密 , 公钥证书 9F47 C 31 N 读记录 , 公钥模数 9F46 C 31 N 读记录 , 公钥余数 9F48 C 15 N 读记录 发卡行行为代码-缺省 9F0D R* N 读记录 将来强制 发卡行行为代码-拒绝 9F0E R* N 读记录 将来强制 发卡行行为代码-联机 9F0F R* N 读记录 将来强制 发卡行应用数据 9F10 R N 生成应用密文 发卡行认证数据 91 O 19 发卡行认证失败指示位 C 19 备份或缺省为0N N 动态 或1 发卡行认证指示位 9F56 C 19 N 取数据(特殊设静态 备) 37 发卡行代码表索引 9F11 C 16 N 选择 发卡行国家代码 5F28 C 17 N 读记录 和9F57匹配 发卡行国家代码 9F57 C 7,12 N 取数据(特殊设静态 和5F28匹配 备) 发卡行公钥数据 , 发卡行公钥证书 90 C 30或31 N 读记录 , 发卡行公钥模数 9F32 C 30或31 N 读记录 , 发卡行公钥余数 92 C 15 N 读记录 发卡行脚本命令计数器 C 18 备份或缺省为0 N N 动态 发卡行脚本失败指示位 C 18 备份或缺省为0N N 动态 或1 发卡行脚本模板2 72 C 18 发卡行URL 9F50 O 选择 发卡行URL2 9F5A O 选择 首选语言 5F2D O 选择 上次联机ATC寄存器 9F13 C 4,5,6,8或备份或缺省为1 N 取数据 5,6或24 24 日志入口 9F4D O 选择应用 ADF 38 日志格式 9F4F O 取数据 连续脱机交易下限 9F14 C 5,6,24 备份 修改读记录 记录 连续脱机交易下限 9F58 C 4 备份 设置取数据(特殊设 数据 备) 报文鉴别码(MAC)DEA密钥 C 18和28 N N 秘密 联机授权指示位 R 缺省为1或备份 N N 动态 PIN尝试计数器 9F17 C 21 备份或缺省为限PIN修取数据 27 制数 改/解 锁 PIN尝试限制数 C 21 N N 秘密 处理选项数据对象列表9F38 C 22,12 选择 (PDOL) 脱机PIN C 21 备份 PIN修N 秘密 改/解 锁 响应报文模板格式1 80 R N N 第二应用货币代码 9F76 C 3 N 取数据(特殊设静态 备) 服务码 5F30 O N 读记录 39 短文件标识符(SFI) 88 N 选择 取处理选项 签名的动态应用数据 9F4B C 31 n/a 内部认证 签名的静态应用数据 93 C 30 N 读记录 SDA失败指示位 C 30 备份或缺省为0 N N 动态 静态数据认证标签列表 9F4A C (30或31) N 读记录 和32 磁条1自定义数据 9F1F R 修改读记录 未来可选 记录 25 磁条2等效数据 57 M 修改读记录 必须是SFI为1的 记录记录1 25 交易证书数据对象列表97 C 23 N 读记录 (TDOL) 唯一DEA密钥 R N N 秘密 连续脱机交易上限 9F23 C 5,6,24 备份 修改读记录 记录 连续脱机交易上限 9F59 C 8 备份 设置取数据(特殊设 数据 备) 40 V1.0 中国金融集成电路(IC)卡应用规范 41 A.2.10 数据需求表-条件号对应表 数据需求表中条件号对应的具体条件见下表 表格 A-3:条件号对应条件 条件号/码 描述 特殊设只能在指定设备上取回数据,普通金融交易过程中不执行 备 1 如果卡片执行连续脱机交易-国际货币频度检查 2 如果卡片执行累计金额频度检查 3 如果卡片执行累计金额(双货币)频度检查 4 如果卡片执行连续脱机交易下限频度检查 5 如果终端执行连续脱机交易下限频度检查 6 如果终端执行连续脱机交易上限频度检查 7 如果卡片执行连续脱机交易-国际国家频度检查 8 如果卡片执行连续脱机交易上限频度检查 9 如果磁条中有 10 如果支持修改参考PIN值或其它秘密数据 11 如果应用选择使用目录方式 12 如果应用初始化时支持地域限制检查 15 如果证书中的公钥不完整的剩余部分 16 如果有应用首选名称 17 如果有应用用途控制(AUC) 18 如果支持发卡行脚本 19 如果支持发卡行认证 20 如果卡片中有多个支付应用 21 如果支持脱机PIN 22 如果应用初始化时需要终端数据 23 如果要求预哈希 24 如果执行新卡检查 25 如果支持修改PVV 26 如果支持持卡人验证 27 如果显示“最后一次PIN机会” 28 如果支持安全报文 29 如果CVM列表中使用了金额 30 如果支持SDA 31 如果支持DDA 32 如果要签名基本数据对象 34 需要记录交易明细 B. 命令规范,描述卡片支持的命令 此附录中描述了各个章节中使用到的卡片命令。 , 应用锁定(APPLICATION BLOCK)(发卡行脚本命令) , 应用解锁(APPLICATION UNBLOCK)(发卡行脚本命令) , 卡片锁定(CARD BLOCK)(发卡行脚本命令) , 外部认证(EXTERNAL AUTHENTICATE) , 生成应用密文(GENERATE APPLICATION CRYPTGRAM (AC)) , 取数据(GET DATA) , 取处理选项(GET PROCESSING OPTIONS) , 内部认证(INTERNAL AUTHENTICATE) , PIN修改/解锁(PIN CHANGE/UNBLOCK)(发卡行脚本命令) , 设置数据(PUT DATA)(发卡行脚本命令) , 读记录(READ RECORD) , 选择(SELECT) , 修改记录(UPDATE RECORD)(发卡行脚本命令) , 校验(VERIFY) 上述命令可以在其它情况下使用,例如个人化卡片。 终端发送命令给卡片,卡片处理完毕后,返回命令响应给终端。每个命令包括的CLA,INS字节 42 标明了命令类型,参数字节P1,P2提供了处理信息。命令还可能包括一个数据域。 命令响应包括两个状态字节SW1和SW2,描述了命令运行结果。当命令执行成功,SW1和SW2等于“9000”,其它值说明命令执行错误。命令的响应中还可以包括响应数据。 B.1 发卡行脚本命令的基本处理原则 一些特殊功能的发卡行脚本命令要在非金融交易过程中,在发卡行控制的设备上发送给卡片,例如:APPLICATION UNBLOCK和PIN CHANGE/UNBLOCK。 发卡行脚本命令要求安全报文。报文验证码(MAC)用来验证命令来自有效的发卡行并且保证命令在传送过程中没有被修改。如果命令中包括秘密数据例如持卡人PIN,需要数据加密进行保护。 B.2 应用锁定(APPLICATION BLOCK)命令APDU B.2.1 定义和范围 APPLICATION BLOCK命令是使当前被选择的应用无效的一个发卡行脚本命令。 在成功的APPLICATION BLOCK命令之后: , 对SELECT命令,无效的应用应该返回状态字节“选择文件无效”(SW1 SW2='6283')。 , 对GENERATE AC命令,一个无效的应用应该返回AAC代替AC作为应答。 B.2.2 命令报文 APPLICATION BLOCK命令报文根据下表编码: 表格 B-1:APPLICATION BLOCK命令报文 编码 值 CLA ‘84’ INS ‘1E’ P1 ‘00’;其它值保留 P2 ‘00’;其它值保留 Lc 数据域字节长度 数据域 4字节MAC值 Le 不存在 B.2.3 命令报文的数据域 命令报文的数据域中包含了根据安全规范中描述的安全报文格式编码的MAC数据。 43 B.2.4 响应报文的数据域 响应报文没有数据域。 B.2.5 响应报文返回的处理状态 不论应用是否有效,'9000'编码总表示命令成功执行。 B.3 应用解锁(APPLICATION UNBLOCK)命令APDU B.3.1 定义和范围 APPLICATION UNBLOCK命令是一个发行行脚本命令,用来恢复当前被选择的应用。 当APPLICATION UNBLOCK命令成功之行后,此前通过应用锁定附加在该应用上的限制被解除。 B.3.2 命令报文 APPLICATION UNBLOCK命令报文通过下表编码。 表格 B-2:APPLICATION UNBLOCK命令报文 编码 值 CLA ‘84’ INS ‘18’ P1 ‘00’;其它值保留 P2 ‘00’;其它值保留 Lc 数据域字节长度 数据域 4字节MAC值 Le 不存在 B.3.3 命令报文的数据域 命令报文的数据域中包含了根据安全规范中描述的安全报文格式编码的MAC数据。 B.3.4 响应报文的数据域 响应报文中没有数据域。 B.3.5 响应报文返回的处理状态 不论应用是否有效,'9000'编码表示命令成功执行。 44 B.4 卡片锁定(CARD BLOCK)命令APDU B.4.1 定义和范围 CARD BLOCK命令是一个发行后命令,用来永久地停止IC卡中所有的应用。 CARD BLOCK命令停止 IC卡中所有的应用,包括那些被隐式选中的应用。 当一个CARD BLOCK命令成功后,所有随后的选择命令都将收到状态字节为'功能不支持'(SW1 SW2='6A81')的反馈,并且不执行任何其它动作。 B.4.2 命令报文 CARD BLOCK命令报文根据下表编码。 表格 B-3:CARD BLOCK命令报文 编码 值 CLA ‘84’ INS ‘16’ P1 ‘00’;其它值保留 P2 ‘00’;其它值保留 Lc 数据域字节长度 数据域 4字节MAC值 Le 不存在 B.4.3 命令报文的数据域 命令报文的数据域中包含了根据安全规范中描述的安全报文格式编码的MAC数据。 B.4.4 响应报文的数据域 响应报文没有数据域。 B.4.5 响应报文返回的处理状态 不论卡是否已经被锁,'9000'编码都表示命令成功执行。 B.5 外部认证(EXTERNAL AUTHENTICATE)命令APDU B.5.1 定义和范围 EXTERNAL AUTHENTICATE命令要求IC卡中的应用认证一个密码。 45 IC卡的应答应该包括该命令的处理状态。 一次交易中只执行最多一次外部认证命令。 B.5.2 命令报文 EXTERNAL AUTHENTICATE命令报文根据下表编码: 表格 B-4:EXTERNAL AUTHENTICATE命令报文 编码 值 CLA ‘00’ INS ‘82’ P1 ‘00’ P2 ‘00’ Lc 8,16 数据域 发卡行认证数据 Le 不存在 在EXTERNAL AUTHENTICATE命令中的引用算法(P1)值为„00?,表示该域无信息。对算法的引用 或者在使用本命令前就已经完成,或者在本命令的数据域中定义。 B.5.3 命令报文的数据域 按照EMV规范的规定,本命令报文的数据域包含标签为'91'的值域,编码如下: , 前8个字节为必选的授权响应密文ARPC。 , 附加的1-8个可选字节是专有数据。 在本版本中,发卡行认证数据包括下列两个数据元: , ARPC(8字节) , 授权响应码(2字节) B.5.4 响应报文的数据域 响应报文没有数据域。 B.5.5 响应报文返回的处理状态 “9000”编码表示命令成功执行。 46 如果验证失败,返回“6300”,如果在本次交易中卡片已经接收过外部认证命令,卡片返回“6985 ”。 B.6 生成应用密文(GENERATE AC)命令APDU B.6.1 定义和范围 GENERATE AC命令传送交易相关数据到IC卡,IC卡计算并且返回一个密文。这个密文是一个由本规范定义的应用密码( AC ),下表列出了密文类型。 表格 B-5:生成应用的密文类型 类型 意义 应用鉴定密文(AAC) 拒绝交易 授权请求密文(ARQC) 请求联机授权 交易证书(TC) 批准交易 由IC卡返回的密文可能由于IC卡的内部处理过程而与命令报文中要求的密文不一样。 B.6.2 命令报文 GENERATE AC命令报文根据下表编码: 表格 B-6:GENERATE AC命令报文 编码 值 CLA ‘80’ INS ‘AE’ P1 引用控制参数(见表B-7) P2 ‘00’ Lc Var. 数据域 交易相关数据 Le ‘00’ GENERATE AC命令中的引用控制参数根据下表编码 表格 B-7:GENERATE AC引用控制参数 b8 b7 B6 b5 b4 b3 b2 b1 意义 0 0 AAC 47 0 1 TC 1 0 ARQC 1 1 保留 0 未明确请求 复合动态数 据认证/应用 密码生成 1 请求复合动 态数据认证/ 应用密码生 成 x x x x x 保留 B.6.3 命令报文的数据域 命令报文的数据域是用来生成应用密文的终端数据,具体的数据内容在附录D中描述。 B.6.4 响应报文的数据域 密文的生成算法在附录D中描述。 响应报文的数据域包含一个BER-TLV编码的数据对象。这个数据对象需要按照以下两种格式之一编码。 格式1: 响应报文中的数据对象是一个标签为'80'的基本数据对象。数据域由如下表所示的数据对象连接而成,各数据对象之间没有分隔符(标签和长度)。 表格 B-8:GENERATE AC响应报文数据域格式1 值 存在性 密文信息数据 必备 应用交易序号(ATC) 必备 应用密码(AC) 必备 发卡行应用数据 可选 格式2: 响应报文的数据对象是一个标签为'77'的结构数据对象。数据域中可以包含多个BER-TLV编码对象,但是必须包括密码信息数据、应用交易序号和由IC卡计算出的密码(可以是应用密码或专有密码)。对于响应报文中可能包含的专有数据对象的应用和解释,不在本规范的范围之内。 如果响应报文是如本规范第10章,第15章及第17章定义的签名数据,对CDA的应答,则采用格式2。该应答数据单元格式参见安全规范第6.3.6.。 如果卡片不执行CDA,命令的响应报文数据域中的数据对象按照格式1编码。如果卡片执行CDA, 48 命令的响应报文数据域中的数据对象按照格式2编码。 以上两种格式中,在生成应用密码命令的响应报文中包括的密码数据按照下表的方式编码: 表格 B-9:密文信息数据编码 b8 b7 b6 b5 b4 b3 b2 b1 意义 0 0 AAC 0 1 TC 1 0 ARQC 1 1 AAR x x 支付系统密 码 0 未请求通知 1 请求通知 x x x 原因/通知/授 权参考码 0 0 0 无信息 0 0 1 不允许服务 0 1 0 PIN重试超限 0 1 1 发卡行鉴定 失败 x x x 其它值保留 B.6.5 响应报文返回的处理状态. '9000'编码表示命令成功执行。 一次交易卡片最多处理两个生成应用密文命令,如果收到三个及以上个数,卡片返回“6985”。 B.7 取数据(GET DATA)命令APDU B.7.1 定义和范围 B.7.1.1用GET DATA命令得到的数据 下面描述的是在非金融交易过程中在特殊设备上使用GET DATA命令访问到的数据和一个金融交易过程中,使用GET DATA命令访问数据。 49 , 特殊设备 , 下表列出的静态数据可以在发卡行控制的特殊设备上通过GET DATA命令访问。普通终 端不能用取数据命令获得。 表格 B-10:使用GET DATA命令访问的静态数据 数据元 应用货币代码 应用缺省行为 连续脱机交易限制数(国际-国家) 连续脱机交易限制数(国际-货币) 累计脱机交易金额限制数 累计脱机交易金额限制数(双货币) 累计脱机交易金额上限 货币转换因子 发卡行认证指示位 发卡行国家代码 连续脱机交易下限 连续脱机交易上限 第二应用货币代码 , 金融交易 GET DATA命令用来从当前应用中取得一个没有封装在记录中的基本数据对象。GET DATA命令可 以用来获取基本数据对象ATC(标签为'9F36')、上次联机ATC寄存器(标签为'9F13')或密码重试计数器(标 签为'9F17')、日志格式(标签为'9F4F')。 B.7.2 命令报文 GET DATA命令报文根据下表编码 : 表格 B-11:GET DATA命令报文 编码 值 CLA ‘80’ 50 INS ‘CA’ P1 P2 要访问数据的标签 Lc 不存在 数据域 不存在 Le ‘00’ B.7.3 命令报文的数据域 命令报文没有数据域。 B.7.4 响应报文的数据域 响应报文的数据域中包含有如命令报文的P1 P2所述的基本数据对象。(即包括它的标签和它的长 度)。 B.7.5 响应报文返回的处理状态 '9000'编码表示命令成功执行。 如果命令中请求的数据是专有数据不能返回,卡片返回“6A88”。 B.8 取处理选项(GET PROCESSING OPTIONS)命令APDU B.8.1 定义和范围 GET PROCESSING OPTIONS命令用来启动IC卡内的交易。 IC卡的响应报文中包含应用交互特征( AIP )和应用文件定位器( AFL )。 B.8.2 命令报文 GET PROCESSING OPTIONS命令报文根据下表编码 : 表格 B-12:GET PROCESSING OPTIONS命令报文 编码 值 CLA ‘80’ INS ‘A8’ P1 P2 ‘00’ Lc ‘00’ 数据域 PDOL相关数据(如果存在)或8300 51 Le ‘00’ B.8.3 命令报文的数据域 命令报文的数据域根据IC卡提供的处理选择数据对象列表(PDOL)编码。PDOL通过标签“83”标记。 当IC卡没有提供数据对象列表时,这个模板的长度域设置为0。否则,这个模板的数据长度域的值等于传输给IC卡的数据对象的值域的总长度。 B.8.4 响应报文的数据域 响应报文的数据域包含一个BER-TLV编码数据对象。 这个数据对象需要按照下列格式编码: 响应报文中的数据对象是一个标签为'80'的基本数据对象。数据域由如下表所示的应用交互特征(AIP)和应用文件定位器(AFL)的值域连接而成,各数据对象之间没有分隔符(标签和长度)。 表格 B-13:GET PROCESSING OPTIONS响应报文数据域格式 AFL ‘80’ 长度 应用交互特征 应用交互特征定义了可以被IC卡中的应用支持的功能。 AFL包括一个不含有分隔符的由文件与记录组成的列表。 B.8.5 响应报文返回的处理状态 '9000'编码表示命令成功执行。 B.9 内部认证(INTERNAL AUTHENTICATE)命令APDU B.9.1 定义和范围 INTERNAL AUTHENTICATE命令引发卡片使用从IFD收到的随机数、数据和卡片中储存的私钥来计算出„签名动态应用数据?的过程。 B.9.2 命令报文 INTERNAL AUTHENTICATE命令根据下表编码 : 表格 B-14:INTERNAL AUTHENTICATE命令报文 编码 值 CLA ‘00’ INS ‘88 52 P1 ‘00’ P2 ‘00’ Lc 认证相关数据长度 数据域 认证相关数据 Le ‘00’ 在INTERNAL AUTHENTICATE命令中的算法引用(P1)域值为„00?,这表示该值无意义。 对算法的引用应该或者在使用本命令前就已经完成,或者在本命令的数据域中定义。 B.9.3 命令报文的数据域 命令报文的数据域包括该应用专有的与认证有关的数据。它是根据本规范第二册中定义的动态数据认证数据对象列表(DDOL)规则来编码的。 为了确保INTERNAL AUTHENTICATE命令返回数据在256字节限制内,签名的动态应用数据加上可选的TLV格式编码的长度应该限制在本规范第二册安全部分中定义的范围内 B.9.4 响应报文的数据域 响应报文的数据域包括一个BER-TLV编码数据对象。这个数据对象的编码格式为: 响应报文中的数据对象是一个标签为'80'的基本数据对象。数据域中包括签名动态应用数据。签名动态应用数据按照安全规范中的规则定义。 B.9.5 响应报文返回的处理状态 '9000'编码表示命令成功执行。 B.10 PIN修改/解锁(PIN CHANGE/UNBLOCK)命令APDU B.10.1 定义和范围 PIN CHANGE/UNBLOCK命令是一个发卡行脚本命令。它的目的是让发卡行解锁PIN或同时既改变PIN也解锁PIN。 当PIN CHANGE/UNBLOCK命令成功后,卡片将执行下列功能: , PIN尝试记数器的值将复位到PIN尝试限制数(最大值)。 , 如果有请求,脱机PIN值将被设置为新的PIN值。 为了保密,如果本命令包含有PIN数据,则该数据应该加密。 注:脱机PIN是存储在卡中与应用相关的PIN,它用来验证在验证命令中传来的PIN数据。 B.10.2 命令报文 PIN CHANGE/UNBLOCK命令报文根据下表编码。 53 表格 B-15:PIN CHANGE/UNBLOCK命令报文 编码 值 CLA ‘84’ INS ‘24’ P1 ‘00’ P2 ‘00’、‘01’或‘02’ Lc 数据字节数 数据 加密PIN数据成员(如果存在)和MAC数据 Le 不存在 当P2为“00”,PIN尝试计数器复位。 当P2为“01”,PIN尝试计数器复位同时PIN修改,PIN修改时使用当前的PIN。 当P2为“02”,PIN尝试计数器复位同时PIN修改,PIN修改是不使用当前的PIN。 B.10.3 命令报文的数据域 本命令报文的数据域包括PIN加密数据,后面可以加上4到8字节的安全报文MAC数据。 如果 P2 等于„00?,参考PIN解锁,PIN尝试计数器被复位到PIN尝试限制数。命令数据域只包含 MAC。因为PIN修改/解锁命令中不包含新的PIN值,所以PIN不会更新。 P2等于„01?或„02?的值的处理步骤分别在B.10.1和B.10.2中描述。 B.10.3.1使用当前PIN修改PIN值 如果命令中的P2参数等于“01”,命令数据域包括PIN加密数据和MAC,PIN加密数据的产生过 程按照下列步骤进行: 1. 发卡行确定用来给数据进行加密的安全报文加密主密钥,并分散生成卡片的安全报文加密子密 钥:ENC UDK-A和ENC UDK-B。 2. 生成过程密钥Ks 3. 生成8字节PIN数据块D3: a) 生成一个8字节数据块D1: 字节1 字节2 字节3 字节4 字节5 字节6 字节7 字节8 0 0 0 0 0 0 0 0 ENC UDK-A的最右边4个字节 b) 生成第二个8字节数据块D2: 字节1 字节2 字节3 字节4 字节5 字节6 字节7 字节8 54 0 N P P P P P/F P/F P/F P/F P/F P/F P/F P/F F F N:新PIN的数字个数(16进制) P:新PIN值,长度4-12个数字(2-6字节) c) D1和D2执行异或得到D3 4. 使用当前PIN生成8字节数据块D4: 字节1 字节2 字节3 字节4 字节5 字节6 字节7 字节8 P P P P P/0 P/0 P/0 P/0 P/0 P/0 P/0 P/0 0 0 0 0 5. 将数据块D3和D4执行异或得到D。 6. 用Ks对D进行加密,得到PIN加密数据。 B.10.3.2 不使用当前PIN修改PIN值 如果命令中的P2参数等于“02”,命令数据域包括PIN加密数据和MAC,PIN加密数据的产生过 程按照下列步骤进行: 1. 发卡行确定用来给数据进行加密的安全报文加密主密钥,并分散生成卡片的安全报文加密子密 钥:ENC UDK-A和ENC UDK-B。 2. 生成过程密钥Ks 3. 生成8字节PIN数据块D3: a) 生成一个8字节数据块D1: 字节1 字节2 字节3 字节4 字节5 字节6 字节7 字节8 0 0 0 0 0 0 0 0 ENC UDK-A的最右边4个字节 b) 生成第二个8字节数据块D2: 字节1 字节2 字节3 字节4 字节5 字节6 字节7 字节8 0 N P P P P P/F P/F P/F P/F P/F P/F P/F P/F F F N:新PIN的数字个数(16进制) P:新PIN值,长度4-12个数字(2-6字节) c) D1和D2执行异或得到D 4. 用Ks对D进行加密,得到PIN加密数据。 B.10.4 响应报文的数据域 响应报文没有数据域。 55 B.10.5 响应报文返回的处理状态 „9000?编码表示命令成功执行。 B.11 设置数据(PUT DATA)命令APDU B.11.1 定义和范围 PUT DATA命令用来修改卡片中的一些基本数据对象的值。只有有标签的数据才能使用这条命令修 改。此命令不能用来修改结构数据对象。 B.11.1.1可以用PUT DATA命令修改的数据 下表列出的数据可以使用此命令修改。 表格 B-16:使用PUT DATA命令修改的数据 数据元 连续脱机交易限制数(国际-国家) 连续脱机交易限制数(国际-货币) 累计脱机交易金额限制数 累计脱机交易金额限制数(双货币) 累计脱机交易金额上限 货币转换因子 连续脱机交易下限(9F58) 连续脱机交易上限(9F59) B.11.2 命令报文 PUT DATA命令报文根据下表编码。 表格 B-17:PUT DATA命令报文 编码 值 CLA ‘04’ INS ‘DA’ P1 P2 要修改的数据对象的标签 56 Lc 数据域字节数 数据域 数据对象的新值(不包括标签和长度)和MAC 数据 Le 不存在 B.11.3 命令报文的数据域 命令数据域中包括的是要修改的数据对象的值,后面家一个4到8字节的MAC。MAC的计算见附 录C中描述。 B.11.4 响应报文的数据域 响应报文没有数据域。 B.11.5 响应报文返回的处理状态 „9000?编码表示命令成功执行。 下表列出了命令可能返回的警告信息: 表格 B-18:PUT DATA命令的警告响应码 SW2 SW1 含义 62 00 没有信息返回 62 81 数据可能被破坏 下表列出了命令可能返回的错误信息 表格 B-19:PUT DATA命令的错误响应码 SW1 含义 B.11.6SW2 64 00 没有准确诊断 65 81 内存失败 67 00 长度错误 68 82 不支持安全报文 69 82 安全状态不满足 69 86 命令不允许 69 87 安全报文数据对象丢失 69 88 安全报文数据对象不正确 57 6A 80 错误的参数 6A 81 功能不支持 6A 84 文件中没有足够空间 6A 85 Lc和TLV结构不一致 B.12 读记录(READ RECORD)命令APDU B.12.1 定义和范围 READ RECORD命令从一个线性文件中读一条文件记录。 从 IC卡返回的应答中将包含这条被读出的记录。 B.12.2 命令报文 READ RECORD命令报文根据下表编码: 表格 B-19:READ RECORD命令报文 编码 值 CLA ‘00’ INS ‘B2’ P1 记录号 P2 引用控制参数,见表B-20 Lc 不存在 数据域 不存在 Le ‘00’ 下表定义了命令报文的引用控制参数。 表格 B-20:READ RECORD命令引用控制参数 b8 B7 b6 b5 b4 b3 b2 b1 意义 x x x x x SFI 1 0 0 读P1指定记录 B.12.3 命令报文的数据域 命令报文中没有数据域。 58 B.12.4 响应报文的数据域 任何成功的READ RECORD命令的响应报文的数据域都包含读出的记录值。对于在1-10范围内的 SFI,这个记录是一个BER-TLV结构数据对象。它按照下表编码。 表格 B-21:READ RECORD响应报文数据域 ‘70’ 长度 记录模板 对于不在1-10范围内的SFI的读记录命令响应报文,不在本规范的描述范围内。 B.12.5 响应报文返回的处理状态 „9000?编码表示命令成功执行。 B.13 选择(SELECT)命令APDU B.13.1 定义和范围 SELECT命令通过文件名或AID来选择IC卡中的PSE、DDF或ADF。应用选择在本规范的第7章 中描述。 成功执行该命令设定PSE、DDF或ADF的路径。后续命令作用于与用SFI选定的PSE、DDF或 ADF相联系的AEF。 从IC卡返回的应答报文包含回送FCI。 B.13.2 命令报文 SELECT命令报文编码见下表: 表格 B-22:SELECT命令报文 代码 值 CLA ‘00’ INS ‘A4’ P1 引用控制参数(见表B-23) P2 选择选项(见表B-24) Lc ‘05’ - ‘10’ Data 文件名 Le ‘00’ 下表定义了SELECT命令报文的引用控制参数: 表格 B-23:SELECT命令引用控制参数 59 B8 b7 b6 b5 b4 b3 b2 b1 含义 0 0 0 0 0 1 通过名称选择 0 0 下表定义了SELECT命令报文的选择选项P2: 表格 B-24:SELECT命令的可选参数 b8 b7 b6 b5 b4 b3 b2 b1 含义 0 0 第一个有或仅有一个 1 0 下一个 B.13.3 命令报文数据域 命令报文数据域应包括所选择的PSE名、DF名或AID。 B.13.4 应答报文数据域 应答报文中数据域应包括所选择的PSE、DDF或ADF的FCI。表格 B-25、表格 B-26和表格 B-27 定义了本规范所应用的标识。对于本规范所不规定的FCI中回送的附加标签应该被忽略。 下表定义了成功选择PSE后回送的FCI: 表格 B-25:选择PSE的应答报文 (FCI) 标识 值 存在性 M ‘6F’ FCI模板 M DF名(1PAY.SYS.DDF01) ‘84’ M FCI数据专用模板 ‘A5’ M ‘88’ 目录基本文件的SFI O 语言选择 ‘5F2D’ O 发卡行代码表索引 ‘9F11’ O ‘BF0C’ 发卡行自定义数据(FCI) ‘XXXX’ 来自从应用提供商、发卡行或IC卡供应 O (第3册规定的商的1个或多个附加(专用)数据元。 标签) 下表定义了成功选择DDF后回送的FCI: 60 表格 B-26:选择DDF的应答报文 (FCI) 标签 值 存在性 M FCI模板 ‘6F’ M DF名 ‘84’ M ‘A5’ FCI数据专用模板 M 目录基本文件的SFI ‘88’ O 发卡行自定义数据(FCI) ‘BF0C’ ‘XXXX’ 来自从应用提供商、发卡行或IC卡供应商的1 O (第3册规定的标个或多个附加(专用)数据元。 识符) 下表定义了成功选择ADF后回送的FCI: 表格 B-27:选择ADF的应答报文 (FCI) 标签 值 存在性 M ‘6F’ FCI模板 M DF名 ‘84’ M FCI数据专用模板 ‘A5’ O ‘50’ 应用标签 O 应用优先指示符 ‘87’ PDOL O ‘9F38’ O 首选语言 ‘5F2D’ O 发卡行代码表索引 ‘9F11’ O ‘9F12’ 应用优先名称 O 发卡行自定义数据(FCI) ‘BF0C’ ‘XXXX’ 来自从应用提供商、发卡行或IC O 卡供应商的1个或多个附加(专(第3册规定的标识用)数据元。 符) O 日志入口 ‘9F4D’ 注意:对于多应用卡片,强烈建议在响应报文中包含“应用标签”数据元,使得在终端用“AID列表”方法进行应 用选择时,能方便持卡人选择/确认应用。 61 B.13.5 应答报文状态码 此命令执行成功的状态码是„9000?。 IC卡是否支持使用部分DF名进行DF文件选择不作强制规定。但是,如果IC卡支持部分名称选择,那么它应该遵守下列规则: 当一个DF成功选中后,终端重复发出选择(SELECT)命令,且P2设置为选择下一个文件的选项及使用相同的部分DF名时,卡片应该选中与部分DF名称匹配的不同的DF文件(如果这样的DF存在)。在没有应用层命令干扰的情况下重复发出相同的选择(SELECT)命令,卡片应该可以找到所有满足条件的DF文件,且每个文件不会被找到两次。当所有满足条件的DF都被选择后,再发出同样的选择(SELECT)命令,应该得到没有文件被选择的结果,卡片应该响应SW1SW2=„6A82?(文件未找到)。 B.14 修改记录(UPDATE RECORD)命令APDU B.14.1 定义和范围 UPDATE RECORD命令用来修改文件中一条记录的内容,修改的内容在命令数据域中。 B.14.2 命令报文 UPDATE RECORD命令报文编码见下表: 表格 B-28:UPDATE RECORD命令报文 代码 值 CLA ‘04’ INS ‘DC’ P1 记录号 P2 引用控制参数,见表B-29 Lc 记录数据加MAC的长度 Data 记录数据和MAC Le 不存在 下表定义了命令报文的引用控制参数。 表格 B-29:UPDATE RECORD命令引用控制参数 b8 B7 b6 b5 b4 b3 b2 b1 意义 x X x x x SFI 1 0 0 P1为记录号 62 B.14.3 命令报文的数据域 数据域中是要修改的新记录内容。MAC长度为4到8字节。算法见附录C。 B.14.4 响应报文的数据域 响应报文没有数据域。 B.14.5 响应报文返回的处理状态 „9000?编码表示命令成功执行。 下表列出了命令可能返回的警告信息: 表格 B-30:UPDATE RECORD命令的警告响应码 SW1 SW2 含义 62 00 没有信息返回 62 81 数据可能被破坏 下表列出了命令可能返回的错误信息 表格 B-31:UPDATE RECORD命令的错误响应码 SW1 SW2 含义 64 00 没有准确诊断 65 81 内存失败 67 00 长度错误 68 82 不支持安全报文 69 81 命令与文件结构不匹配 69 82 安全状态不满足 69 86 命令不允许 69 87 安全报文数据对象丢失 69 88 安全报文数据对象不正确 6A 81 功能不支持 6A 82 文件没找到 6A 83 记录没找到 6A 84 文件中没有足够空间 63 6A 85 Lc和TLV结构不一致 B.15 校验(VERIFY)命令APDU B.15.1 定义和范围 VERIFY命令引发IC卡将命令报文数据域内的交易PIN数据和与该应用相关的参考PIN数据进行 比较验证。验证方式由IC卡中的应用自行决定。如本规范第12章所述,当从CVM列表中选择的持卡 人验证方式(CVM)是脱机PIN时,使用VERIFY命令。 B.15.2 命令报文 VERIFY命令报文根据下表编码: 表格 B-32:VERIFY命令报文 编码 值 CLA ‘00’ INS ‘20 P1 ‘00’ P2 参考数据定义 Lc var. 数据 交易PIN数据 Le 不存在 下表定义了参考数据(P2)的意义. 表格 B-33:VERIFY命令参考数据定义(P2) b8 b7 B6 b5 b4 b3 b2 b1 意义 10 0 0 0 0 0 0 0 IOS/IEC 7816-4定义 1 0 0 0 0 0 0 0 明文PIN,格式如下 1 0 0 0 0 x x x 本规范保留 1 0 0 0 1 0 0 0 EMV保留 1 0 0 0 1 0 x x 本规范保留 1 本规范未采用P2= ‘00’。 64 1 0 0 0 1 1 x x 支付系统保留 1 0 0 1 x x x x 发卡行保留 对于IC卡内的VERIFY命令的处理在本规范第8章中与CVM规则一起介绍。 明文脱机PIN 数据块按如下格式组织。 C N P P P P P/F P/F P/F P/F P/F P/F P/F P/F F F 其中 名称 值 C 控制域 值为0010的四位二进制数(hex. 2) N PIN长度 值在0010到1100之间的4位二进制数(hex. ‘4’到 ‘C’) P PIN数字 值在0000到1001之间的4位二进制数(hex. ‘0’到 ‘9’) P/F PIN/填充位 由PIN长度决定 F 填充位 值为1111的四位二进制数(hex. ‘F’) P2=„00?表示没有使用特别的限定符。IC卡中处理验证命令的应用应该知道怎样明白无误的找到PIN数据。 B.15.3 命令报文的数据域 命令报文的数据域中包含标签„99?的值域。 B.15.4 响应报文的数据域 响应报文中没有数据域。 B.15.5 响应报文中的处理状态 „9000?编码表示命令成功执行。 如果对当前选择的应用, 通过验证命令对交易PIN数据和参考PIN数据进行的比较失败了,IC卡会返回SW2=„Cx?, „x?代表还可以重新验证的次数;如果IC卡返回了„C0?,意味着不能再验证了,CVM会被锁死。 随后,在这个应用中进行的所有验证命令都会失败,并返回SW1 SW2=„6983?。 C. 安全报文 本部分描述了发卡行脚本命令中如何使用安全报文。 安全报文的基本目的是确保数据的机密性,报文完整性和进行发卡行认证。报文完整性和发卡行认证通过MAC实现。数据保密通过加密命令明文数据实现。 C.1 安全报文格式 在本规范中的描述的安全报文个是符合ISO7816-4标准。当命令中CLA字节的低半字节为4,命 65 令使用安全报文格式。 C.2 报文完整性和认证(MACing) 报文鉴别码(MAC)使用命令中所有的数据元包括命令头生成。命令的完整性包括命令中的数据域部分(如果存在)使用安全报文来保证。 C.2.1 MAC位置 MAC是命令数据域中最后的数据元。 C.2.2 MAC长度 PBOC规定MAC长度为4字节。 C.2.3 MAC密钥生成 在处理安全报文时使用MAC密钥过程密钥。过程密钥的生成见“C.4生成过程密钥”。MAC过程密钥由卡片中的安全报文认证(MAC)密钥(MAC UDK)生成。 C.2.4 MAC计算 命令中需要加密的数据加密以后再计算MAC。MAC使用对称密钥算法计算的,步骤如下: 1. 初始值为8字节全零。(此步骤可省略) 2. 下列数据按顺序排列得到一个数据块D: - CLA,INS,P1,P2,Lc(Lc的长度包括MAC的长度) - ATC(对于发卡行脚本处理,此ATC在请求中报文中上送) - 应用密文(对于发卡行脚本处理,此应用密文通常是ARQC,或AAC,在请求报文中上 送) - 命令数据域中的明文或密文数据(如果存在) 3. 将上述数据块D分成8字节长的数据块D1,D2,D3…最后一块数据块的字节长度为1到8。 4. 如果最后一块数据块的长度为8字节,后面补8字节数据块:80 00 00 00 00 00 00 00,执行步 骤5。 如果最后一块数据块的长度小于8字节,后面补一个字节80,如果长度到8字节,执行步骤5 。如果仍然不够8字节,补00直到8字节。 5. 用MAC过程密钥对数据块进行加密。MAC过程密钥的生成见“C.4过程密钥生成”。 图表 C-1是使用MAC过程密钥A和B生成MAC的流程图。 6. MAC的计算结果为8字节,从最左边的字节开始取4字节。 66 图表 C-1:使用双长度DEA密钥计算MAC的算法 初始值I2I3I4I5 KMDEA(d)B+KMADEA(e)KMADEA(e)KMADEA(e)KMADEA(e) O5 I1=D1O1O2O3O4 KMDEA(e)A+++ O6 D2D3D4 MAC说明: I = 输入D = 数据块 DEA(e)= 数据加密算法(加密模式)KMA = MAC过程密钥A DEA(d)= 数据加密算法(解密模式)KMB = MAC过程密钥B O = 输出+ = 异或 C.3 数据加密 数据加密用来确保命令中的关键数据的机密性。 C.3.1 数据加密密钥计算 在处理安全报文时使用安全报文加密过程密钥。过程密钥的生成见“C.4生成过程密钥”。数据加密过程密钥由卡片中的安全报文加密密钥(ENC UDK)生成。 C.3.2 加密数据的结构 当命令中的明文数据需要加密时,首先要建立一个数据块,步骤如下: , 数据明文的长度Ld(不包括补充字节长度) , 数据明文 , 补充字节(“C.3.3数据加密计算”中描述) 67 然后对整个数据块进行加密。 C.3.3 数据加密计算 数据加密在MAC计算之前进行。步骤如下: 1. 设Ld为明文数据的长度。 2. 将数据C.3.2中得到的数据块分成8字节一组:D1,D2,D3…最后一组的长度为1到8字节 。 3. 如果最后一组数据块长度等于8,执行步骤4。如果长度小于8,在后面补80,如果长度到8 字节,执行步骤4。如果仍然不够8字节,补00直到8字节。 4. 每个数据块使用数据加密过程密钥加密。过程密钥的生成见“C.4生成过程密钥”。 下图是使用数据加密过程密钥A和B对数据块加密的流程。 图表 C-2:用双长度DEA密钥进行数据加密 DN KDAKDB DEA(e)DEA(d) O1O2 KDA DEA(e) 加密的DN说明: DEA(e)= 数据加密算法(加密模式)D = 数据块 DEA(d)= 数据加密算法(解密模式)KMA = MAC过程密钥A O = 输出KMB = MAC过程密钥B 5. 结束后,所有的加密后的数据块顺序连接(加密的D1,加密的D2,加密的D3…)就是命令 数据域中的最终数据。 68 C.3.4 数据解密计算 收到命令后,卡片要把命令数据域中的加密数据进行解密,步骤如下: 1. 将命令数据中的数据分成8字节一组:D1,D2,D3…每个数据组用数据加密过程密钥解密。 下图是使用数据加密过程密钥A和B对数据块进行解密的流程。 图表 C-3:使用双长度DEA密钥进行数据解密 DN KDAKDB DEA(d)DEA(e) O1O2 KDA DEA(d) 解密的DN说明: DEA(e)= 数据加密算法(加密模式)D = 数据块 DEA(d)= 数据加密算法(解密模式)KMA = MAC过程密钥AO = 输出KMB = MAC过程密钥B 2. 结束后,所有的解密后的数据块顺序连接(解密的D1,解密的D2,解密的D3…)就是命令 数据域中的Ld,数据明文和补充字节。 3. Ld表明了数据的真实长度。 C.4 生成过程密钥 本部分描述了过程密钥的生成方法。步骤如下: 1. 生成过程密钥的卡片密钥是:MAC DEA密钥A和B(MAC UDK),数据加密DEA密钥A和 B(ENC UDK)。 2. 将两字节的ATC右对齐,前面补6个字节00…(详细内容参考安全规范) 69 3. 将两字节的ATC取反后右对齐,前面补6个字节00…(详细内容参考安全规范) C.5 命令中的安全报文 D. 认证密钥和算法 本附录描述了和生成应用密文相关的密钥和算法。 D.1 数据源 发卡行要决定生成应用密钥的数据源。 下表列出了生成应用密文的数据顺序。 表格 D-1:TC/AAC/ARQC数据元顺序 数据元 来自终端的数据 在交易证书(TC)卡片内数据 哈希中的顺序 , , 授权金额 , , 其它金额 , , 终端国家代码 , , 终端验证结果 , , 交易货币代码 , , 交易日期 , , 交易类型 , , 不可预知数 , 应用交互特征(AIP) , 应用交易计数器(ATC) , 卡片验证结果(CVR) D.2 生成TC,AAC和ARQC 密文生成的步骤如下: 1. 终端将CDOL中指定的终端数据通过生成应用密文命令传送给卡片。如果CDOL中有要交易 证书(TC)哈希结果。终端要将此数据放到命令数据域中。 2. 根据卡片风向管理的结果,卡片决定返回的密文类型为TC、AAC或ARQC。生成密文的数据 70 块: - 交易证书(TC)哈希结果(如果存在) - 生成应用密文命令中送进卡片的数据。不包括TC哈希结果 - 卡片内部数据 3. 将上述数据块分成8字节一组:D1,D2,D3… 4. 如果最后一块数据块的长度为8字节,后面补8字节数据块:80 00 00 00 00 00 00 00。 如果最后一块数据块的长度小于8字节,后面补一个字节80,如果仍然不够8字节,补00直 到8字节。 5. 使用过程密钥用对称密钥算法生成应用密文。 6. 过程密钥是由卡片中唯一分散密钥(UDK)生成,具体生成方法在C.4中。下图是使用过程密 钥A和B生成应用密文的流程。 I1=D1I2I3I4I5 KBDEA(d)KADEA(e)KADEA(e)KADEA(e)KADEA(e)KADEA(e) 06 O1O2O3O4O5 KADEA(e) ++++ O7 D2D3D4D5 TC/AAC/ARQC说明: I = 输入 D = 数据块 DEA(e)= 数据加密算法(加密模式)KA = 密钥A DEA(d)= 数据加密算法(解密模式)KB = 密钥B O = 输出 + = 异或 图表 D-1:TC/AAC/ARQC的生成算法。 71 D.3 生成授权响应密文ARPC 卡片在收到外部认证命令时,生成一个ARPC和命令中传送进来的ARPC进行比较。生成ARPC的步骤如下: 1. 将应用密文和授权响应码进行异或。 应用密文包括在上传的请求报文中,通常是ARQC,在一些特殊情况下是AAC。 授权响应码是在外部认证命令中送入卡片的。在执行异或前左对齐后面补6个字节00。 2. 异或的结果是一个8字节的数据块D1。 3. 使用过程密要用对称密钥算法计算ARPC。下图是ARPC的生成方法。 72 I1=D1 KADEA(e) O1 KBDEA(d) O2 KBDEA(e) O3 说明: I = 输入 D = 数据块 DEA(e)= 数据加密算法(加密模式)KA = 密钥ADEA(d)= 数据加密算法(解密模式)KB = 密钥B O = 输出 图表 D-2:生成ARPC的算法 D.4 密钥分散方法 本部分描述了密钥分散的方法。卡片中的唯一DEA密钥是在卡片个人化时,从主密钥MDK分散 生成的。 73 下图是唯一DEA密钥A和B的生成流程。 发卡行主机安全模 块发卡行生成双长度主分散 密钥(MDK)MDK个人化时,发卡行为每张PAN和PAN序列号IC卡省成唯一DEA密钥 A(UDKA)和唯一DEA密钥DEAB(UDKB)(加密MDK解密 加密)UDKA使用应用主账号和主 账号序列号,执行3DES计 算生成 UDKA 取反的UDKB使用取反的应用主账AN和PAN序列号号和主账号序列号,执行 3DES计算生成DEA (加密 解密 加密) UDKB 图表 D-3:密钥分散 应用主账号(PAN)和应用主账号序列号用来组成一个8字节(16个数字)长的数据块D1,用来 生成分散的唯一DEA密钥A。如果应用主账号序列号不存在,用一个字节00代替。如果应用主账号和 应用主账号序列号的长度不等于16个数字: , 如果长度小于16个数字,右对齐,前面补0 , 如果长度大于16个数字,取最右边16个数字 上述数据块D2取反,用来生成分散的唯一DEA密钥B。 下图是卡片使用唯一DEA密钥A和B(UDKA和UDKB)进行卡片认证的过程。 74 1 终端发送和交易IC卡数据相关的数据给卡片 22 IC卡使用UDK加1 数据DEAUDKs密数据生成ARQC返ARQC 回给终端 终端ARQC3 终端将ARQC和相PAN和PAN序列关数据上送到发卡号行做认证3 数授权响应据,ARQCDEAMDKs4 发卡行用MDK重发卡行数据新分散UDKs,校验 ARQC UDKs终端 ARQC 图表 D-4:使用UDK执行卡片认证 如图所示,主机安全模块要得到分散的UDK验证ARQC E. 支持的密文版本 PBOC定义的密文版本为01(0x01)。 下表列出的是生成TC/AAC和ARQC的数据元和顺序。 表格 E-1:生成TC/AAC和ARQC的数据 数据元 来自终端的数据 卡片内数据 , 授权金额 , 其它金额 , 终端国家代码 , 终端验证结果 , 交易货币代码 , 交易日期 , 交易类型 , 不可预知数 , 应用交互特征(AIP) 75 , 应用交易计数器(ATC) , 卡片验证结果(CVR) 密文版本01使用安全规范中定义的对称密钥算法计算应用密文。 F. 算法标识 发卡行自定义数据元中由一个PBOC自定义数据:算法标识。此数据定义了卡片计算应用密文和安全报文采用的算法。长度为1个字节。取值情况为: 表格 F-1:算法标识 算法 值(16进制) 3DES 01 SSF33 02 76
/
本文档为【中国金融集成电路(IC)卡借记贷记规范v2-卡片部分】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索