我正在尝试编写一个简单的 javacard 应用程序,它允许您使用简单的 APDU 命令读取卡片 GUID/UUID。
据我了解,每张智能卡都包含一个卡独有的 GUID。此 GUID 应可使用标准 APDU 命令检索。
有谁知道如何做到这一点?可能有示例项目,甚至只是一个执行此操作的 java 函数?
此致
AE
AFAIK GUID/UUID 不是适用于任何智能卡产品的标准卡实例识别方法。例如,SIM 卡是使用文件 EF_ICCID(ICC 标识)(ETSI TS 102 221 V6.15.0 (2010-02))的内容来标识的,因此您可以通过普通的 UICC 文件访问 API 获取它。ATR 用于卡类型识别 (ISO/IEC 7816-4)。卡上的 GUID/UUID 存在特定于某些智能卡制造商/产品或智能卡应用程序。
因此,对于 GUID/UUID,您应该至少识别产品和制造商文档或使用该特定卡的人可以回答您是否可以检索此信息以及如何(使用标准 API - 例如,如果它存储在 EF 或专有中)来自一个小程序。
在终端方面,这通常在经过一些安全验证后使用 SELECT/READ* 或 GET DATA APDU 来完成。
GUID 不必是智能卡标识符。实际上,智能卡中可能没有唯一标识符。GUID 始终是某些自定义实现的结果,例如,将 GUID 编号存储在只读文件中。
我不确定类字节 0xFF,GSM 是 A0,00/8X 用于 UICC,8X 用于 GP,INS CA 通常是 GETDATA