JAVA卡工作原理
一、什么是JAVA卡?
JAVA卡是一种可以运行JAVA程序的智能卡。该智能卡由CPU、EEPROM(存储)、RAM(内存)、加密协处理等组成,很像一台小型的PC,主要用于安全服务场景。
二、工作模型
JAVA卡上电以后系统就会自动运行,主机通过发送APDU访问JAVA卡的功能。JAVA卡只接受2种APDU:选择应用APDU(系统实现),应用功能APDU(应用实现)。
典型工作流:
1、JAVA卡上电
2、发送APDU选择应用1 –> JAVA卡调度应用1 –> 发送功能APDU -> 应用1响应功能APDU
3、发送APDU选择应用2 –> JAVA卡调度应用2 –> 发送功能APDU -> 应用2响应功能APDU
4、JAVA卡下电
JAVA卡虚拟机:解释执行JAVA字节码指令。
JAVA卡标准API:是J2SE的一个子集,详情请参考下面。
1、java.lang,定义Object和Throwable等基础类
2、javacard.framework,核心框架类(应用框架、消息传输、瞬时内存、事务处理等)
3、javacard.security,定义安全框架基础类
4、javacardx.crypto,定义了Cipher和KeyEncryption等基础类
5、org. globalplatform,GP规范的应用编程接口
JAVA卡私有API:卡商自定义的API,提供提供附加实用功能。
JAVA卡应用:系统自带的应用或用户编写的应用,系统自带的应用必须有Card Manager(AID=A000000003000000),负责上传应用、安装应用、删除应用、其他管理功能等。
APDU:定义了主机和JAVA卡之间交互的数据格式,JAVA卡由process方法处理APDU。
三、编写、生成JAVA卡应用
1、利用JAVA卡的API编写JAVA应用代码。
2、编译JAVA应用代码为Class字节码(注意必须使用JDK1.5编译,或在eclipse中设置,因为转换工具只支持这个版本)。
3、利用converter.bat(参见java_card_kit-2_2_2使用介绍,JCOP支持自动生成)将Class文件和Export文件(链接信息)转换为CAP应用文件。
说明:因为JAVA卡平台CPU主频比较低,存储和内存都很受限,所以要转换为CAP文件提高资源效率。
CPU卡、SAM卡简介[2020-04-20]
基于云的RFID系统架构与安全性分析[2020-04-26]
射频识别-防冲突[2020-05-25]
又到学习时刻,带你了解ID卡和IC卡[2020-04-26]
UHF频段RFID产品CE认证的射频RF测试[2021-06-01]
物联网传感器61个应用领域[2021-07-20]
RFID概述--RFID读写设备基本介绍[2020-04-07]
物联网常见通信协议RFID、NFC、Bluetooth、ZigBee等梳理[2020-06-02]
JavaCard应用程序开发三部曲 - 主应用程序开发[2020-12-05]
JavaCard应用程序开发三部曲 - 基础篇[2020-12-05]
PBOC规范下的java卡介绍[2020-06-19]
JavaCard 名词普及[2020-04-21]