GPC_Common Implementation Configuration_v2.1-MemberRelease-zsh

news/2025/2/13 1:05:31/

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 节所述是可选的。


http://www.ppmy.cn/news/76650.html

相关文章

【NMI 2021】从生物学角度看进化计算(6个生物进化特征)

A biological perspective on evolutionary computation “生物学视角下的进化计算”,总结了进化算法——通过对比模拟和真实的进化,指出当前进化算法与生物进化存在的六点差异,并指出了对应的改进方案。 何为进化算法? 将任意问…

如何用Python进行屏幕录制?

文章目录 引言gpt3.5给出的代码更换截图函数——ImageGrab.grab禁用imshow解决递归现象摄像头录制代码后期需求 引言 关于屏幕录制这个功能需求,之前用过基于ffmpeg的Capture录屏软件,但是fps拉高以后会变得很卡,声音也同样出现卡顿。也自己…

【Dubbo核心 详解四】Dubbo服务提供者的详解

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Dubbo核心详解(附代码示例) 文章目录 引言一、服务提供者1.1 服务提供者介绍Dubbo 服务提供者启…

c++相关知识点(持续更新中~)

添加随机数种子: //通过利用当前时间生成随机数,防止每次随机数一样 srand((unsigned int)time(0)); int numrand()%1001;//生成1-100的值 //例如:如果需要生成30-200的值 那么% 171之后是0-170 之后再1 为1-171范围 再29 为30-200 //以此…

掌握RDD分区

零、本讲学习目标 学会如何指定分区数量会定义与使用自定义分区器 一、RRD分区 (一)RDD分区概念 RDD是一个大的数据集合,该集合被划分成多个子集合分布到了不同的节点上,而每一个子集合就称为分区(Partition&#…

【Netty】Netty 概述(一)

文章目录 前言一、Java原生API之痛二、Netty的优势2.1 非阻塞 I/O2.2 丰富的协议2.3 异步和事件驱动2.4 精心设计的API2.5 丰富的缓冲实现2.6 高效的网络传输 三、Netty 核心概念3.1 核心组件3.1.1 事件模型3.1.2 字节缓冲区3.1.3 通信API 3.2 传输服务3.2.1 NIO3.2.2 epoll3.2…

2023年湖北建筑架子工报名流程?报名需要什么资料?考试一次过?

2023年湖北建筑架子工报名流程?报名需要什么资料?考试一次过? 建筑架子工证是建筑行业必备的证书之一,它是证明持有人可以在建筑工地上从事搭建脚手架、模板等施工工作的重要证明。启程别告诉你架子工的报名流程和资料。 百度搜一…

Azkaban从入门到精通以及案例实操系列

1、Azkaban概论 1.1、Azkaban简介 Azkaban 是一个开源的基于 Web 的工作流调度系统,由 LinkedIn 公司开发并维护。它可以帮助用户在大规模数据处理中来管理和调度作业,提供了简单易用、高效可靠的工作流设计和调度功能。 Azkaban 的主要特点包括&…