向 Javacard 发送扩展 APDU

2024-01-08

我有一个 ACR38 智能卡读卡器和一些符合 GP 规范 [02] 的 Javacard [2.1.1]。

据我所知,有两种APDU,短APDU[APDU 与LC or/and LE比。。。短255] and 扩展APDU[APDU 与LC or/and LE比...更棒255].

是对的吗?

我们发送 Short-APDUT=0协议并发送扩展 APDUT=1协议。

是对的吗?


我已成功将 Short-APDU 发送到我的卡。 [通过GPJ, GPShell, OpenSC 工具].

现在,我想知道:

1:如果我想使用扩展APDU,我的卡必须支持它吗?或者我的读者必须支持它?或两者!?或者所有卡和所有读卡器都支持短 APDU 和扩展 APDU?

2:如果它们必须支持 EXTENDED-APDU,我如何检查它们是否符合要求?

3:我是否需要其他工具或者我可以使用相同的 GPJ、GPShell 和 Opensc 工具来发送扩展 APDU?如何?


Update:我找到了以下数据here http://pcsclite.alioth.debian.org/ccid_extended_apdu.html,但如果有人给我更详细的数据,我将不胜感激:

为了能够使用扩展 APDU,您需要:

  • 一张T=1张卡
  • 以 TPDU 或扩展 APDU 工作的智能卡读卡器

智能卡读卡器可以使用 4 种不同的交换级别进行工作:

  • 特点
  • TPDU
  • 短APDU
  • 短 APDU 和扩展 APDU

人物等级:只有极少数读者使用这种方法。我不知道他们是否/如何支持扩展 APDU。

TPDU 级别:通过此交换级别,许多工作都是在驱动程序中完成的。特别是对扩展 APDU 的支持由驱动程序管理,并且 CCID 驱动程序实现它。

短 APDU:从驱动程序的角度来看,这些读取器易于使用,但仅限于短 APDU。那么就不可能支持扩展 APDU。

一些读者声称他们仅支持短 APDU,但在与制造商 Windows 驱动程序一起使用时可以使用扩展 APDU。也许 Windows 驱动程序将读卡器切换为 TPDU 模式或类似模式。这不是一个有记录的 CCID 功能,因此在我的 CCID 驱动程序中没有使用。如果您可以从读卡器制造商处获得相关信息,我可能会在我的驱动程序中包含对读卡器的扩展 APDU 的支持。

短APDU和扩展APDU:扩展 APDU 的支持由阅读器提供。

我认为根据上述更新部分,我得出的结论是卡和读卡器必须支持 EXTENDED-APDU。为了检查它们是否符合扩展 APDU,我必须搜索产品文档以及为我们提供以下列表的网站:支持扩展 APDU 的读卡器。这样对吗?


您也可以在 T=0 中发送扩展 APDU,但为此您的卡必须支持“javacardx.apdu”。请参考javadoc链接

这是了解您的卡支持什么的方法。

00 A4 04 00 <length of Card manager AID> <AID> [Select card manager]

00 20 00 00 08 <Card manager PIN> [verify card manager PIN]

00 80 F2 20 00 02 4F 00 - [get status command with P1 20] and [Executable Load Files and Executable Modules 4F00]

您将获得响应此命令的所有包 AID,然后搜索 AID“A0000000620209”。

如果可用,则支持 javacardx.apdu。有关“获取状态”命令的更多信息,请参阅 GP 2.2.1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向 Javacard 发送扩展 APDU 的相关文章

  • 如何更改小程序的权限和卡历史字节?

    我已经认为更改历史字节仅限于预个性化步 但是 我发现了一个名为设置ATRHistBytes今天在 GlobalPlatform API 中 这是它的描述 GlobalPlatform 2 2 第 172 页 设置ATRHistBytes p
  • 在 gpshell 中更改 Global Platform 默认密钥后,java 卡管理器身份验证失败

    我想更改用于加载小程序和向卡管理器发送安全消息的全局平台默认密钥 我可以使用以下命令成功更改我的金雅拓默认 GP 卡密钥 mode 211 enable trace establish context card connect reader
  • Apple Watch 是否能被 RFID 读取器检测到?

    我是 NFC 技术的新手 苹果尚未向开发者开放 NFC 这是否意味着第 3 方应用程序无法在设备上写入数据或触发操作 但是否可以使用类似于智能卡的 RFID 读取器来识别手表呢 使用支持 NFC 的 Apple Wallet Pass 可以
  • ACR122u卡仿真模式发送PN532命令

    我刚刚读过this https stackoverflow com a 23197444 1852589回答有关如何将我的 ACR122U 置于卡模拟模式的问题 我确实明白其目的 但您需要如何将命令发送到 ACR122u 据我所知 FF00
  • 用于获取智能卡序列号的 APDU 命令

    如何使用 APDU 命令获取智能卡的序列号 我尝试使用 SCardGetAttrib 函数来查询它winscard dll不幸的是 我被告知使用 APDU 命令来执行此操作 因为没有标准方法来获取序列号 问题是我无法弄清楚我的智能卡是什么类
  • Android ACR122U NFC 集成

    See NFC 读取器 SELECT 通过 AID APDU 未路由到 Android 设备 https stackoverflow com q 50316799 2425802关于调试和最终结果 TL DR 读者可能已经不复存在了 我的
  • JAVACARD2.2中selectApplet()方法的功能是什么

    正如 JavaCard 2 2 API 文档中提到的here http www win tue nl pinpasjc docs apis jc222 javacard framework Applet html selectingAppl
  • 向 Javacard 发送扩展 APDU

    我有一个 ACR38 智能卡读卡器和一些符合 GP 规范 02 的 Javacard 2 1 1 据我所知 有两种APDU 短APDU APDU 与LC or and LE比 短255 and 扩展APDU APDU 与LC or and
  • Java Web 应用程序可以访问远程工作站上的智能卡读卡器吗?

    我正在为我们现有的基于 Java 的 Web 应用程序之一开发一些新功能 该网络应用程序本身托管在我们的一台内部服务器上 可以通过我们工厂内多个计算机终端的浏览器进行访问 该应用程序用于在我们生产过程的各个阶段进行质量检查 目前 在进行每次
  • 是否有免费的虚拟智能卡可供我用来运行一些测试?

    我想这没有什么区别 但我会尝试使用 Java 应用程序来访问它 更新 我将在公钥 私钥加密系统中使用智能卡 智能卡有不同类型 您没有明确说明您指的是哪种测试 但我猜您正在谈论加密智能卡 JavaCard 开发套件包含一个参考 JCRE 可用
  • 带有 ACR122U 的 libnfc 对 SELECT(通过 AID)APDU 没有响应

    See NFC 读取器 SELECT 通过 AID APDU 未路由到 Android 设备 https stackoverflow com q 50316799 2425802关于调试和最终结果 TL DR 读者可能已经不复存在了 我有
  • Javacard 共享接口:lookupAID 返回 AID,但 getAppletShareableInterface 返回 null

    编辑2 发现错误 我尝试在构造函数中初始化 Shareable 对象 此时客户端的register方法还没有被调用 所以JCRE没有它的AID 虽然我的服务器的 getShareableInterfaceObject AID clienta
  • 将证书从智能卡复制到计算机

    是否可以将证书从智能卡复制到计算机并 用它来登录某个站点 在 Mac 上 这些证书出现在钥匙串中 并且可以保存到磁盘 但我不确定如何强制站点提示对话框屏幕以选择证书 连接智能卡后 会出现提示并要求选择证书 智能卡包含由封装在 X509 证书
  • 智能卡项目中WIN32和x86的区别

    我有智能卡相关的项目 在智能卡领域x86和win32有什么区别 因为我必须在vc 中创建32位应用程序 那么什么解决方案平台 我应该选择MS Visual Studio 2008 x86 用于 Intel AMD 特定代码生成 而 Win3
  • 在 Android 上使用 NFC 软件卡模拟控制完整的 APDU

    我正忙于开发一个应用程序来模拟 Nexus 7 上使用 CM10 1 与 ACR122U102 读取器 写入器的正常 APDU 通信 我发现这个博客是关于软件卡模拟 http nelenkov blogspot nl 2012 10 emu
  • 扩展 APDU 和 T=0/1 通信协议

    我有一个 JCOP V2 4 2 R3 java 卡 它的数据表中提到 该卡支持T 1 and T 0通信协议 我还有一个 ACR38 智能卡读卡器 它支持 T 0 和 T 1 协议 我与一张卡成功进行了 T 0 通信 并且与该卡成功进行了
  • SCardEstablishContext 内存泄漏

    我们在某些 Windows 安装上突然出现智能卡 API 问题 调用 SCardEstablishContext 函数时似乎存在内存泄漏 可以在控制台应用程序中重现该问题 代码示例位于http www pinvoke net default
  • 如何发送APDU到Mifare Classic 1k卡?

    我想要实现的是将 APDU 命令发送到 MIFARE Classic 1K 卡以更改其 A 和 B 密钥 我能够与卡建立连接并使用默认密钥 FFFFFFFFFFFF 来读取块 0 和块 1 我使用了 HID MifareSamples 应用
  • 作为 Windows 服务运行时的 PCSC.InvalidContextException

    我一直在使用 pcsc sharp 库开发一个小型智能卡扫描仪应用程序 该应用程序作为控制台应用程序运行时工作正常 代码如下 using System using System Collections Generic using Syste
  • mifare 卡身份验证错误“6982:安全状态未满足”

    我有 pc sc 读卡器和非接触式卡 mifare 卡 我可以连接到该卡 并且我也成功执行 getdate 命令 但是当我想进行身份验证时 我看到此错误 6982 安全状态不满足 我已经尝试过这 3 个不同的身份验证命令 但所有这些命令都出

随机推荐

  • 保护 Firestore 中的特定文档字段

    我正在尝试创建一个简单的系统 允许用户使用他们提供的信息创建帐户 现在 我将所有数据存储在一个集合中users其中有一些代表用户的文档 我想保留用户的一些敏感数据 例如电子邮件地址和电话号码 在 Firebase 数据库中 我会创建如下内容
  • 按 Soundex(或类似)“亲密程度”排序

    有什么方法可以让 MySQL 根据结果与搜索词的 听起来 接近程度来对结果进行排序吗 我正在尝试对包含用户输入的城市名称的字段进行排序 存在变体和拼写错误 我想在顶部显示 最接近 的匹配项 我知道 soundex 可能不是最好的算法 但如果
  • 从命令行安装驱动程序 (.inf) 文件

    我正在 Windows 8 1 中工作 我需要安装驱动程序文件 inf文件 从命令行 我需要使用哪个命令 我知道我还有很多其他方法来安装 inf文件 但我必须从命令行安装它 请帮我 提前致谢 Granger 的评论也适用于 Windows
  • Apache Kafka - 主题/分区上的 KafkaStream

    我正在为大容量高速分布式应用程序编写 Kafka Consumer 我只有一个主题 但收到的消息率非常高 拥有多个分区来服务更多消费者将适合此用例 最好的消费方式是拥有多个流读取器 根据文档或可用示例 ConsumerConnector 给
  • 如何为 Android 支持库启用 javadoc?

    当使用 Android 支持库来实现兼容性并尝试查看 javadoc 时 例如 FragmentTransaction 我收到以下错误 因为没有关联的 javadoc 文件 android support v4 app FragmentTr
  • 如何使用 JSTL 对表示 URL 路径的字符串进行编码?

    使用 JSTL 对表示 URL 路径 而不是请求参数 的字符串进行 URL 编码的最佳方法是什么
  • Django 模型、信号和电子邮件发送延迟

    我已经向我的模型添加了一个信号 一旦保存模型 通过models signals post save connect信号和send mail用于发送电子邮件 这个想法仍然会给用户带来延迟 当他们在网站上保存模型时 他们必须等到所有这些电子邮件
  • 如何通过 UiPath 读取 Excel 工作表并将单元格值放入不同的文本字段中?

    如何通过 UiPath 读取 Excel 工作表并将单元格值放入不同的文本字段中 我有一张Excel表格 如下 我已阅读 Excel 内容并稍后迭代内容 我将内容存储在Output Data Table如下 读取范围 输出 数据表 CV数据
  • pyhive、sqlalchemy无法连接到hadoop沙箱

    我已经安装了 pip install thrift pip install PyHive pip install thrift sasl 和 自从pip install sasl我下载失败sasl 0 2 1 cp27 cp27m win
  • abs(unsigned long) 有任何意义吗?

    我遇到过这段代码 我的分析器偶然将其报告为瓶颈 include
  • MVC 3 在哪里加密用户的密码?

    我有自己的密码加密 dll 用于在用户登录时检查用户的密码 这在我的用户实体中引用 现在我已经为用户创建了注册功能 除了密码尚未加密之外 该功能运行良好 我的问题很简单 我应该把新用户密码的加密放在哪里 我不确定 因为我知道用户的密码不应该
  • 我应该在注入的 Angular 服务上使用只读而不是公开它们吗?

    今天我进行了一次讨论 我的一些同事说他们像这样注入 Angular 服务 constructor readonly language I18nService 他们说他们这样做是因为它可以防止我的组件的使用者更改注入的服务 有点像这样 Com
  • Python 类构造函数(静态)

    Python 是否有类构造函数的机制 即每当首次引用类时 而不是创建该对象的实例时 调用的函数 我知道这在其他一些语言中也存在 但我还没有在Python中遇到过 基本上 我想初始化该函数中的一些静态属性 我在下面举了一个我所期望的例子 当然
  • 如何在同一页面上加载多个版本的 jQuery 插件?

    我正在尝试使用最新版本的时间选择器插件 http trentrichardson com examples timepicker 用于 jQuery UI 另一个库已经在早期版本加载了它 1 0 4 但我想使用最新的 1 4 5 版本 在源
  • 使用 Spotify Web API / Playback SDK 检测曲目播放结束

    使用 Spotify Web API 和 Web Playback SDK 有人知道检测曲目播放何时完成 即歌曲结束 的好方法吗 我知道一些名为player state changed在Web Playback SDK中 但是事件中提供的数
  • JavaScript 中二维数组的切片/部分

    我需要用二进制代码获取二维数组的切片 我需要指定我想从哪里开始以及在哪里结束 现在我有这段代码 但我很确定它是错误的 var slice var endx 30 var startx 20 var starty 10 var end 20
  • 如何用Java流畅地构建JSON? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话
  • 使用 Delphi XE5 for Android 创建 WifiConfiguration

    我正在尝试为 Android 创建 WifiConfiguration 可以设置所有其他属性 但如果我尝试设置 SSID 或 BSSID 则会出现分段错误 11 并且应用程序和 Delphi 会挂起 var WIFIConfig JWifi
  • Qt4:QAbstractTableModel 拖放,不带 MIME

    我有一个继承 QAbstractTableModel 的类 并在 QMap 中保存一些复杂的结构 这QVariant data QModelIndex index 方法只返回一个枚举 它描述自定义项目委托应如何绘制单元格的内容 我想在这个模
  • 向 Javacard 发送扩展 APDU

    我有一个 ACR38 智能卡读卡器和一些符合 GP 规范 02 的 Javacard 2 1 1 据我所知 有两种APDU 短APDU APDU 与LC or and LE比 短255 and 扩展APDU APDU 与LC or and