Mifare 1K身份验证密钥

And*_*rea 6 authentication rfid nfc mifare contactless-smartcard

我有一个MIFARE 1K标签.某些块可以使用验证密钥A写入/读取,而其他块可以使用验证密钥B写入.为什么?如何更改要写入/读取的所有块,例如,使用密钥A?

例如,我可以使用密钥A编写密钥块07,我也可以更改此密钥块的密钥A,但我无法使用密钥B在其上写入,并且我无法更改密钥B关键块.

我为什么要使用密钥A而不是密钥B来写/读?有什么不同?

Mic*_*and 10

MIFARE Classic卡的每个扇区都有两个验证密钥:密钥A和密钥B.这两个密钥与访问条件一起存储在每个扇区的最后一个块中(所谓的扇区尾部).行业预告片看起来像这样:

+-----------------------------+--------------+----+-----------------------------+
|  0 |  1 |  2 |  3 |  4 |  5 |  6 |  7 |  8 |  9 | 10 | 11 | 12 | 13 | 14 | 15 |
+-----------------------------+--------------+----+-----------------------------+
|            Key A            | Access Conditions |            Key B            |
|          (6 bytes)          |     (4 bytes)     |          (6 bytes)          |
+-----------------------------+--------------+----+-----------------------------+
Run Code Online (Sandbox Code Playgroud)

访问条件定义了如何访问扇区中的块:

  • 使用密钥A(读取,写入,值块操作)进行身份验证后可以发出的命令,
  • 使用密钥B(读取,写入,值块操作)进行身份验证后可以发出的命令,
  • 如果密钥B完全用作验证密钥.

典型情况是:

  • 只能使用密钥A进行身份验证.密钥A具有只读访问权限.
  • 只能使用密钥A进行身份验证.密钥A具有读/写访问权限.
  • 两个密钥都可以进行身份​​验证.密钥A具有只读访问权限.密钥B具有读/写访问权限.
  • 两个密钥都可以进行身份​​验证.密钥A和B具有只读访问权限.

您可以在MIFARE数据表中找到可能的访问条件的完整描述.