GP-卡规范V2.1.1解读

明宇科技BRIGHTERGP卡的开发规范说明书中文译本V2.1.1(2003.03)北京明宇科技有限公司错误!未指定书签GP卡的开发规范说明书 V2.1.1修改记录日期修改者修改内容2003-12-07平庆瑞杨向军初次做成2003-12-10杨向军修改附录“ E.1.2.2•隐式安全通道的初始化”中的相关内容,使表达更 清楚2003-12-12杨向军修改原文中的笔误及表达不明确的一些文字2003-12-22王玉忠元成9章中内容2004-03-11魏凯明全文校订明宇科技BRIGHTERGP卡的开发规范说明书 V2.1.1目录1. 介绍 22. 系统架构 103. 卡的架构 113.1. 运行时环境 113.2. 卡的管理者(Card Manager) 123.2.1. GlobalPlatform 运行时环境(OPEN) 123.2.2. 发行者安全域 123.2.3. 卡持有者的校验方法 133.3. 安全域(Secure Domains) 133.4. GP 的 API ( Open Platform API) 133.5. 卡的内容 134. 安全架构 154.1. 目标 154.2. 安全职责 154.2.1. 卡发行者(Card Issuer) 154.2.2. 应用提供者( Application Provider) 164.2.3. 控制授权中心机构(Controlling Authority ) 164.2.4. 卡上组件的安全要求 164.2.4.1. 对运行时环境的安全要求 164.2.4.2. 对OPEN的安全要求 174.2.4.3. 对发行者安全域的安全要求 174.2.4.4. 对CVM 处理者的安全要求 174.2.4.5. 对安全域的安全要求 174.2.4.6. 对应用的安全要求 184.2.5. 后台系统的安全要求 184.3. 加密支持 184.3.1. 卡内容的完整性校验和数据鉴别 184.3.1.1. 装载文件数据块 HASH 184.3.1.2. 装载文件数据块签名 194.3.1.3. 委托管理令牌 194.3.1.4. 收条 194.3.2. 安全通讯 195. 生命周期模型 215.1. 卡的生命周期 215.1.1. 卡生命周期的状态 215.1.1.1. OP_READY 状态 215.1.1.2. INITIALIZED 状态 225.1.1.3. SECURED 状态 225.1.1.4. CARD_LOCKED 状态 225.1.1.5. TERMINA TED 状态 225.1.2. 卡生命周期状态的迁移 235.2. 可执行装载文件的生命周期( Excutable Load File Life Cycle ) 24GP卡的开发规范说明书 V2.1.15.2.1. 可执行装载文件的生命周期 255.2.1.1. LOADED 状态 255.2.1.2. 可执行装载文件的删除 255.2.2. 可执行模块的生命周期 255.3. 卡内应用和安全域的生命周期 255.3.1. 卡内应用的生命周期状态 265.3.1.1. INSTALLED 状态 265.3.1.2. SELECTBLE 状态 265.3.1.3. LOCKED 状态 265.3.1.4. 应用的删除 275.3.1.5. 应用特定生命周期状态 275.3.2. 安全域的生命周期状态 285.3.2.1. INSTALL 状态 285.3.2.2. SELECTABLE 状态 285.3.2.3. PERSONALIZED 状态 285.3.24 LOCKED 状态 285.3.2.5. 安全域的删除 295.4. 卡的生命周期和 AP生命周期状态的演示 306. 卡的管理者(CM) 326.1. 概述 326.1.1. OPEN 326.1.2. 发行者安全域 336.1.3. CVM 处理者 346.2. CM的服务 346.2.1. 应用访问 OPEN服务 346.2.2. 应用访问 CVM 服务 346.2.3. 应用访问发行者安全域的服务 356.2.4. 发行者域访问应用服务 356.4. 卡内容的管理 416.4.1. 卡内容的装载和安装 416.4.1.1. 卡内容的装载 426.4.1.2. 卡内容的安装 436.4.2. 内容的移除 456.4.2.1. 应用的移除 456.4.2.2. 可执行装载文件的移除 466.4.2.3. 可执行装载文件和相关应用的移除 476.4.3. 内容的移交(con text Extraditi on ) 486.5. 委托管理 486.6. GP的注册表 496.6.1. 发行者域数据元素的描述 496.6.1.1. 发行者安全域的 AID 506.6.1.2. 卡的生命周期状态 506.6.2. 应用/可执行装载文件/可执行模块的数据元素的描述 506.6.2.1. 应用/可执行装载文件/可执行模块的 AID 50GP卡的开发规范说明书 V2.1.16622 应用/可执行装载文件/可执行模块的生命周期 506.6.23 资源分配 506.6.2.4. 应用的权限 516.6.2.5. 相关联安全域的 AID 526.7. 安全管理 526.7.1. 应用的锁定 536.7.2. 卡的锁定 546.7.3. 卡的终止 556.7.4. 操作频率的检查 566.7.4.1. 卡内容的装载和安装时的频率检查 566.7.4.2. 异常操作频率检查 566.7.5. 跟踪和事件的记载 576.7.6. 安全内容的装载和安装 576.7.6.1. 装载文件的数据块 HASH值 576.7.6.2. 令牌 576.7.6.3. 装载文件数据块的签名 576.8. 发行者安全域 586.8.1. 发行者的标识号 586.8.2. 卡的 Image 号 586.8.3. 卡的识别数据 596.8.4. 卡上的密钥信息 597. 安全域 637.1. 概述 637.2. 安全域服务 647.2.1. 访问安全域服务的应用 647.2.2. 访问应用的安全域 657.3. 个人化支持 657.4. 运行时消息支持 667.5. DAP 验证 677.6. 代理管理 687.6.1. 代理下载 687.6.2. 代理安装 697.6.3. 代理移交 707.6.4. 代理删除 717.7. 代理管理令牌、收条及 DAP验证 727.7.1. 下载令牌 727.7.2. 下载收条 737.7.3. 安装、移交令牌 737.7.4. 安装收条 737.7.5. 移交收条 747.7.6. 删除收条 747.7.7. 下载文件数据块 hash 757.7.8. 下载文件数据块签名 (DAP验证) 758. 安全通讯 76GP卡的开发规范说明书 V2.1.18.1. 安全通道 768.2. 显式/隐式的安全通道 768.2.1. 显式安全通道初始化 768.2.2. 隐式安全通道初始化 778.2.3. 安全通道结束 778.3. 直接/间接处理安全通道协议 778.4. 实体认证 778.5. 安全消息传输 778.6. 安全通道协议标识 789. APDU命令参考 809.1. 总的编码规则 819.1.1. 生命周期状态的编码 819.1.2. 应用的权限编码 829.1.3. 一般性的错误情形 839.1.4. CLASS 字节编码 849.1.5. APDU命令和响应数据 849.1.6. 密钥类型编码 849.1.7. 在委托管理的响应消息中的收条信息(可选) 859.2. DELETE 命令 869.2.1. 定义和范围 869.2.2. 命令消息 869.2.2.1. 引用控制参数 P1 869.2.2.2. 引用控制参数 P2 869.2.2.3. 命令消息中发送的数据字段 869.2.3. 响应消息 879.2.3.1. 在响应消息中返回的数据字段 879.2.3.2. 在响应消息中返回的处理状态 879.3. GET DATA 命令 889.3.1. 定义和范围 889.3.2. 命令消息 889.3.2.1. CLA 字节 889.3.2.2. 参数 P1 和 P2 889.3.2.3. 在命令消息中发送的数据字段 899.3.3. 响应消息 899.3.3.1. 在响应消息中返回的数据字段 899.3.3.2. 在响应消息中返回的处理状态 909.4. GET STATUS 命令 909.4.1. 定义和范围 909.4.2. 命令消息 909.4.2.1. 引用控制参数 P1 919.4.2.2. 引用控制参数 P2 919.4.2.3. 命令消息中发送的数据字段 929.4.3. 响应消息 929.4.3.1. 在响应消息中返回的数据字段 92GP卡的开发规范说明书 V2.1.19432 在响应消息中返回的处理状态 939.5. INSTALL 命令 949.5.1. 定义和范围 949.5.2. 命令消息 949.5.2.1. 引用控制参数 P1 949.5.22 引用控制参数 P2 959.5.2.3. 命令消息中发送的数据字段 959.5.3. 响应消息 989.5.3.1. 在响应消息中返回的数据字段 989.5.3.2. 在响应消息中返回的处理状态 999.6. LOAD 命令 999.6.1. 定义和范围 999.6.2. 命令消息 999.6.2.1. 引用控制参数 P1 1009.6.2.2. 引用控制参数 P2-块号 1009.6.2.3. 命令消息中发送的数据字段 1009.6.3. 响应消息 1019.6.3.1. 在响应消息中返回的数据字段 1019.6.3.2. 在响应消息中返回的处理状态 1019.7. MANAGE CHANNEL 命令 1029.7.1. 定义和范围 1029.7.2. 命令消息 1029.7.2.1. 引用控制参数 P1 1029.7.2.2. 引用控制参数 P2 1029.7.2.3. 命令消息中发送的数据字段 1039.7.3. 响应消息 1039.7.3.1. 在响应消息中返回的数据字段 1039.7.3.2. 在响应消息中返回的处理状态 1039.8. PUT KEY 命令 1039.8.1. 定义和范围 1039.8.2. 命令消息 1049.8.2.1. 引用控制参数 P1 1049.8.2.2. 引用控制参数 P2 1049.8.2.3. 命令消息中发送的数据字段 1059.8.3. 响应消息 1069.8.3.1. 在响应消息中返回的数据字段 1069.8.3.2. 在响应消息中返回的处理状态 1079.9. SELECT 命令 1079.9.1. 定义和范围 1079.9.2. 命令消息 1079.9.2.1. 引用控制参数 P1 1089.9.2.2. 引用控制参数 P2 1089.9.2.3. 命令消息中发送的数据字段 1089.9.3. 响应消息 108GP卡的开发规范说明书 V2.1.19.9.3.1. 在响应消息中返回的数据字段 1089932 在响应消息中返回的处理状态 1099.10. SET STATUS 命令 1099.10.1. 定义和范围 1099.10.2. 命令消息 1099.10.2.1. 引用控制参数P1-状态类型 1109.10.2.2. 引用控制参数 P2-状态控制 1109.10.2.3. 命令消息中发送的数据字段 1119.10.3. 响应消息 1119.10.3.1. 在响应消息中返回的数据字段 1119.10.3.2. 在响应消息中返回的处理状态 1119.11. STORE DATA 命令 1119.11.1. 定义和范围 1119.11.2. 命令消息 1119.11.2.1. 引用控制参数 P1 1129.11.2.2. 引用控制参数 P2 1139.11.2.3. 命令消息中发送的数据字段 1139.11.3. 响应消息 1149.11.3.1. 在响应消息中返回的数据字段 1149.11.3.2. 在响应消息中返回的处理状态 114A. GP 的 API 116A. 1. 不赞成的 Open Platform Java 卡 API 116A. 2. GP 在 JAVA 卡上 116A. 2.1. GP特定的要求 116A. 2.1.1. GlobalPlatform 包的 AID 116A. 2.1.2.安装 116A. 2.1.3. T=0 传输协议 117A. 2.1.4. 原子操作 118A. 2.1.5. 逻辑通道 118A. 2.1.6. 加密算法 118A. 2.1.7. 信任级别 118A. 2.1.8. GlobalPlatform 方法的调用 118A. 2.2.类的层次 119A.2.2.1. 接口 org.globalplatform.Application 119A.2.2.2. 接口 org.globalplatform.SecureChannel 120A.2.2.3. 类 org.globalplatform.GPSystem 127A. 2.2.4. 接口 org.globalplatform.CVM 131A. 3. GP 在 windows Powered 智能卡 136B. 算法(加密和 HASH) 138B. 1.数据加密标准(DES) 138B. 1.1.加密/解密 138B. 1.1.1. CBC 模式 138B. 1.1.2. ECB 模式 138B. 1.2. MAC 138GP卡的开发规范说明书 V2.1.1B. 1.2.1. 完整的 TDES MAC 138B. 1.2.2. Single DES 力口上最终的 TDES MAC 138B. 2. HASH 算法 139B. 2.1.安全 HASH 算法(SHA-1 ) 139B. 3.公钥加密方案 1 (PKCS#1 ) 139B. 4. DES数据填充 139C. 安全内容管理 141C. 1.密钥 141C. 1.1.发行者安全域密钥 141C. 1.1.1. 令牌密钥 141C. 1.1.2. 收条密钥 141C. 1.2.安全域密钥 141C. 2.下载文件数据块 Hash 142C. 3.令牌 142C. 3.1.下载令牌 142C. 3.2.安装令牌 143C. 3.3. Extradition Token 145C. 4.收条 145C. 4.1.下载收条 146C. 4.2.安装收条 146C. 4.3.删除收条 147C. 4.4.移交收条 148C. 5. DAP 验证 148C. 5.1. PKC 方案 149C. 5.2. DES 方案 149D. 安全通道协议’01' 150D. 1.安全通讯 150D. 1.1. SCP01 安全通道 150D. 1.2.相互认证 150D. 1.3.消息的完整性 152D. 1.4.消息数据的机密性 152D. 1.5. ICV 的加密 152D. 1.6.安全级别 152D. 2.加密密钥 153D. 3.加密用法 154D. 3.1. DES 会话密钥 154D. 3.2.鉴另U密码(Authenticated Cryptogram) 156D. 3.2.1. 卡的鉴另【J密码(Card cryptogram ) 156D. 3.2.2.主机端鉴别密码(host cryptogram ) 156D. 3.3. MAC 生成和 MAC 校验的APDU指令 156D. 3.4. APDU 命令的加密和解密 157D. 3.5.关键敏感数据的加密和解密 158D. 4.安全通道的 APDU 命令 159D. 4.1. INITIALIZE UPDATE 命令 159GP卡的开发规范说明书 V2.1.1D.4.1.1. 定义和范围 159D.4.1.2. 命令消息 160D.4.1.3. 引用控制参数 P1――密钥版本号 160D.4.1.4. 引用控制参数P2——密钥标识 160D.4.1.5. 命令消息中要传送的数据段 160D.4.1.6. 响应消息 160D.4.1.7. 在响应消息中返回的执行状态 161D. 4.2. EXTERNAL AUTHENTICATION 命令 161D.4.2.1. 定义和范围 161D.4.2.2. 命令消息 161D.4.2.3. 引用控制参数 P1——安全级别 162D.4.2.4. 引用控制参数 P2 162D.4.2.5. 命令消息中要传送的数据段 162D.4.2.6. 响应消息返回的数据段 162D. 4.2.7. 在响应消息中返回的执行状态 162E. 安全通道协议’02 ' 164E. 1.安全通迅 164E. 1.1. SPC02 安全通道 164E. 1.2.实体鉴别 165E. 1.2.1. 显式安全通道的初始化 166E. 1.2.2. 隐式安全通道的初始化 167E. 1.3.消息的完整性 167E. 1.4.消息数据的机密性 168E. 1.5.安全级别 168E. 2.加密密钥 170E. 3.加密算法 171E. 3.1. CBC 171E. 3.2.消息的完整性ICV在显式安全通道初始化中的使用 171E. 3.3.消息的完整性ICV在隐式安全通道初始化中的使用 172E. 3.4. ICV 的加密 172E. 4.加密用法 172E. 4.1. DES 会话密钥 172E. 4.2.在显式安全通道中的鉴别密码 173E. 4.2.1.卡的鉴另【J密码(Card cryptogram ) 173E.4.2.2.主机端的鉴别密码(host cryptogram ) 173E.4.3.在隐式安全通道中的鉴另U密码( Authenticate Cryptogram ) 174E.4.4. APDU 命令C-MAC 的生成和校验 174E.4.5. APDU 命令响应的 R-MAC 生成和校验 176E.4.6. APDU命令数据段的加密和解密 177E.4.7.敏感数据的加密和解密 178E.5.安全通道的 APDU 指令 178E.5.1. INITIALIZE UPDATE 命令 179E.5.1.1. 定义和范围 179E.5.1.2. 命令消息 179GP卡的开发规范说明书 V2.1.1E.5.1.3. 引用控制参数 P1――密钥版本号 180E.5.1.4. 引用控制参数 P2 180E.5.1.5. 命令消息中要传送的数据段 180E.5.1.6. 响应消息 180E.5.1.7. 在响应消息中返回的执行状态 180E.5.2. EXTERNAL AUTHENTICATION 命令 181E.5.2.1. 定义和范围 181E.5.2.2. 命令消息 181E.5.2.3. 引用控制参数 P1——安全级别 181E.5.2.4. 引用控制参数 P2 182E.5.2.5. 命令消息中要传送的数据段 182E.5.2.6. 响应消息返回的数据段 182E.5.2.7. 在响应消息中返回的执行状态 182E.5.3. BEGIN R-MAC SESSION 命令 182E.5.3.1. 定义和范围 182E.5.3.2. 命令消息 183E.5.3.3. 引用控制参数 P1 183E.5.3.4. 引用控制参数 P2 183E.5.3.5. 命令消息中要传送的数据段 183E.5.3.6. 响应消息返回的数据段 184E.5.3.7. 在响应消息中返回的执行状态 184E.5.4. END R-MAC SESSION 命令 184E.5.4.1. 定义和范围 184E.5.4.2. 命令消息 184E.5.4.3. 引用控制参数 P1 185E.5.4.4. 引用控制参数 P2 185E.5.4.5. 命令消息中要传送的数据段 185E.5.4.6. 响应消息返回的数据段 185E.5.4.7. 在响应消息中返回的执行状态 185F. GP的数据及卡的识别数据 186F. 1.数据值 186F. 2.卡识别数据的结构 186F. 3.安全域管理数据 187GP卡的开发规范说明书 V2.1.1图目录图2-1 : GP系统结构图 10图3-1 : GP卡结构图 11图3-2:卡内容关系图 14图5-1 :卡生命周期状态迁移 24图5-2 :应用生命周期状态迁移 28图5-3 :安全域生命周期状态迁移 30图5-4 :卡生命周期状态和应用生命周期状态举例 31图6-1 : OPEN的架构 33图6-2 :装载和安装过程 42图6-3 :装载和安装流程图 44图6-4 :安装流程图 45图6-5 :可执行装载文件删除流程图 47图6-6 :应用移交流程图 48图6-7 :应用锁定流程图 54图6-8 :卡锁定流程图 55图6-9 :卡终止流程图 56图7-1 :通过相关安全域进行应用个人化 66图7-2 :运行时消息流 67图7-3 :代理下载与安装 70图7-4 :代理删除 72图7-5 :下载令牌计算 72图7-6 :收条计算 73图7-7 :安装和移交令牌计算 73图7-8 :计算安装收条 74图7-9 :移交收条计算 74图7-10 :删除收条计算 74图7-11 :装载文件数据块 HASH计算 75图7-12 :装载文件数据块签名计算 75图D-1 :相互认证流程图(安全域) 151图D-2 :相互认证流程图(使用安全域的服务) 152图D-3 :会话密钥-第1步-产生原始数据 155图 D-4 :会话密钥-第2步-创建S-ENC会话密钥 155图 D-5 :会话密钥-第3步-创建S-MAC会话密钥 155图 D-6 : APDU命令的MAC 生成与验证 157图 D-7 : APDU数据域的加密 158图E-1 :显式安全通道初始化流程图 167图E-2 :从基本密钥中创建安全通道会话密钥 173图E-3 :在未修改的 APDU上生成C-MAC 175图 E-4 :在修改的 APDU上生成 C-MAC 175图 E-5 :生成 R-MAC 176图 E-6 : APDU命令数据域加密 177GP卡的开发规范说明书 V2.1.1表目录表 1-1 :标准参考 3表1-2 :术语和定义 5表1-3:缩写词与符号 7表9-1 :每个卡生命周期状态的被认证的 GlobalPlatform 命令 80表 9-2: GlobalPlatform 命令的最小安全需求 81表9-3 :可执行装载文件的生命周期编码 82表 9-4 :应用的生命周期编码 82表9-5 :安全域的生命周期编码 82表9-6 :发行者安全域的生命周期编码 82表9-7 :应用的权限 83表9-8 : 一般错误情形 83表 9-9 : CLA字节编码 84表9-10 :密钥类型编码 85表9-11 :确认信息结构 85表9-12 : DELETE命令消息 86表9-13 : DELETE引用控制参数 P2 86表9-14 : DELETE[密钥]命令消息的数据字段。
87表9-15 : DELETE响应的数据字段 87表9-16 : DELETE错误情形 88表9-17 : GET DATA命令消息 88表9-18 :密钥信息数据结构 90表9-19 : GET DATA错误情形 90表 9-20 : GET STATUS 命令消息 91表9-21 : GET STATUS引用控制参数 P2 92表9-22 :发行者安全域、应用和可执行装载文件信息数据 92表 9-23 : GlobalPlatform 注册表数据(TLV) 92表9-24 :可执行装载文件和可执行模块信息数据 93表 9-25 : GET STATUS 警告 93表 9-26 : GET STATUS 错误 93表9-27 : INSTALL 命令消息 94表9-28 : INSTALL 命令引用控制参数 P1 94表 9-29 : INSTALL[for load]命令数据字段 95表 9-30 : INSTALL[for in stall] 命令数据字段 96表 9-31 : INSTALL[for make selectable]命令数据字段 96表 9-32 : INSTALL[for extraditon] 命令数据字段 97表 9-33 : INSTALL[for personalization] 命令数据字段 97表9-34 :装载参数Tag 98表9-35 :安装参数Tag 98表9-36 : INSTALL响应数据字段 99表 9-37 : INSTALL 错误 99表9-38 : LOAD 命令消息结构 100表9-39 : LOAD 命令引用控制参数 P1 100GP卡的开发规范说明书 V2.1.1表9-40:装载文件结构 100表9-41 : LOAD 响应数据字段 101表 9-42: LOAD 错误 101表 9-43: MANAGE CHANNEL 命令消息 102表 9-44: MANAGE CHANNEL 警告 103表 9-45: MANAGE CHANNEL 错误 103表9-46: PUT KEY 命令消息 104表9-47: PUT KEY引用控制参数 P1 104表9-48 : PUT KEY引用控制参数 P2 105表9-49 :密钥版本号图 105表9-50 :密钥数据字段 106表 9-51 : PUT KEY 错误 107表9-52 : SELECT命令消息 108表9-53 : SELECT引用控制参数 P1 108表9-54 : SELECT引用控制参数 P2 108表9-55 :文件控制信息 109表 9-56 : SELECT 警告 109表 9-57 : SELECT 错误 109表 9-58 : SET STATUS 命令消息 110表 9-59 : SET STATUS —状态类型 110表 9-60 : SET STATUS 错误 111表 9-61 : STORE DATA 命令消息 112表 9-62 : STORE DATA 命令引用控制参数 P1 112表 9-63 : STORE DATA 错误 114表 A-1 : Java 卡上的 GlobalPlatform :安全级别 120表C-1 :发行者安全域密钥 141表 C-2 :附加的安全域密钥 142表 C-3 :包含在下载令牌中的数据项 143表 C-4 :包含在INSTALL [for In stall] 令牌中的数据项 144表 C-5 :包含在 INSTALL [for make selectable]令牌中的数据项 144表 C-6 :包含在移交令牌中的数据项 145表 C-7 :包含在下载收条中的数据项 146表 C-8 :包含在安装收条中的数据项 147表C-9 :包含在删除收条中的数据项 147表 C-10:包含在移交收条中的数据项 148表D-1 :安全域安全通道密钥 154表 D-2 : SCP01命令的最小安全要求 159表 D-3 : SCP01支持的每个卡生命周期状态 159表 D-4 : INITIALIZE UPDATE 命令消息 160表 D-5 : INITIALIZE UPDATE 响应消息 161表 D-6 : INITIALIZE UPDATE 错误 161表 D-7 : EXTERNAL AUTHENTICATE 命令消息 162表 D-8 : EXTERNAL AUTHENTICATE 引用控制参数 P1 162表 D-9 : EXTERNAL AUTHENTICATE 错误 163GP卡的开发规范说明书 V2.1.1表E-1 : SCP02-安全域安全通道基本密钥 171表 E-2 : SCP02-安全域安全通道密钥 171表 E-3 : SCP02支持的命令 178表E-4 : SCP02命令最小安全级别要求 178表E-5 : SCP02命令对每一个卡的生命周期状态的支持 179表 E-6 : INITIALIZE UPDATE 命令消息 179表 E-7 : INITIALIZE UPDATE 响应消息 180表 E-8 : INITIALIZE UPDATE 错误 181表 E-9 : EXTERNAL AUTHENTICATE 命令消息 181表 E-10 : EXTERNAL AUTHENTICA TE 命引用控制参数 P1 182表 E-11 : EXTERNAL AUTHENTICA TE 警告码 182表 E-12 : BEGIN R-MAC SESSION 命令消息 183表 E-13 : BEGIN R-MAC SESSION 引用控制参数 P1 183表 E-14 : BEGIN R-MAC SESSION 引用控制参数 P2 183表 E-15 : BEGIN R-MAC SESSION 命令数据 184表 E-16 : BEGIN R-MAC SESSION 错误 184表 E-17 : END R-MAC SESSION 命令消息 184表 E-18 : END R-MAC SESSION 引用控制参数 P1 185表 E-19 : END R-MAC SESSION 引用控制参数 P2 185表 E-20 : END R-MAC SESSION 错误 185表F-1 :卡识别数据结构 187表F-2 :安全域管理的数据 188xiv明宇科技BRIGHTERGP卡的开发规范说明书V2.1.1第一部分:介绍1明宇科技BRIGHTERGP卡的开发规范说明书 V2.1.11.介绍GlobalPlatform是通过领导来自支付和通信行业的公司、 政府部门、销售团体(Vendor community )而建立起来的一个组织,它是第一个促进夸行业智能卡实现的全球组织。
他的目标是减少阻碍多应 用智能卡夸行业发展的障碍 智能卡发行者仍然具有选择各种不同的卡片、 终端和后端系统的自由智能卡要充分发挥它们的潜能,消费者需要能够使用它们的各种各样的功能例如,卡可以和 移动电话一起使用来使购买者通过 in ternet安全的访问PC智能卡也应该是廉价和易于使用的20世纪90年代中期开始,随着应用开发的开放规范的引入,芯片卡工业发生了许多重大的突破这其中三个领先的技术是 Java Card?、Windows? Powered Smart Cards、MULTOS?这些技术规范为向多应用芯片卡方向的解决方案作出了非常重要的贡献,如公共编程标准允许应用在不同 的卡特定实现之间移植通过Open Platform的带领,首先 Visa国际和现在的 GP与芯片卡厂商一起发表了一份少见的、 关键的、重要的芯片卡标准-硬件无关、销售商无关、不依赖于应用的卡管理规范这个新的规范 提供了共同的安全及卡管理架构,它保护了芯片卡系统投资的最重要的方面-基础设施GP为卡发行者创建符合他们的商业发展的多应用卡系统提供了一份灵活的强有力的规范 规范允许他们选择适合他们现在需求的卡技术,也能保证将来如果需要的话,他们能够移植到一个不同 的卡技术上而不会与他们的基础设施发生重大冲突。
这个规范描述了将在 GP只能卡上实现的 GP规范下面的含义应用于本文档中的“将,应该和可以” :“将”表示包含“将”的描述必须按照本规范中定义的那样实现不强制那个描述的实现应该”表示一个推荐只是强烈建议按照这个规范中定义的描述那样实现可以”表示一个选项1.1 •阅读者这个规范主要适用于卡制造商和开发 GP卡实现的应用开发人员虽然这个规范定义了卡的组 成、命令接口、事务顺序和可以夸许多不同行业的公共接口,但是它并没有详细描述底层安全的实 现,它可能会根据行业的不同而不同这个规范也适用于更多的普通阅读者,如它描述的通常的安全概念和包含在多应用卡管理系统 中各种角色1.2. 标准参考标准/规范描述ANSI X9.52CAMS v3.0 June 2000FIPS PUB 46-3FIPS PUB 180-1ISO/IEC 7816-4:1995ISO/IEC 7816-5:1994ISO/IEC 7816-6:1996GP卡的开发规范说明书 V2.1.1ISO/IEC 8825-1:1998ISO 8731-1:1987ISO/IEC 9797:1994ISO/IEC 10116: 1997ISO/IEC 10118-3: 1998Java Card? 2.1.1,2.2PKCS#1 (RFC 2437)Win dows?-PoweredSmart Cards表1-1 :标准参考1.3. 术语和定义表1-2定义了在这个规范中使用的表达,表达中的每个单词的第一个字母使用大写。
本文档中每个单词第一个字母使用小写的表达按照通常的含义理解 (标记数据元素的也会在它们名字的每个单词的第一个字母大写 术语定义应用(Application )一个可执行装载模块的实例,这个可执行模块已经被装载到卡里 并完成了安装,它所处的生命周期状态为可选应用协议数据单元(APDU)卡和读写器之间标准的通讯协议应用提供者拥有应用并要对应用的行为进行负责应用会话应用与卡外世界的通过逻辑通道建立的某种联系,开始于该应用被 选择,结束于另外的应用经由同一逻辑通道被选择,或者该逻辑通 道被关闭,或者卡片会话被中止非对称加密一种运用了两种变换的加密技术,即由公开密钥组件定义的公开转 换和由私有密钥组件定义的私有转换;该公私钥对具备一种特殊的 属性,即不能由公钥推断岀私钥基本逻辑通道可以永久获得的在卡和外部实体之间的接口,基础逻辑通道号为 零卡内容由OPEN负责的,包含在卡里的代码和应用信息(但不是应用数 据)如:可执行下载文件,应用实例等GP卡的开发规范说明书 V2.1.11 术语定义卡的 Image 号(CIN)一张特定GlobalPlatform 卡的标志卡发仃者拥有卡,并且最终对卡上行为负责的实体。
卡的管理者(CMGP卡上3个卡管理实体的总称:OPEN发行者安全域和持卡人验 证方法服务提供者卡的识别数据告知外部系统的信息,在特定的卡和应用管理系统中,如何与卡工作包括指明这是一张 Globalplatform 卡)卡的会话通过ATR启动,结束于接下来的 reset或卡的去激活,在卡和外部实体之间的连接卡的唯一数据唯一标示卡与发行者标示号和 CIN之间关联关系的数据卡持有者卡的最终用户卡持有者校验方法(CVM)种确保持卡人疋发卡对象本人的验证方法控制授权中心机构控制授权中心有权限通过强制 DAP验证来控制卡内容DAP块下载文件的一部分,用于确保下载文件数据块的验证DAP校验一种用于安全域验证下载文件数据块是经授权的机制委托管理预授权的、由被认可的应用提供商执行的卡的内容的修改操作数字签名数据的非对称加密变换,它允许数据的接收者证明数据的起源的 完整性;它保护数据发送者和接收者免受第三方伪造欺骗,它将 保护发送者不受接受者的伪造欺骗可执行装载文件事实上的卡上容器,作为下载文件数据块的结果印象,装载了一 个或多个应用的可执行代码(可执行模块)它可能驻留在不可变 永久内存中,也可能在可修改永久内存中。
可执行模块包括在一个可执行下载文件中的单一应用的卡上可执行代码GP注册表有关卡的内容管理的信息容器Host一个逻辑术语用于表达支持 Globalplatform 系统的后台系统;主机执行类似认证、管理、发卡后应用代码和数据的下载,以及 交易处理等不可变内存内存只能被读发仃者女全域卡上实体提供对卡发行者控制、安全、和通信需求的支持生命周期The existe nee of Card Content on a GlobalPlatform card and the various stages of this existe nee where applicable生命周期状态在卡或卡上内容生命周期中的特殊状态装载文件一个传输到GlobalPlatform 卡的文件,它包括一个下载文件数据块和可能的一个或多个 DAP块GP卡的开发规范说明书 V2.1.11 术语定义装载文件数据块下载文件的一部分,包含一个或多个应用、类库或者作为特殊平 台需求的应用支持信息装载文件数据块HASH为下载文件数据块提供完整性保证的值装载文件数据块签名一个包含下载文件数据块 hash的值,它提供下载文件数据块的完整性和认证。
消息认证码(MAC)数据的对称加密传输,它将提供对数据的原始认证和数据完整 性可变内存内存可以被修改OPEN卡上中心管理器,它拥有 GlobalPlatform 注册表Post-lssua nee在卡被发行到持卡人手中之后的阶段Pre-lssua nee在卡被发行到持卡人手中之前的阶段私钥不对称密钥对的私有部分公钥不对称密钥对的公共部分收条由卡提供的加密值(如果发卡者要求),以作为代理管理操作已经 发生的证明重试计数器一个计数器,用于与重试限制相关联,决定何时提供 CVM直的重试行为被禁止重试限制在CVMt理者禁止进一步提供 CVM直进行重试之前,可提供无效 CVM直的最大次数安全通道在卡外实体和卡之间,能够为其中一方或者双方提供一定层次保 障的通信机制安全通道协议安全通信协议和一系列安全服务安全通道会话一个会话,由安全通道初始化开始,结束于安全通道中止或应用 会话、卡会话中止的应用会话期间安全域提供对应用提供者进行控制、 安全、和通信需求支持的卡上实体辅助逻辑通道(除了可永久获得的基本逻辑通道)在卡和外部实体之间的其余三个辅助接口各个辅助逻辑通道被标示为 1,2 or 3对称加密一种加密技术,发送者和接受方在传输过程中使用相冋的密钥令牌由卡发行者提供的加密值用以证明代理管理操作是已经授权的。
表1-2 :术语和定义GP卡的开发规范说明书 V2.1.114缩写词与符号缩写词含义英文中文AIDApplication Identifier应用标识符APDUApplicati on Protocol Data Un it应用协议数据单元APIApplicati on Programmi ng In terface应用编程接口ASCIIAmerican Standard Code for InformationIn tercha nge信息交换美国标准编码ATRAn swer-to-Reset复位应答BCDBinary Coded Decimal二元编码的十进制BERBasic En codi ng Rules基本编码规则CBCCipher Block Chaining加密块链CINCard Image Number / Card Identification Number卡Image 号/卡标识号CLAClass byte of the comma nd message命令消息中的类字节CVMCardholder Verificati on Method持卡者验证方法DAPData Authe nticati on Patter n数据认证模式。
DEKData En crypti on Key数据加密密钥DESData En crypti on Stan dard数据加密标准ECBElectr onic Code BookEMVEuropay, MasterCard, and Visa; used to refer to the ICC Specifications for Payment SystemsENCEn crypti onFCIFile Con trol In formati onHEXHexadecimalICCIn tegrated Circuit CardICVIn itial Chai ning VectorIINIssuer Identification NumberINSIn structio n byte of the comma nd messageISOIntern ati onal Orga ni zati on forStan dardizati onLcExact length of data in a case 3 or case 4 comma nd情况3或情况4时,命令中的数据字节长 度LeMaximum length of data expected in resp onse to a case 2 or case 4 comma nd情况2或情况4时,命令中期望响应中返 回的数据的最大字节长度LVLen gth ValueMACMessage Authe nticati on CodeOIDObject Ide ntifierOPENGlobalPlatform environmentP1Refere nee con trol parameter 1GP卡的开发规范说明书 V2.1.1缩写词含义英文中文P2Refere nee con trol parameter 2PINPersonal Identification NumberRAMRan dom Access MemoryRFUReserved for Future UseRIDRegistered Application Provider IdentifierROMRead-only MemoryRSARivest / Shamir / Adleman asymmetric algorithmSCPSecure Channel ProtocolSWStatus WordSW1Status Word OneSW2Status Word TwoTLVTag Len gth Value表1-3 :缩写词与符号1.5 •修订历史1.5.1. Open Platform 卡规范 V2.0 到 Open Platform 卡规范 V2.0.1这一节给出了 Open Platform卡规范2.0.1中对于Open Platform卡规范2.0所进行的修订的概要。
规范的用词及格式进行了改进与Open Platform的特定实现相关的任何东西已经从规范的主体中删除了,在附录中详细描述与Open Platform或应用个人化相关的任何东西都被删除了与Open Platform的Java卡实现相关的变更在附录 。