JavaCard和Native之比较.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JavaCard和Native之比较

JavaCard和Native之比较 JavaCard Native 功能特性 开发语言 纯面向对象的Java语言的子集。 Java语言先进灵活,开发调试速度快,实现灵活。 Java没有指针,并且有内部安全机制可以有效的避免越界访问造成的程序的错误和崩溃。 l? 所有的变量在Java中创建时,都会被自动进行初始化。 汇编和标准C,面向过程的语言。 汇编语言作为机器语言,比较晦涩,开发速度慢,使现有局限,但是运行速度快,效率高。 C语言有指针,可以灵活的实现各种内存操作,但容易因为越界访问造成错误和崩溃。 C中的变量需要手工初始化,容易因为忽略造成错误。 体系构架 分为两层结构。 底层为按照JavaCard规范实现的JavaCard平台,向上提供规范定义的接口(API),通常支持JavaCard API和GP API。 上层为按照应用需求开发的Applet,相当于Native卡片上的ADF。可以根据不同类型的应用,开发多个Applet。这些Applet相互独立,通过AID来选择。 统一通过卡片操作系统(COS)来实现所有的功能。 COS内部也按照功能的不同,分为多个层次,包括应用层具体交易APDU的实现,通讯协议层的实现,以及和芯片的具体交互等等。 通常通过创建不同的ADF文件的方式,来区分不同的应用。 应用(ADF)选择 JavaCard规范定义,只支持通过AID选择应用(ADF)。 在应用内部,可以通过程序实现,用AID或者DFID选择ADF。 可以通过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字节长度递增的密钥长度。 协作开发 可以开发一种特殊的Applet,作为可以被其他应用Applet调用的通用的功能模块(Library),以便于统一提供一些功能的实现。 可以通过Shareable Interface安全的调用其他Applet授权可以访问的方法。 源代码级别上的协作开发,通过代码的重用,实现功能上的协作。 安全性 规范定义 JavaCard规范,目前普遍支持2.2.1版本。 GP规范,目前普遍支持2.1.1版本。 安全性由这些规范定义和保证,并经过SUN的权威认证。 没有统一的国际性规范。 安全性由各卡片COS生产厂家,通过管理和测试进行保证。 安全控制机制 多种安全机制的参与,包括Applet之间的防火墙,安全域和安全通道的控制。 主要通过状态机来实现。特殊指令使状态机跳转,访问文件时判断状态机是否满足条件。 应用数据独立性 不同应用之间的数据直接访问是严格禁止的,由JavaCard平台实现的防火墙实现物理隔离。 将不同应用的数据组织为不同的ADF文件,靠的是卡片存储空间上的边界来区分。 数据访问 存储在RAM上的缓存数据,可以在应用失去选择,或者卡片Reset之后自动清除,无法再次访问,确保临时数据不会泄密。 存储在RAM上的缓存数据,在卡片Reset之后自动清除,无法再次访问,确保临时数据不会泄密。 数据存储 数据存储分为文件和内部数据对象两种方式。 对于像密钥一类的敏感数据,采用JavaCard规范定义的内部数据对象存储,该对象由JavaCard平台实现,对这些敏感数据进行特殊保护。 其他的普通存储数据,以文件形式组织,便于访问和管理。 数据统一按照文件的形式组织和存储。 不论是密钥还是数据,不论是敏感数据还是普通数据,都存放在文件中。 对密钥等敏感数据可能采取加密存储的方式,或者存放在特殊访问权限的文件中。 功能的增删 修改APDU指令 对相应的Applet源代码进行单独的修改,不影响其他应用的实现和稳定性,不影响底层的JavaCard平台的实现和稳定性。只需要对修改的Applet进行测试和认证。 对卡片操作系统(COS)进行修改,可能会影响其他应用的指令的实现和稳定性。 需要重新进行整体的测试和认证。 添加全新的指令 对相应的Applet源代码进行单独的修改,不影响其他应用的实现和稳定性,不影响底层的JavaCard平台的

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档