Mifare 1K身份验证密钥

时间:2015-01-20 16:44:08

标签: authentication nfc rfid mifare contactless-smartcard

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

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

为什么我要使用键A而不是键B来写/读?有什么区别?

1 个答案:

答案 0 :(得分: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)          |
+-----------------------------+--------------+----+-----------------------------+

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

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

典型情况是:

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

您可以在MIFARE datasheet中找到可能的访问条件的完整说明。