1

我正在尝试使用 Omnikey 5421 将 Mifare Plus 卡切换到 SL1 模式,但是按照文档的说明使用“通用卡命令”界面似乎不起作用(卡不返回任何类型的输出,除了 0x9000 似乎只是命令已成功发送的 ACK - 在 0x90 0x00 之前的响应中应该有来自芯片本身的额外字节)。

使用 SCardTransmit 发送序列:

0xFF 0xA0 0x00 0x07 0x03 0x01 0x00 0x01 - 进入通用会话 - 返回 0x9000

...使用文档的附加命令:

0xFF 0xA0 0x00 0x05 6+n 01 00 F3 00 00 64 + Mifare+ 命令 00 - 无论是什么命令都返回 0x9000,即使是无效的 Mifare+ 命令

0xFF 0xA0 0x00 0x07 0x03 0x01 0x00 0x02 - 退出通用会话 - 仍然返回 0x9000

似乎唯一有效的命令是进入和退出,我在两者之间发送的任何其他命令似乎都没有任何效果,包括 RATS、Writeperso 或 Commitperso。当我在末尾添加 00 Le 字节时,返回码是 0x6400 而不是 0x9000,尽管文档说在发出 Mifare+ 命令时应该附加 Le 字节。

一旦卡在 SL1 模式下个性化(读、写、验证),所有其他操作都可以正常工作。我已经可以使用 android NFC 将卡切换到 SL1 模式,因此算法或卡似乎没有问题。

我尝试使用 PC/SC 第 3 部分文档中的命令,但返回代码“不支持”,因此似乎只有这种透明通道机制可用于发出 14443A 命令。

4

1 回答 1

1

在 SL0 和 SL3 中,您可以通过 Generic Card Command 直接调用 Plus 命令。

“通用会话”应该让 SL1 接受 Plus 命令(默认情况下它会进入 mifare 经典模式)

于 2019-03-27T02:59:22.457 回答