Java Card 平台规范 (Java Card Classic Edition)
标准编号:JSR 177 (J2ME), JSR 268 (Java Card 3.0 Classic), JSR 290 (Java Card 3.1)
发布组织:Oracle / Java Community Process (JCP)
主要版本:2.2.2 (常见), 3.0.5, 3.1 (2022)
摘要:Java Card 是全球最流行的智能卡应用开发平台,它允许使用 Java 语言编写智能卡上的应用程序(称为 Applet),并在卡上虚拟机 (JCVM) 中执行。规范定义了 Java Card 虚拟机的指令集、运行时环境、API 类库以及应用生命周期管理。凭借其跨平台性、安全性和广泛的工业支持,Java Card 已成为 SIM 卡、金融 IC 卡、身份证等领域的核心技术。
核心组成:
- Java Card 虚拟机 (JCVM):解释执行的虚拟机,专为资源受限环境设计,字节码经过精简。
- Java Card 运行时环境 (JCRE):管理 Applet 的安装、选择、处理和卸载。
- Java Card API:提供 javacard.framework, javacard.security, javacardx.crypto 等包,支持 APDU 命令、安全服务(RSA, AES, 签名)、文件系统等。
- 多应用支持:与 GlobalPlatform 规范结合,实现安全的多应用隔离和管理。
- 原子性和事务机制:确保即使突然掉电,数据也能保持完整性。
- 密钥管理 API:支持 RSA/ECC/AES/DES 等算法的密钥生成、存储和运算。
与 GlobalPlatform 的关系:Java Card 定义 Applet 级行为,GlobalPlatform 定义卡片内容管理框架,两者常结合使用以实现商用多应用智能卡。
官方资源: Oracle Java Card 规范页面 | JSR 290