ACR122U MIFARE Classic 1K 加载认证密钥失败

MIFARE Classic 1K load authentication keys failure with ACR122U

我正在使用 ACR122U NFC reader/writer 和 MIFARE Classic 1K 卡。要加载 MIFARE 卡的身份验证密钥,我使用以下 APDU 命令:

FF 82 20 00 06 FF FF FF FF FF FF

reader 响应 90 00 (表示成功)。然而,在另一台电脑上我有相同的 reader/writer 和相同的标签,但我收到响应代码 63 00,这意味着操作失败。

当我阅读 ACR122U 文档时,它将命令描述为

FF 82 00 00 06 <KEY>

这个字节被命名为关键结构,它的值在文档中是00。这个字节可能是这个问题的根源吗?

谁能帮我解释一下关键结构字节的值?

我很惊讶你发现一个 ACR122U 支持设置为 0x20 的密钥结构 (P1)。 API manual of the reader(参见第 5.1 节 加载身份验证密钥)清楚地表明 0x00 以外的值是保留值(即不得使用)。这意味着 ACR122U 仅支持易失性存储器中的卡密钥(即卡的身份验证密钥)(即当 reader 拔出时密钥从内存中清除)。

您可以在 PC/SC specification 中找到密钥结构 (P1) 字节的定义(在 第 3 部分。连接 PC 的接口设备的要求):

  • 第 7 位:该位指示在此命令中传输的密钥是卡片密钥('0')还是 reader 密钥('1')。 Reader 密钥是在 LOAD KEYS 命令(见第 6 位)传输期间用于加密卡密钥的密钥。
  • 第 6 位:此命令中传输的密钥使用 reader 密钥以纯文本 ('0') 或加密 ('1') 传输(参见位 3..0)。
  • 第 5 位:该位指示传输的密钥应存储在易失性 ('0') 还是非易失性 ('1') 存储器中。
  • 位 4:保留且始终设置为“0”。
  • 位 3..0:如果设置了位 6,则 reader 用于加密传输密钥的密钥编号。

加载身份验证密钥

找到附件图片

load key Image

密钥结构:00 密钥加载到 reader 易失性存储器中 Key Number: 00~01键位就reader 键:加载到 reader 中的键值,例如 {FF FF FF FF FF FF}

响应:90 00 操作成功完成 : 63 00 操作失败