我正在使用Mifare Ultralight C制作门禁系统。 我使用的方法是基于卡的UID。 我可以通过NFC阅读器阅读UID(Arduino UNO上的SeeedStudio屏蔽) 但是,UID不可靠,因为市场上有可写的UID卡。所以我认为我应该通过3DES认证来保护连接,然后阻止来自第一个序列号字节的0x00的读取。 这是实现访问控制的正确方法吗?
答案 0 :(得分:1)
您无法阻止对UID的读取权限。 UID是ISO 14443的防冲突/标签枚举阶段的内在部分,因此标签将始终显示该信息。此外,Ultralight C仅允许从第3页到存储器末尾的读/写保护。
您可以做的是:
根据主密钥和标签的UID导出特定于标签的密钥。
K 标签 = f key_derivation (UID 标签,K master )
使用该密钥K 标记作为Ultralight C身份验证的3DES密钥。
最后:MIFARE Ultralight C当然不适合用于访问控制!