繁体   English   中英

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

[英]is jcop is only way to install applet in java card?

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

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

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

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

我可以这么说吗? 这是一张由IBM制作的操作系统。 并且我们只需要和只有JCOP工具在这张卡内发送上限,因为OS内部是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文件,我想知道我的卡案例{atr是-3b 89 80 01 4a .... 40(字符形式表示 - ; --- jcop41v22m)},我可以应用gpshell在我的卡中发送.cap文件。

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

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

对问题主题的回答是:

没有。

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

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

你读的是正确的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版本的任何工具。

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

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

  1. 是的,Java Card实现中的VM执行所有字节代码。
  2. 您可以使用任何与Global Platform兼容的库,尽管存在一些可能会产生影响的实现错误。
  3. 尝试一下,它应该工作
  4. Java Card是一种标准,实现由Oracle测试,因此将Applet发送到另一张卡应该可以工作* 1

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM