问题标签 [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.
smartcard - GlobalPlatform 词汇表定义
这是全球平台 2.2.1 卡规范第 7 页的一部分。我可以请你帮我识别这些术语之间的不同吗?
哪一个是指cap文件?哪个是包,哪个是包内的小程序代码?
据我所理解 :
- 加载文件数据块 = .cap文件
- 可执行加载文件 = .cap文件 中的包
- 可执行模块 = 包内的 Applet 代码
正确的?
另一个(加载文件)呢?
而且,一个.cap文件是否可以包含多个包?还是每个.cap文件只包含一个包?(换句话说,是否存在包含多个可执行数据块的加载文件数据块)?如果不是,那么为什么 GP 为它们定义了两个不同的词,而两者都是相同的)?
http - 通过 http 客户端代理的 RAM?
我需要构建一个服务器,该服务器使用全球平台 amd.B 规范和 ETSI TS 102225 和 102226 中定义的 http 将小程序无线部署到 sim 卡中。
我的问题是关于 sim 卡上的 http 客户端。SIM 卡是否在发行卡之前由制造商嵌入了 http 代理,还是我必须提供 http 客户端小程序作为解决方案的一部分?
smartcard - 扩展 APDU 和 T=0/1 通信协议
我有一个 JCOP V2.4.2 R3 java 卡,它在其数据表“该卡同时支持T=1
和T=0
通信协议”中提到
我还有一个 ACR38 智能卡读卡器,它支持 T=0 和 T=1 协议。(我与一张卡成功T=0通信,与这张卡成功T=1通信。)
我编写了以下程序并将其上传到卡上以发送和接收扩展 APDU:
在 CAD 方面,我使用 python 脚本将不同的 APDU 发送到卡。问题是:
1-为什么我无法使用 T=0 协议开始通信(虽然提到卡支持此协议):
蟒蛇脚本:
输出:
2-为什么卡不能在 T=1 协议的扩展形式中使用 Select APDU 命令正常工作:
蟒蛇脚本:
输出 :
我想我误解了这个概念,我将扩展 APDU 与T=1
协议混为一谈T=0
!
每个T=1
兼容的智能卡,都可以发送和接收扩展 APDU 吗?我们不能通过T=0
协议发送和接收扩展的 APDU?如果我们想向安全域发送扩展的 SELECT APDU 命令,SD 必须实现ExtendedLength
接口吗?
对于扩展 APDU 传输有什么要求?
- AT=1 兼容读卡器
- AT=1 兼容智能卡
- 一个实现
ExtendedLength
接口的小程序
这样对吗?
T=0/1
我对智能卡中的扩展兼容性和兼容性感到非常困惑。任何光线都会受到赞赏。
请注意,我可以使用协议成功地将扩展 APDU 发送到上述小程序T=1
!
javacard - Why I receive `6C0B` instead of data that I expected?
I now have a Hello World project according this link and I made its .cap
file successfully. I have "DE-ABCM_TB" reader and a SAM card also.
My applet AID is 01 02 03 04 05 06 07 08 09 00 00
I could select my applet on the card.( I sent SELECT APDU command via "DualCard
Ver 2.8"/ pcsc tab) . I now must be receive hello in hex format when I send
8000000000
. But i receive 6C0B ! Why did I get this response and
how can I resolve this ? I searched but no solving found.
filesystems - 智能卡及其文件
据您所知,我们可以使用GlobalPlaformPro
以下工具列出驻留在 Java Card 中的小程序:
问题是:
- 这些小程序在卡片中的什么位置?(在
MF
?或在DF
?) - 谁选择它?(小程序安装到的目录)
- 有什么办法可以看到卡片的 AID
MF
和所有其他EF
的 s 和s 吗?DF
- 我的当前目录是什么?我可以改变它吗?
- 以及如何创建一个
DF
?
我试图创建一个DF
关于ISO7816-part9
如下定义的命令,但我只收到错误!
为什么我不能创建我想要的文件?
javacard - 获取 PCSC 异常 0x8010002f
我正在使用 JCOP 工具,因此将其加载到 java 卡中。它已成功加载到卡中,但是当我在其上发送命令时,选择 APPLET 给出 9000 但其他命令给出;
当我使用 Gpshell 时,我收到如下错误:
在调试模式下,所有结果都很好。谁能告诉我我在哪里做错了???
smartcard - 与 Java Card 和 Global Platform 建立安全连接
在模拟器上成功开发 Java Card 之后,现在我正在处理真正的 Java Card ( Gemalto IDCore 3010 )。我一直在使用Global Platform,但即使是最基本的示例代码也有问题,它会列出卡上的小程序。
这是原始代码:
我已经修改了,现在是这样的:
在 Global Platform 页面上,可以发现这些是open_sc命令的开关:
但遗憾的是,我找不到关于这些开关的足够信息。
- keyind:我发现的唯一信息是它是一个关键索引,我自己也猜到了。
- keyver:密钥集版本。和上面一样。
- key:我读到如果我有一张使用密钥派生的卡,我必须使用 -keyDerivation 选项启用派生模式,并且我必须使用 -key 指定主(母)密钥。所以在这里我提供了我的母钥匙(4F454D5850524553534F53414D504C45)。
- mac_key:它应该不相关,因为它是根据主密钥计算的。
- enc_key:它应该不相关,因为它是根据主密钥计算的。
- kek_key:它应该不相关,因为它是根据主密钥计算的。
- 安全性:我找到的信息是:0:清除,1:MAC,3:MAC+ENC。因为在我卡的数据表中我找不到这样的东西,所以我选择了“0”。
- scp:安全通道协议(1 SCP01、2 SCP02,默认未设置)。不需要明确说明。我的卡同时支持 SCP01 和 SCP02。
- scpimpl:安全通道实现(默认未设置)。不需要明确说明。
- keyDerivation:可能的值为“none”、“visa2”或“emvcps11”。此外,由于我在数据表中找不到这方面的信息,因此我将其堆叠为“无”。
这是我使用修改后的代码得到的错误消息:
有人可以告诉我出了什么问题以及我应该如何参数化和执行open_sc命令?非常感谢!
解决方案:这是工作版本:
eclipse - Eclipse 生成的 .cap 文件无法安装在 JavaCard 上
我正在尝试在我的 JavaCard (Gemalto IDCore3010) 上安装小程序。我成功使用 GlobalPlatform helloworld.cap 文件,但是当我在 Eclipse (4.4.2) 中使用相同的源代码生成 .cap 文件时(虽然具有不同的包名称,但这不重要)我收到错误消息都使用 GlobalPlatformShell 和 GlobalPlatformProShell。我使用与原始文件相同的命令和脚本。我还尝试了其他一直在模拟器上工作的 .cap 文件,所以代码本身应该没问题。我上传了原始的 GlobalPlatform helloworld.cap 文件、我在 eclipse 中生成的 helloworld2.cap 文件,以及在这个 zip中的模拟器中工作的另一个 jctest.cap 文件。
你知道什么可能导致这个问题吗?谢谢!
这是 GPSShell 脚本:
GP情况下的输出:
GPP 情况下的输出:
smartcard - 创建一个小程序来改变卡片或其他小程序的生命周期
是否可以编写一个具有更改卡的生命周期或其他小程序生命周期的能力和特权的小程序?如果是这样,怎么做?我必须使用哪些类和方法?
gsm - 如何使用 SIM 卡(安装小程序)
我有一张具有以下 ATR 的智能卡:
ATR = 3B 9E 94 80 1F 42 80 31 00 73 BE 21 10 66 54 59 53 04 4C 25 CF
.
根据atr-parse.appspot.com的输出,我发现它是一张MCI(伊朗移动通信公司)SIM 卡。
这些是我从历史字节中获得的信息:
(紧凑 TLV 数据对象)
Tag:3,Len:1(卡服务数据字节)
卡服务数据字节:0
EF.DIR 和 EF.ATR 访问服务:通过 GET RECORD(s) 命令
MF卡
标签:7,Len:3(卡片功能)
选择方法:190
支持的记录号
支持短 EF 标识符
隐式 DF 选择
按文件标识符选择 DF
DF选择路径
按全 DF 名称选择 DF
数据编码字节:33
写函数的行为:专有
BER-TLV 标签字段的第一个字节的值“FF”:有效
四重奏数据单位:1
命令链、长度字段和逻辑通道:16
逻辑通道号分配:由卡
最大逻辑通道数:1
标签:6,Len:6(发布前数据)
数据:54 59 53 04 4C 25“TYS.L%”
正如您在上面看到的,提到该卡有一个MF
.
问题是我不能用这张卡做任何事情。在第一步中,我想列出它的内容。我查看了TS 11.11、TS 102.221、TS 131.102和TS 151.011规范。
据我从上述文件中了解到,该卡的系统文件Master File
由其 AID3F00
和一些 DF-s 和 EF-s 组成。例如,基于TS 151.011规范的下表,我尝试选择一些 DF-s:
这些是结果:
正如你在上面看到的,我都失败了,我只能找到 ISD 的 AID。
我也尝试使用GlobalPlatformPro工具列出内容,但该卡似乎不支持 Initial Update APDU 命令:
我想知道怎么了?如何在这张 SIM 卡上安装 java 卡小程序?
请注意,我已经成功地使用了 Java Card,但我对这些 SIM 卡完全感到困惑。我很感激任何人都可以对这个问题有所了解。问候。