1 简介
本文档定义了描述核心特性的常见实现需求的配置
GlobalPlatform 卡规范 [GPCS]。
此配置定义了以下选项:
• 支持补充安全域
• 支持安全通道协议“02”
• 支持安全通道协议“03”
• 支持安全通道协议“11”(SCP11a、SCP11b 和 SCP11c)
• 支持安全通道密钥的机密设置
• 支持ELF升级
• 支持 SEMS
• 支持 DAP 验证的方案
• 支持委派管理
• 支持委派管理的方案
• 支持加密加载文件数据块
• 加密加载文件数据块支持的方案
特定实现支持的选项应由卡能力信息指示
(见第 3.2.3 节)
2 运行时环境
卡应实现符合 Java Card™ 规范([JCAPI]、[JCVM] 和 [JCRE])的运行时环境,以及以下部分中给出的附加要求。1 2.1 通信接口 本文档假设 可能有几种通信接口可用(例如接触式和非接触式)。 这些通信接口可能不是所有的卡都可以直接访问的。 按照 ISO/IEC 7816-4 [7816-4] 中的规定,卡应能够在任何这些通信接口上接收 APDU 命令并发送 APDU 响应。 卡应始终能够知道特定 APDU 命令源自哪个通信接口,即使卡仅支持单个物理通信接口。 在后一种情况下,底层协议将提供 APDU 起源位置的指示(例如来自 HCI 协议),因此允许 Java Card Runtime Environment [JCRE] 向应用程序提供正确的指示。 2.2 标准 Java Card API 本节描述了有关标准 Java Card API 为应用程序提供的服务的最低要求,如本文档所要求的那样。 这些最低要求并不妨碍该卡实施客户要求的其他服务。 请注意,本文档中描述的 GlobalPlatform 功能可能使用更强大的加密算法,这些算法不一定在下面描述,也不一定适用于 API 级别的应用程序。 所有实现都应支持表 2-1 中列出的字段
本文档提供了以下关于标准 Java Card API 实现的附加要求: 为支持第 2.1 节中要求的功能,APDU.getProtocol() 方法应返回一个值,反映当前 APDU 命令是否源自 ISO/IEC 7816 -3 [7816-3] 或 ISO/IEC 14443-3 [14443-3] 接口。 请参考 [JCAPI] 了解可能的值。 请注意,[JCAPI] 使用“PROTOCOL_T1”常量表示 ISO 14443-4 [14443-4] 中定义的非接触式卡的 T=CL 变体。 如果调用以下任何方法,并且如果当前正在处理的 APDU 命令所源自的通信接口不再可用,则应抛出 APDUException,原因代码为 APDUException.IO_ERROR:
2.3 GlobalPlatform Java Card API 卡应实现 GlobalPlatform Java Card API [GPC API],如下所示:
• 应实施包 org.globalplatform(导出文件版本 1.6 或更高版本),并满足以下附加要求:
o 安全域应能够个性化实现应用程序接口的相关应用程序。
o 安全域应能够个性化实现个性化接口的相关应用程序。 同时实现应用程序和个性化接口的应用程序应使用个性化接口进行个性化。 安全域应发出应用程序指定的响应数据(如果有)。
o 如果支持全局服务权限,则具有全局服务权限的应用程序应能够注册全局服务(即 GlobalService 接口的实例)。
o SecureChannel 对象对 SecureChannelx 和 SecureChannelx2 接口的实现是可选的。
• 如果支持ELF 升级,则包org.globalplatform.upgrade 应按照GPCS 修正案H [Amd H] 中的定义实施。
• 对包org.globalplatform.contactless 的支持不在范围内。
2.3.1 CVM接口要求
该实现最初以 BCD 格式存储 PIN 值,并为可能为 12 位数字长的 PIN 保留空间,即以 6 个字节存储。
以下是初始推荐值:
• PIN 的初始长度为 3(即用于存储 PIN 的字节数)。
• PIN 的初始值为“12 34 5F”。
• 初始重试限制为 3。
• PIN 的CVM 状态为活动。
可以使用 CVM.update() 和 CVM.setTryLimit() 方法修改这些值。
3.6.2 SEMS 要求 如果实施支持SEMS,则应按照GPCS 修正案I [Amd I] 中的定义实施,并具有以下附加要求: • SEMS 应用程序可执行加载文件应与ISD 相关联。
• [Amd I] 第 4.5.2.1 节中描述的对补充 CA(证书链)的支持是可选的。 • 支持 [Amd I] 第 4.8.2 节中定义的机密密钥设置,并具有以下附加要求: o 强制支持 SEMS 机密密钥设置场景(如 [Amd I] 第 4.8.2.1 节中定义)。 o 可选支持场景 #1 变体(如 [Amd I] 第 4.8.2.2 节中所定义)。 o 可选支持场景 #3 变体(如 [Amd I] 第 4.8.2.3 节中所定义)。 • 支持 SEMS 更新程序使用 SEMS 脚本更新 SEMS 应用程序,如 [Amd I] 的第 4.14 节所述是可选的。