4

我正在尝试理解java卡的概念,我有一些疑问,我想分享一下,也许你会给我最好的建议。

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

问题1 - 如果上面这句话是对的,那就意味着jcop是IBM开发的操作系统,处理卡内的所有操作。对吗?
我有一张卡片,上面写着

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

那我可以说吗?这是一张 os 由 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 获得的上述代码,代码样式表明这也是在 java 卡内发送 cap 文件的方法,我想知道对于我的卡盒 { atr is -3b 89 80 01 4a ....40(以字符形式表示- ;---jcop41v22m)} ,我可以应用 gpshell 在我的卡中发送 .cap 文件。

问题 4 - gpshell 是否用于将 cap 发送到一个特殊的 java 卡中,该卡不是 jcop 启用或不包含 jcop 操作系统?

有这么多技术,这么多类型的java卡,这让我很困惑,我希望你觉得这个问题是真实的,并且会给我回复:-

4

6 回答 6

3

这个问题很好。我看到很多人使用智能卡多年,但仍然无法获得图片。

你读的是对的 JCOP 是智能卡的操作系统。

尽管您必须使用 JCOP 工具来部署小程序是不正确的。它们可能会有所帮助,但这不是唯一的方法。其实你需要知道的是你的卡支持什么版本的全球平台。全球平台是定义如何管理 Card Contend 的标准。这包括安装、安全概念等。例如,如果您的卡支持 GP 2.1.1,您应该使用此文档作为参考:

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

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

我希望这让它更清楚一点。

于 2012-03-16T08:55:52.050 回答
3

对题主的回答是:

不。

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

于 2014-01-27T20:30:36.563 回答
2

NXP 目前拥有 JCOP,您应该向他们提问。

  1. 是的,Java Card 实现中的 VM 执行所有字节码。
  2. 您可以使用任何与全球平台兼容的库,尽管存在一些可能会产生影响的实现错误。
  3. 试试看,应该可以的
  4. Java Card 是一个标准,Oracle 对实现进行了测试,因此将您的 Applet 发送到另一张卡应该可以工作 *1

*1 除非您做出未在 Java Card 中清除的假设、为该卡使用过多的堆栈或堆内存、使用不存在的加密算法、未由其他卡实现的 Java Card API,或者当然,专有的 JCOP 功能。

于 2012-03-01T19:58:43.573 回答
1

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

于 2012-07-21T20:19:07.010 回答
1

Q1&Q2:没有。Java Card OpenPlatform (JCOP) 是Java Card 平台的智能卡操作系统是对的。但它不是部署applet 的唯一工具。例如,我正在使用PyAPDUTool在 java 卡内发送 cap 文件。

Q3: 是的,您可以使用 gpshell 将 .cap 文件发送到您的卡中。

Q4:不,您也可以将您的小程序发送到其他 javacards。

于 2015-05-28T11:46:25.727 回答
0

不。你可以看看这个网站“www.javacos.com”。在这方面jcide的工具也能得到你想要的,而且是免费的。虽然有些功能不是很完善。

于 2015-05-27T08:58:45.807 回答