Mifare 1K 身份验证密钥

Mifare 1K authentication keys

我有一个 MIFARE 1K 标签。一些块可以 written/read 使用身份验证密钥 A,而其他块可以使用身份验证密钥 B 写入。 为什么?如何将所有块更改为 written/read,例如,使用键 A?

比如我可以用A键写07键块,我也可以为这个键块改A键,但是B键不能写,改不了此密钥块的密钥 B。

为什么我应该 write/read 使用密钥 A 而不是密钥 B?有什么区别?

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 具有 read/write 访问权限。
  • 两个密钥都可以进行身份​​验证。密钥 A 具有只读访问权限。密钥 B 具有 read/write 访问权限。
  • 两个密钥都可以进行身份​​验证。密钥 A 和 B 具有只读访问权限。

您可以在 MIFARE datasheet.

中找到可能的访问条件的完整描述