JavaCard |
Native |
|
功能特性 |
||
开发语言 |
l 纯面向对象的Java语言的子集。 Java语言先进灵活,开发调试速度快,实现灵活。 l Java没有指针,并且有内部安全机制可以有效的避免越界访问造成的程序的错误和崩溃。 l 所有的变量在Java中创建时,都会被自动进行初始化。 |
l 汇编和标准C,面向过程的语言。 l 汇编语言作为机器语言,比较晦涩,开发速度慢,使现有局限,但是运行速度快,效率高。 l C语言有指针,可以灵活的实现各种内存操作,但容易因为越界访问造成错误和崩溃。 l C中的变量需要手工初始化,容易因为忽略造成错误。 |
体系构架 |
分为两层结构。 l 底层为按照JavaCard规范实现的JavaCard平台,向上提供规范定义的接口(API),通常支持JavaCard API和GP API。 l 上层为按照应用需求开发的Applet,相当于Native卡片上的ADF。可以根据不同类型的应用,开发多个Applet。这些Applet相互独立,通过AID来选择。 |
统一通过卡片操作系统(COS)来实现所有的功能。 l COS内部也按照功能的不同,分为多个层次,包括应用层具体交易APDU的实现,通讯协议层的实现,以及和芯片的具体交互等等。 l 通常通过创建不同的ADF文件的方式,来区分不同的应用。 |
应用(ADF)选择 |
l JavaCard规范定义,只支持通过AID选择应用(ADF)。 l 在应用内部,可以通过程序实现,用AID或者DFID选择ADF。 |
l 可以通过AID或者DFID选择应用(ADF)。 |
个人化流程 |
JavaCard规范推荐统一的通用个人化流程(CPS),在创建安全通道后,通过统一的Store Data命令完成卡片的个人化。 |
不同厂家定义完全不同的个人化流程,采用完全不同的个人化指令,纷繁复杂,不便于掌握,也不便于统一。 |
卡片锁定 |
卡片锁定后,再向卡片发送指令,由卡片上的JavaCard平台按照规范定义统一处理,不受具体应用(Applet)的控制。 |
卡片锁定后,在向卡片发送指令,仍然由卡片操作系统(COS)处理,应用指令通过程序内部予以屏蔽。 |
RSA密钥长度支持 |
按照JavaCardAPI接口V2.2.1,支持512,736,768,896,1024,1280,1536,1984,2048位长度的密钥。 |
可以支持芯片所能支持的按8字节或者4字节长度递增的密钥长度。 |
协作开发 |
l 可以开发一种特殊的Applet,作为可以被其他应用Applet调用的通用的功能模块(Library),以便于统一提供一些功能的实现。 l 可以通过Shareable Interface安全的调用其他Applet授权可以访问的方法。 |
源代码级别上的协作开发,通过代码的重用,实现功能上的协作。 |
安全性 |
||
规范定义 |
l JavaCard规范,目前普遍支持2.2.1版本。 l GP规范,目前普遍支持2.1.1版本。 l 安全性由这些规范定义和保证,并经过SUN的权威认证。 |
没有统一的国际性规范。 安全性由各卡片COS生产厂家,通过管理和测试进行保证。 |
安全控制机制 |
多种安全机制的参与,包括Applet之间的防火墙,安全域和安全通道的控制。 |
主要通过状态机来实现。特殊指令使状态机跳转,访问文件时判断状态机是否满足条件。 |
应用数据独立性 |
不同应用之间的数据直接访问是严格禁止的,由JavaCard平台实现的防火墙实现物理隔离。 |
将不同应用的数据组织为不同的ADF文件,靠的是卡片存储空间上的边界来区分。 |
数据访问 |
存储在RAM上的缓存数据,可以在应用失去选择,或者卡片Reset之后自动清除,无法再次访问,确保临时数据不会泄密。 |
存储在RAM上的缓存数据,在卡片Reset之后自动清除,无法再次访问,确保临时数据不会泄密。 |
数据存储 |
数据存储分为文件和内部数据对象两种方式。 l 对于像密钥一类的敏感数据,采用JavaCard规范定义的内部数据对象存储,该对象由JavaCard平台实现,对这些敏感数据进行特殊保护。 l 其他的普通存储数据,以文件形式组织,便于访问和管理。 |
数据统一按照文件的形式组织和存储。 l 不论是密钥还是数据,不论是敏感数据还是普通数据,都存放在文件中。 l 对密钥等敏感数据可能采取加密存储的方式,或者存放在特殊访问权限的文件中。 |
功能的修改和增/删 |
||
修改APDU指令 |
l 对相应的Applet源代码进行单独的修改,不影响其他应用的实现和稳定性,不影响底层的JavaCard平台的实现和稳定性。 l 只需要对修改的Applet进行测试和认证。 |
l 对卡片操作系统(COS)进行修改,可能会影响其他应用的指令的实现和稳定性。 l 需要重新进行整体的测试和认证。 |
添加全新的指令 |
l 对相应的Applet源代码进行单独的修改,不影响其他应用的实现和稳定性,不影响底层的JavaCard平台的实现和稳定性。 l 只需要对修改的Applet进行测试和认证。 |
l 对卡片操作系统(COS)进行修改,可能会影响其他应用的指令的实现和稳定性。 l 需要重新进行整体的测试和认证。 |
不同应用下,相同的指令支持不同功能 |
l 分别对不同应用对应的Applet进行单独修改,互不影响,也不会造成冲突。 l 实现简单,安全。 |
l 对卡片操作系统(COS)进行修改,因为对相同的指令要有不同的解释,所以可能会有冲突。 l 需要通过转义表的方式,判断当前在哪一个应用对应的ADF文件下,来进行何种解释。 l 实现起来比较复杂,有一定风险。 |
添加全新的应用和交易 |
l 开发一个全新的Applet应用。不影响其他应用的实现和稳定性,不影响底层的JavaCard平台的实现和稳定性。 l 只需要对新增的Applet进行测试和认证。 |
l 对卡片操作系统(COS)进行修改,增加新的应用和交易。可能会影响其他应用的指令的实现和稳定性。 l 需要重新进行整体的测试和认证。 |
删除对某种应用的支持 |
直接将应用对应的Applet从卡片中删除即可。 |
对卡片操作系统(COS)进行修改,删除对应的应用的交易和指令。 |
应用和案例 |
||
主要应用范围 |
l EMV2000借贷记应用(VSDC, MChip, PBOC2.0 DC), l 积分, l ED/EP, l NFC等新业务应用领域, l 复合应用,例如金融应用+积分应用,NFC应用+电信应用, l 电信SIM卡。 |
l EMV 96,PBOC1.0 ED/EP, l PBOC2.0 DC, l 社保, l PSAM或者ESAM, l Key卡, l USBKey。 |
案例数量 |
数量逐步增加,突出表现在借贷记应用领域、新业务领域和复合应用领域 |
已经广泛的在应用在一些传统的领域,或者有一定历史的项目中。 |
容量和价格 |
||
EEPROM空间大小 |
通常为20K,36K,72K或者更大,便于对于多应用的支持 |
通常为8K,16K或者32K,36K,便于节约成本,大批量展开。 |
芯片平台 |
l 通常采用高端芯片平台, l 通常支持RSA和双界面, l 芯片频率高,处理速度快。 |
l 采用中高低端各种芯片平台, l 可选支持RSA和双界面。 |
卡片价格 |
l 由于卡片EEPROM空间通常比较大,芯片平台比较高端,所以价格比较高。 l 还存在JavaCard授权的问题,可能需要向SUN支付授权费用,这个费用包含在卡片费用中,由卡片生产厂家支付。 |
由于卡片EEPROM空间通常小一些,所以价格相对比较便宜。 |
java卡与native卡的区别
时间: 2024-10-16 14:59:44
java卡与native卡的区别的相关文章
比较IC卡、ID卡、M1卡、CPU卡它们之间有什么区别?
IC卡的定义 : IC(Integrated Circuit)卡是1970年由法国人Roland Moreno发明的,他第一次将可编程设置的IC芯片放于卡片中,使卡片具有更多功能.“IC卡”和“磁卡”都是从技术角度起的名字,不能将其和“信用卡”.“电话卡”等从应用角度命名的卡相混淆.自IC卡出现以后,国际上对它有多种叫法.英文名称有“Smart Card”.“IC Card”等:在亚洲特别是香港.台湾地区,多称为“聪明卡”.“智慧卡”.“智能卡”等:在我国,一般简称为“IC卡”. IC卡的分类:
非接触IC卡中typeA卡和typeB卡的区别
1.非接触式IC卡的国际规范ISO/IEC14443的由来? 在非接触式IC卡的发展过程中,这些问题逐渐被解决并形成通用的标准,体现在现在的射频IC卡的设计上,国际标准化组织(ISO)和国际电子技术委员会(IEC)为期制定了相应的非接触式IC卡的国际标准——ISO/IEC14443. 2.ISO/IEC14443中的主要内容及typeA,typeB卡的由来 ISO/IEC14443标准包括四个部分: 第一部分ISO/IEC14443-1制定了有关非接触卡的物理特性: 第二部分ISO/IEC144
非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同
非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同 1.非接触式IC卡的国际规范ISO/IEC14443的由来? 在非接触式IC卡的发展过程中,这些问题逐渐被解决并形成通用的标准,体现在现在的射频IC卡的设计上,国际标准化组织(ISO)和国际电子技术委员会(IEC)为期制定了相应的非接触式IC卡的国际标准--ISO/IEC14443. 2.ISO/IEC14443中的主要内容及typeA,typeB卡的由来 ISO/IEC14443标准包括四个部分: 第一部分I
IC卡、M1卡、CPU卡、SAM卡、PSAM卡的联系与区别
一. 技术方面(非接触式IC卡) 1. 逻辑加密卡又叫存储卡,卡内的集成电路具有加密逻辑和EEPROM(电可擦除可编程只读存储器). 2. CPU卡又叫智能卡,卡内的集成电路包括中央处理器(CPU).EEPROM.随机存储器(ROM).以及固化在只读存储器(ROM)中的片内操作系统(COS),有的卡内芯片还集成了加密运算协处理器以提高安全性和工作速度,使其技术指标远远高于逻辑加密卡. 3. CPU卡由于具有微处理功能,使得在交易速度以及数据干扰方面远远高于逻辑加密卡,且允许多张卡片同时操作,
图文教你选择和区别A卡和N卡
曾经有不少网友问过"A卡好还是N卡好"这个问题,不过随着近年来,显卡性能大幅提升,中高端显卡对于多数用户来说已都已经耳熟能详了,那下面来看看2012年最新的关于A卡与N卡区别对比吧. N卡和A卡两家架构问题要深究就得写一本书了.在DX9以前的时代,两家的架构主要由像素单元.顶点单元.纹理单元.光栅单元组成,一个渲染流程的所有单元绑在一起组成一条渲染管线,管线越多,性能就越强.而游戏中的指令以4D指令居多(像素有RGBA,顶点有XYZW),这些单元就被设计成了一次能处理4D指令的处理器,
电脑小白须知!N卡和A卡本质区别,到底哪个更好?一个动图秒懂
相信很多电脑小白,对电脑硬件都不是很了解,对于经常看到的N卡和A卡,不明所以.今天修姐就来科普一下 其实N卡和A卡都是指的电脑显卡.那什么是A卡?什么是N卡那?A卡和N卡的区别到底在哪里?接下来就仔细来看看N卡和A卡的区别吧! A卡和N卡的区别 A卡早期是指采用ATI显卡芯片的显卡,但后面被AMD收购后,A卡其实就是AMD显卡.A卡作品有镭.X系列. N卡则指的就是NVIDIA显卡芯片的显卡,N卡作品有GeForce(GTX)系列,GeForce FX(GT)系列等等. A卡和N卡对比 A卡架构
java中extends与implements的区别
学了java很久了,久不用之后给同学解决一个java问题的时候,就卡在这个标题上了. 下面是java中extends与implements的区别: 1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口. extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 2.extends是继承父类,只要那个类不是声明为f
IC卡,ID卡,M1卡,射频卡
一般把可读可写,频率是13.56MHz的射频卡称为IC卡,IC卡可以写入数据, 只能读,频率是125KHz的射频卡称为ID卡, M1卡是NXP公司的S50卡的一种叫法,国内的复旦F08,达华的TKS50等兼容飞利浦S50的卡片都有可以称为M1卡,而这些卡都是射频卡,就是通过射频感应原理工作的卡. 注释: 1.市面上的UID卡比普通的IC卡(M1卡)贵很多,那是因为UID卡的所有技术参数都和M1卡一样,唯一的区别就是UID卡的0扇区0块不是固化的,可以更改,达到复制的目的.(普通M1卡的0扇区0快
java线程-Thread和Runnable的区别
进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程. 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小. 线程和进程一样分为五个阶段:创建.就绪.运行.阻塞.终止. 多进程是指操作系统能同时运行多个任务(程序). 多线程是指在同一程序中有多个顺序流在执行 在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口. Thread类是在java.lang包