C卡和u卡的区别:原生智能卡和 Java卡的区别(java card)

我想知道本地智能卡和 Java 卡之间的区别是什么。

我知道 Java 卡智能卡有能力下载和删除小程序,我在 JavaCardOS 论坛上读到带有 Java 卡的智能卡没有指针。

如何在实践中从 Java 卡检测本地智能卡?它们有什么不同?

2

“智能卡”基本上是指具有包括完整 CPU 的 SoC 的处理器卡。Java 卡在智能卡之上运行。

本地智能卡通常被认为是包含使用“本地”处理器指令的运行时的智能卡。对于这些智能卡,应用程序和文件系统实现通常以低级语言实现,通常是 C。然后将此 C 编译为机器代码,即本机结构。C 当然具有指针算术。

基于文件的卡包含完整的 ISO / IEC 7816-4 / 9 / 11 文件系统,尽管这些卡通常也具有专有部分(这在某种程度上是必需的,因为 ISO / IEC 7816-4 不包含需要实现的完整规范,并留下许多空白由实施者填写)。本地和基于文件的智能卡之间有很大的重叠。

Java 卡使用由字节码组成的小程序,所以是的:Java 卡实际上包含一个字节码解释器,一个 Java 虚拟机。

由于处理和内存限制,链接是在开发环境中完成的(使用.class-& gt;.cap 转换器)。在那里创建引用,当值被取消引用时,引用将在运行时转换为指针。Java 卡仍然提供内存保护,不允许指针运算。这意味着 Java 卡小程序的交互能力有限,因为它们被防火墙彼此隔开。

没有任何特定的命令可以告诉您卡是否为 Java 卡。有些卡在交付给客户端时在 ATR 中有一组特定的历史字节。但是,这些也可能设置为不同的值。

如果要检查卡是否为 Java 卡:尝试使用 SELECT by AID 和Open and Global platform AID's查看卡上是否有 Card Manager。如果其中一个 SELECT 命令成功,则表明该卡是 Java 卡。

由于 Java Card 中的每个应用程序 DF 都是按名称选择的,因此您通常不会在根文件夹中找到按 DF ID 进行的 SELECT。如果之前没有工作,则选择 Java Card 小程序(即,当您在根目录中时),则卡可能是Java 卡。但是,有可能选择了默认的小程序,这样的小程序也可能实现该功能

0

对于本地智能卡,您只需添加整个文件系统(目录结构,包括特殊对象,如 PIN 和密钥),因为其他所有内容(算法实现)都是操作系统的一部分。

最简单的检查是:查看卡理解的某些指令的类字节。零可能表示符合 ISO 7816-4。

其他检查:ISO 7816-9 中的Create命令对 Javacard 没有用。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(136)
10月24号程序员:PHP:将“2011年10月24日”日期转换为“2011-10-24”的简单方法
上一篇
古代婚礼的程序:如何跳过古代的中间规则 (ancient cookies cookie run)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(77条)