问题标签 [globalplatform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
794 浏览

javacard - Java Card、PCSC lite 和 Applet Playground 的问题

我一直在尝试开始使用 Java Card。我在此链接下载并安装了存储库:https ://github.com/martinpaljak/AppletPlayground/希望开始开发和使用小程序,但到目前为止我还没有成功与卡或读卡器交互方法。跑步

在命令行不返回任何内容 - 根据 GlobalPLatform 站点https://github.com/martinpaljak/GlobalPlatform,它应该返回有关卡的信息。在命令行上运行“pcsctest”会产生

取决于我插入阅读器后的时间。如果我在pcsctest返回“服务不可用”时运行任何命令,我会收到错误消息

我正在使用 OS X。我尝试了几种不同的工具来与 Java Cards 交互,但没有一个可以工作。如果有人能告诉我我可能做错了什么或建议一种更好的与 Java Cards 交互的方法,我将非常感激。

0 投票
1 回答
677 浏览

applet - PC/SC 或 openSC 未找到 Java 卡

我一直在尝试与 Java Card 交互,但到目前为止我还没有成功。我已经下载了 openSC、GlobalPlatform,并且我一直在使用 PCSC for OS X。正在运行

测试

在命令行导致以下结果:

肌肉 PC/SC Lite 测试程序

测试 SCardEstablishContext :命令成功。

测试 SCardGetStatusChange

请插入一个工作阅读器:命令成功。

测试 SCardListReaders :命令成功。

阅读器01:飞天R502 00 00

输入读者编号:01

等待插卡

它在什么时候停止;我确实在读卡器中插入了一张卡。还有,跑步

opensc工具-n

返回

卡不存在。

我已经阅读了这个先前的 stackoverflow 问题:pkcs11 support for kona 25 javacard但我不知道如何确定卡是否为空白,如果我不能使用任何工具,则将 PKI 小程序加载到它上面'已经找到查看卡片的内容。谁能建议为什么,或者我如何找出原因,这些工具都没有注意到我插入读卡器的卡。我正在使用 os x 10.9.2、飞天 R502 阅读器,我已将其产品/供应商 ID 添加到 ccid 包中的 Info.plist 中,以及 G+D smartcafe JavaCard。

0 投票
1 回答
1580 浏览

smartcard - 如何将我的 JAVA 卡生命周期状态更改为 OP_READY?

我在 Oracle 中找到了以下脚本(This lint)并在我的 java 卡上运行它,GPShell现在我无法运行!gpj -listGPJ

我的问题:

1-这个代码是做什么用的?将卡域管理器状态从 OP_READY 更改为 Secured?

2- 为什么我找不到任何地方80F0800708A000000003000000以及80F0800F08A000000003000000脚本中使用的 APDU?!我在部分GP Specification 2.2中搜索ISO 7814-4了一个 APDU !但是我什么也没发现!F0CLA

3- 下面脚本的操作是否可以被另一个脚本逆转?

剧本 :

这是它在 Console 中的输出:

谢谢你。

0 投票
1 回答
1035 浏览

smartcard - What is the difference between OP_READY and SECURED statuses?

I put ISD status of my java card in SECURED status. I want to know what capability of card lost in this new status in comparison to OP_READY?

Note: as I try, I can upload and install new .cap files on card and delete them successfully yet [in this new ISD status]!

I'll be thankful if somebody explain simply the primary differences between different statuses? I already read Global Platform Specification 2.2.2 , but it is a little hard to understand for me unfortunately!

0 投票
1 回答
884 浏览

javacard - NXP SmartMX 卡生命周期管理

我从 NXP 获得了一堆 SmartMX 双接口卡,并下载并设置了 JCOP 工具。虽然将我的 Java Card Applet 从 NetBeans 迁移到 Eclipse 相当容易,但在卡本身上安装已编译的 applet 却相当困难。我无法在这些示例卡上选择安全域小程序。我相信这与卡片所处的状态有关,因为 NXP 为我提供了运输钥匙,并严格禁止卡片在没有先以某种方式融合的情况下离开我的场所. 我曾使用过 ACS 卡(即 ACOS3),并猜测这些 SmartMX 卡处于其生命周期状态,不允许小程序上传和/或个性化。我的问题是,我无法在 NXP DocStore 和网络上找到有关 JCOP 生命周期的文档。唯一接近描述我正在寻找的文档是一个名为GlobalPlatform Card Specification 2.2的 PDF ,其中说与 GP 2.2 兼容的卡至少有 5 种不同的状态:OP_READYINITIALIZEDSECUREDCARD_LOCKEDTERMINATED。该文件未指定使用Transportation Key

我的问题是,如何使用此交通密钥将卡的状态从OP_READY更改为INITIALIZEDSECURED

0 投票
1 回答
8139 浏览

cryptography - 如何检查 INITIALIZE UPDATE 和 EXTERNAL AUTHENTICATE 的正确性?

在此处输入图像描述

我通过 opensc-tool 向我的 java 卡发送了80 50 00 00 08 00 00 00 00 00 00 00 00[ INITILIZE UPDATE00 00 11 60 01 00 8A 79 0A F9 FF 02 00 11 79 11 36 5D 71 00 A5 A5 EC 63 BB DC 05 CC命令] 并收到了[ Init Response ] 作为来自卡的响应。

如你所见:

在命令中,我00 00 00 00 00 00 00 00作为Host Challenge发送,并且在响应中:

00 00 11 60 01 00 8A 79 0A F9=关键多元化数据

FF 02=关键信息

00 11 79 11 36 5D 71 00=卡片挑战

A5 A5 EC 63 BB DC 05 CC=卡密码

现在我想检查一下自己,卡密码是否正常。我该怎么做?例如,我00 00 00 00 00 00 00 00站点中使用 3DES 加密算法 [使用我卡的密钥 = 4041...4F] 进行加密,但输出与我上面写的卡密码不相等。为什么?

下一个问题是,如果我想向卡发送EXTERNAL AUTHENTICATION命令,它的数据字段是什么(在上述 INITILIZE UPDATE 之后)?

更新:

这是 GPJ 输出:

所以 :

现在,让我们手动制作我们的 Host_Cryptogram:

所以 :

我使用了http://tripledes.online-domain-tools.com/,它对上述值的输出是:

和 :

所以 :

同样,我使用了http://tripledes.online-domain-tools.com/

和 :

所以 :

为什么这两种方式[手动和GPJ输出]给我们两个主机密码?

0 投票
1 回答
254 浏览

smartcard - jcmanager 中身份验证过程的主要问题?

1:

在此处输入图像描述

2:

在此处输入图像描述

3:

在此处输入图像描述

以上图片附在问题上,根据他们提出我的问题!

1-正如我们在GP 规范中所知道和提到的,卡片挑战有 8 个字节的长度,但在第一张照片中,JCManager显示了一个 6 字节的卡片挑战!为什么?

2-根据GP规范生成的推导数据与JCManager中的推导数据不相等!为什么?!

3-基于图2,如果静态S_ENC静态S_MAC具有相等的值,我们得出结论会话S_ENC会话S_MAC必须具有相等的值。那正确吗?如果是,为什么在 JCManager 中它们之间存在差异?

4-我使用这个站点并通过ECB(DES)加密对JCManager中突出显示的派生数据进行加密,但输出不是预期的!又是为什么!?

0 投票
1 回答
3036 浏览

smartcard - 智能卡中的逻辑通道

下图是 ubuntu 中的输出,pcsc_scan正如ATR 分析中看到的,我的 javacard 支持 3 个逻辑通道。

在此处输入图像描述

这是ISO 7816-4的一部分,它提到了 CLA 中的低半字节,表示逻辑通道号:

在此处输入图像描述

问题是:为什么当我想通过另一个逻辑通道而不是基本逻辑通道发送 INITIAL-UPDATE APDU 命令时,它会失败?

CLA = 80使用[基本逻辑通道]进行初始更新

CLA = 81 or 82使用[补充逻辑通道]进行初始更新

如您所见,我收到了SW = 6881[= 不支持逻辑通道]。为什么?


更新 :

“如果一个javacard有两个/三个逻辑通道,那意味着我们可以同时选择两个/三个applet”,这是对的吗?如果是,拥有多个频道的其他好处是什么?如果不是,这个渠道是干什么用的?

0 投票
2 回答
2646 浏览

smartcard - 选择 APDU 和逻辑通道

据我所知,要打开/关闭逻辑通道,我们必须使用MANAGE CHANNELAPDU 命令。

  • 打开逻辑通道:00 70 00 P1 P2 LE
  • 关闭逻辑通道:00 70 80 P1 P2 LE
  • P1-P2 = 0000-0003
  • LE= 01(如果 P1-P2= 0000) 或 Empty (如果 P1-P2!= 0000)

. 默认情况下唯一开放的逻辑通道是基本通道。

问题:

1-为什么当我通过关闭的逻辑通道发送SELECT APDU时,它会自动打开?

2-我们何时必须/需要使用打开/关闭逻辑通道命令(MANAGE CHANNEL)?

这是Opensc-tool的输出,如您所见,我通过逻辑通道 1 和 2 成功发送和接收SELECTGET RESPONSE命令和响应,而之前没有打开它们:

逻辑通道 1:

逻辑通道 2:

0 投票
4 回答
1369 浏览

smartcard - 无法删除小程序

我为此处的代码创建了一个.cap文件。它是一个简单的一次性密码生成器。

最后我设置010203040506070809package IDapplet AID0102030405060708090000 ,并将其上传到我的卡上。

这是我列出小程序时GPJ的输出:

如您所见,我的小程序已成功上传。


上传后,我将一些 APDU 发送到我的小程序:

正如您在上面看到的,我选择了我的小程序,向它发送验证命令(一次输入正确的 PIN,三次输入错误的密码)。并使其锁定。


现在我想删除小程序:

Q1 : 我是屏蔽了卡还是只是屏蔽了我的小程序?

Q2 : 为什么我不能删除它,我该怎么办?