我需要在阅读器和 NFC 标签之间实施身份验证程序,但由于我在这方面的知识有限,我将感谢一些帮助以理解一些概念。
提前原谅我改写圣经,但我无法对其进行更多总结。
有很多标签系列(ICODE、MIFARE、NTAG...),但经过研究,我认为 NTAG 424 DNA 符合我的要求(我主要需要身份验证功能)。
它带有 AES 加密、CMAC 协议和 3 遍身份验证系统,这就是我开始需要帮助的时候。
AES -> 正如我所关心的,这是一种通过排列和映射来加密纯文本的分组密码。是一种对称标准,它不使用主密钥,而是使用会话密钥,它们是从主密钥派生的。(Q01:我不知道这些密钥在标签中的存储位置。密钥必须存储在专门的硬件上,但除了 MIFARE SAM 标签外,没有标签“规格”对此进行说明。)
CMAC -> 它是 CBC-MAC 的一种改变,使动态大小消息的身份验证安全。如果数据不是机密的,那么 MAC 可以用于明文来验证它们,但是为了获得机密性和身份验证功能,必须追求“加密比 mac”。这里也使用了会话密钥,但与加密步骤中使用的密钥不同。(Q02:CMAC的整体观点可能是一个实现验证和保密的协议,这是我的观点,可能是错误的。)
3-pass-protocol -> ISO/IEC 9798-2 规范,其中标签和阅读器相互验证。它还可以使用 MAC 和会话密钥来完成此任务。(Q03:我认为这是所有系统的上层来验证标签和阅读器。“3 pass 协议”在 MAC 中中继才能起作用,如果还需要机密性功能,那么可能会使用 CMAC 而不是单个 MAC .CMAC 需要 AES 才能正常工作,在每个步骤中应用会话密钥。如果我发布了 savages 错误,请纠正我)
/*********/
PS:我知道这是一个与编码相关的论坛,但我肯定可以在这里找到比我更了解密码学的人来回答这个问题。
PSS:我完全不知道标签端的主密钥和会话密钥保存在哪里。它们是否需要与主 NFC 电路一起包含在单独的硬件中?
(目标)
这是为了实现标签和阅读器之间的相互验证过程,使用 NTAG 424 DNA TagTamper 标签。(目标是避免 3º 方复制,以身份验证而不是消息机密性为主要部分)
缺乏密码学知识并试图了解如何在此 NTAG 上使用 AES、CMAC 和相互验证。
(额外信息)
NTAG 424 DNA TT: https ://www.nxp.com/products/identification-security/rfid/nfc-hf/ntag/ntag-for-tags-labels/ntag-424-dna-424-dna-tagtamper-advanced - …