Mifare 应用程序目录管理?

Mifare Application Directory Management?

[请您在回答时只考虑1k张经典卡牌。 ]

我希望获得一些 RFID 领域的行业知识。具体来说,使用 MIFARE MAD(Mifare 应用程序目录)。我通过查看位于此处的 NXP 发布的 MIFARE MAD 文档了解其架构:

但是,从这份文件中出现了一些问题。

谁管理给定卡上的初始 MAD 目录?我知道制造商可能会分发在扇区 0/16 中预初始化了 MAD 1、2 或 3 的卡。如果读到一张卡上没有放置MAD,标准是什么?在这种情况下,将我自己的 MAD 写到卡上是否合适?还是强制客户购买预装MAD的卡更合适?

给定一个标准的 MIFARE Classic 1k 卡,MAD 目录可能驻留在扇区 0 中只有两个 16 字节的块。这只为 MAD 目录提供了 32 个字节。已注册 AID 的列表似乎比 32 字节大得多。如果我要查找的 AID 未在 MAD 中编制索引,我应该采取什么流程?

给定位于 here (link is dead, PDF can still be found via Wayback Machine 的 AID 列表中的特定 AID) 识别数据所在扇区的一般过程是什么?因此,从列表中随机选择一个 AID,比如注册到 Verifone 的 0034,我如何识别数据位于哪些扇区?如何识别数据是否位于多个扇区?

什么是 MAD 版本 1、2 和 3?

MAD 版本 1 和 2 与 MIFARE Classic 卡一起使用。 MAD 版本 1 使用卡的扇区 0 将剩余的扇区(扇区 1..15)分配给特定的“应用程序”(每个扇区可以分配给一个应用程序 ID,指示 manages/uses 这些扇区的应用程序)。 MAD 版本 2 是 MAD v1 的扩展,用于 MIFARE Classic 4K 卡。 MAD 版本 2 使用扇区 16 作为附加目录以将 4K 特定扇区(扇区 17..39)分配给应用程序。

MAD 版本 3 与 MIFARE DESFire (EV1) 卡一起使用。由于您特别要求 MIFARE Classic 1K,这可能与您的问题无关。

谁管理给定卡上的初始 MAD 目录?

通常,MAD 将由发卡机构管理。因此,发卡的人也将启动 MAD 扇区。

如果读到一张卡上没有放置MAD,标准是什么?

如果您碰巧发现一张已经包含数据但未使用 MAD 的卡,您通常会认为这是一张单应用卡。由于已经使用该卡的应用程序可能不理解 MAD 的概念,您以后将无法引入 MAD。 (如果应用程序将任何 MAD 扇区(扇区 0 或 16)用于其他应用程序数据,情况尤其如此。)

在这种情况下,将我自己的 MAD 写入卡中是否合适?

见上文。通常以后再引入 MAD 是没有意义的。此外,如果卡已在使用中,您可能没有写入 MAD 扇区(或任何其他(已用)扇区)的密钥。

还是强制客户购买预装MAD的卡更合适?

我不知道有任何目录管理器服务,您可以在其中购买带有预配置 MAD 的空卡,并且用户可以稍后通过该管理器将他们的特定应用程序安装到卡上。

事实上,MAD通常用于闭环应用场景,即一个发卡机构将卡用于其域内的多个应用程序(例如,一所大学(对,我正在为一个大学工作)使用这些卡门禁系统、闭环支付系统等)

给定一个标准的 MIFARE Classic 1k 卡,MAD 目录可能驻留在扇区 0 中只有两个 16 字节的块。这只为 MAD 目录提供了 32 个字节。注册的 AID 列表似乎比 32 字节大很多。

在MAD v1和V2中,每个AID有16位(2字节)。由于 MAD 将扇区分配给应用程序,因此每个扇区在 MAD 中都有一个两字节的槽,其中将存储扇区分配给的 AID。参见

如果我要查找的 AID 未在 MAD 中建立索引,我应该采取什么流程?

您可以请求 NXP 注册您的应用程序并为其分配 AID。报名表见application note for the MIFARE Application Directory附件。虽然该列表表明 NXP 仍在接受新注册,但您应该记住,尽管自 2008 年以来 MIFARE Classic 安全性已被破坏,并且 MIFARE 产品线中有更新的产品更适合新应用。

给定一个特定的 AID,识别数据所在扇区的一般过程是什么?

参见上文和 。 MAD 中的每个插槽都会为一个特定扇区分配一个 AID。因此,您将读取 MAD 扇区,然后浏览它们以查找 AID 的出现,通过累积所有出现的次数,您可以获得分配给该应用程序的所有扇区的列表。