2

我有一张智能卡,有什么办法可以查出上面安装了什么?可能上面有小程序,但我无法使用 APDU 命令选择它。

4

1 回答 1

2

您在谈论小程序,所以我在这个答案中假设您正在与 Java Card 交谈。Java Card 本身没有指定任何类型的发现方法。

全球平台规范确实包含检索此类数据的方法。要检索卡上的小程序,您需要发送GET STATUSAPDU(免费提供的 GP 2.2.1 规范的第 11.4 段)。几乎所有的 Java Card 实现都实现了 Global Platform。请注意,您需要先向 Global Platform 卡管理器进行身份验证,然后才能发出这些命令。为此,显然,您将需要一个有效的身份验证密钥集。

找出小程序上可选择的内容的另一个技巧是向卡发出多个SELECT by NAME命令。您可以将此限制为您要测试的一组 AID。一个小技巧是只使用 AID 的前 5 个字节,称为 RID。注册的 RID 都以开始,A000000000然后按顺序递增。

找到小程序后,您可以通过向(公司特定的)RID 添加字节来发现它是常规 AID - 只需测试所有 256 个值。您可能希望自动执行此操作……许多实现在选择后也会返回完整的 AID;然而,这是特定于小程序的(按名称选择的响应是由小程序process方法生成的)。

于 2013-10-27T13:15:15.920 回答