javaCard技术简介

什么是javaCard:

JavaCard 基于Java平台的智能卡技术


java card 的架构

应用层:

所有applet应用,主要是由卡用户实现,通过调用Java相关规范定义的API实现不同的应用

JCRE层:

是智能卡系统的核心(JCRE是用两种语言编写的:JAVA 和C

系统硬件层:

虚拟机执行的硬件平台


javaCard与普通java开发有什么不同呢?

java card支持的java语言不是标准的java语言,相当于他的子集,主要是考虑Java卡是一个资源极其受限的系统,不支持字符串也不支持多线程。没有像boolean和Integer这样的包装类,也没有Class和System类

javaCard VM生命周期

与卡片生命周期一致,当卡片丢失与毁坏生命周期结束,当卡片掉电,ram中的数据将会丢失,但是rom中的将会保留

javaCard applet生命周期

开始于被下载到javaCard上开始,然后安装于javaCard,结束于applet被删除并注销,当卡片接受到选择这个applet的apdu命令才被激活,激活状态一致保持到掉电,或选择另一个applet时

事务处理机制

JCRE支持原子事务,原子事务用于安全地更新一个或多个持久对象。如果发生掉电或者程序错误等情况,事务将保护数据的完整性。事务是在系统级支持的。

Java Card事务以对beginTransaction()的调用开始,以对

commitTransaction()或者abortTransaction()的调用结束。在事务过

程中所有的写操作都将被保护。JCRE不支持嵌套事务。

为了方便理解,可以把卡当做一个具有运算功能的主机,读卡器这一端相当于I/O设备,对主机进行操作(通过ADPU通信实现)。

javaCard applet编译下载过程

APDU

定义了主机和JAVA卡之间交互的数据格式,绝大部分卡片遵循此数据格式,当然为了保密或其它原因是可以自定义新的数据格式。APDU分为发送命(C-APDU)和返回命令(R-APDU)是用来向卡发送命令和从卡接收数据的协议。

发送命令(C-APDU)的格式,包含一个必须头部段和一个可选数据段

返回命令(R-APDU)的格式,包含一个可选数据段和一个必须状态值:

具体相关内容可以看我的关于apdu命令的指令

如果你对javaCard技术感兴趣,可以多去看一些资料,以及自己开发一下应用加深对javCard技术的理解。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值