1

好的,所以我开发了一个与 Mifare Classic 智能卡(非接触式)通信的应用程序。

该应用程序将用于成员识别。

当前的方法是向卡的第 4 块写入一个 16 字节的值。我将所有键都保留为默认值(FF FF FF FF FF)。

但是开发这种系统以使其更安全的正确方法是什么?我们是否应该使用卡的 UID 而不是将我们自己的用户 ID 写入数据块?

也有人可以解释如何使用密钥等。

谢谢

4

1 回答 1

0

如果您想识别某人,您可能需要记录 ID 以及个人数据,例如该人的姓名。根据您应用程序的目的,其他数据也可能很有趣。

记录个人数据的坏处是这张卡可能会丢失,将这些信息暴露给能够读取卡数据的人。这就是为什么您应该更改卡的密钥以提高安全性。这样一来,想要检查您卡片内容的第三个主体必须​​首先找出关键值,而且除了可能之外,这并不是那么微不足道。

为了保护键值而不是对其进行硬编码,您可以使用读取器设备中加载的表。一些阅读器有一个专门用于存储键值的内存区域(例如 EEPROM),您所要做的就是传递所需键的索引。

我不认为使用卡的 UID 是一个好的选择,考虑到您的系统维护。如果有人必须更改卡,您将不得不更新您的数据库。您的解决方案的优点是您完全不需要对卡进行任何设置......

因此,如果您不想在卡上记录任何数据并希望使用其 UID 进行识别,甚至不必费心更改密钥。

希望有帮助!

于 2013-11-15T22:20:16.890 回答