JAVA卡工作原理

2014-12-01 11:59:29
admin
3844
最后编辑:admin 于 2014-12-11 15:27:27
简介:JAVA卡工作原理 JCVM JCRE JCAPI JAVA卡 JavaCard APDU GP GlobalPlatform CAP文件

一、什么是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文件提高资源效率。


    发表评论
    评论通过审核之后才会显示。