是jcop只是在Java卡中安装applet的方法吗?

时间:2012-02-29 18:05:11

标签: javacard

我想了解java卡的概念,我有些疑惑,我想和大家分享一下,也许你会对我有任何最好的建议。

// Jcop-我在某处读到Java Card OpenPlatform(JCOP)是IBMZürich研究实验室开发的Java Card平台的智能卡操作系统。

问题1 - 如果上述句子是正确的,则意味着jcop是IBM开发的操作系统,处理card.right中的所有操作。 我有一张卡片表明

ATR like-3b 89 80 01 4a .... 40(字符形式表示 - ; --- jcop41v22m),

所以我可以这么说吗?这是一张由IBM制造的卡片。并且我们只需要和只有JCOP工具在这张卡内发送上限,因为内部的操作系统是JCOP,而jcop工具是与jCOp卡通信的唯一选项吗?

问题2 - 还是有其他方法我可以在我的卡内发送小程序吗?

    enable_trace
    establish_context
    card_connect
    select -AID a0000000030000
    open_sc -security 1 -keyind 0 -keyver 0 -mac_key 404142434445464748494a4b4c4d4e4f -enc_key 404142434445464748494a4b4c4d4e4f // Open secure channel
    delete -AID D0D1D2D3D4D50101
    delete -AID D0D1D2D3D4D501
    delete -AID D0D1D2D3D4D50101
    install -file helloworld.cap -nvDataLimit 500 -instParam 00 -priv 2
    # getdata
    # close_sc // Close secure channel
    # putkey // Put key

  // options:
  //          -keyind Key index
  //          -keyver Key version
  //          -key Key value in hex
card_disconnect
release_context`

问题3 - 上面代码我从gpshell 1.4.4获得,代码样式表明这也是一个方法tp发送java文件中的cap文件,我想知道我的卡片case {atr是-3b 89 80 01 4a .... 40(字符形式表示 - ; --- jcop41v22m)},我可以应用gpshell在我的卡中发送.cap文件。

问题4 - gpshell用于将cap发送到一个特殊的java卡,它不是jcop启用或不会影响jcop操作系统?

有这么多技术,这么多类型的Java卡,它让我感到困惑,我希望你看起来这个问题真实而且会让我回复 问候: -

6 个答案:

答案 0 :(得分:3)

问题很好。我看到很多人使用智能卡多年,但仍然无法获得相关信息。

你读到的是正确的JCOP是智能卡的操作系统。

虽然您不得不使用JCOP工具来部署applet。他们可能会有所帮助,但这不是唯一的方法。实际上,您需要知道的是您的卡支持哪种版本的Global Platform。 Global Platform是定义Card Contend如何管理的标准。这包括安装,安全概念等。例如,如果您的卡支持GP 2.1.1,则应将此文档用作参考:

http://www.win.tue.nl/pinpasjc/docs/Card%20Spec%20v2.1.1%20v0303.pdf

gpshell,jcshell等所有工具都在更加用户友好的命令中包装全局平台命令,并为您实现安全协议。因此,您可以使用任何支持目标卡GP版本的工具。

我希望这会让它更加清晰。

答案 1 :(得分:3)

回答问题的主题是:

NO。

查看https://github.com/martinpaljak/GlobalPlatform

答案 2 :(得分:2)

恩智浦目前拥有JCOP,您应该向他们提问。

  1. 是的,Java Card实现中的VM执行所有字节代码。
  2. 您可以使用任何与全球平台兼容的库,尽管存在一些可能会产生影响的实施错误。
  3. 试一试,它应该有用
  4. Java Card是一种标准,实施由Oracle测试,因此将Applet发送到另一张卡应该可以正常工作* 1
  5. * 1除非您做出未在Java Card中清除的假设,为该卡使用过多的堆栈或堆内存,使用不存在的加密算法,Java Card API尚未由其他卡实现,或者当然是专有的JCOP功能。

答案 3 :(得分:1)

问题1的答案是“不”。您不应该依赖ATR中的历史字节"jcop41v22"来识别卡的类型。任何Java Card小程序都可以更改这些字节。

答案 4 :(得分:1)

Q1& Q2:不错.Java Card OpenPlatform(JCOP)是Java Card平台的智能卡操作系统。但它并不是部署applet的唯一工具。例如,我使用PyAPDUTool在Java卡中发送了一个cap文件。

问题3:是的,您可以使用gpshell在您的卡中发送.cap文件。

问题4:不,您也可以将小程序发送到其他javacards。

答案 5 :(得分:0)

NO。 你可以看一下这个网站" www.javacos.com" 。在这个jcide的工具也可以得到你想要的东西它是免费的。虽然有些功能不是很完美。