我需要在阅读器和 NFC 标签之间实施身份验证程序,但由于我在这方面的知识有限,我将感谢一些帮助,以了解一些概念。
提前原谅重写圣经,但我无法总结更多。
有许多标签系列(ICODE、MIFARE、NTAG...),但经过研究,我认为 NTAG 424 DNA 符合我的要求(我主要需要身份验证功能)。
它带有 AES 加密、CMAC 协议和 3-pass-authentication 系统,这就是我开始需要帮助的时候。
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 才能正常工作,在每一步都应用会话密钥。如果我发布了野蛮人的错误,请纠正我)
/*********/
PS:我知道这是一个与编码相关的论坛,但我肯定可以在这里找到比我更了解密码学的人来回答这个问题。
PSS:我完全不知道主密钥和会话密钥保存在 Tag 端的什么位置。是否需要将它们与主 NFC 电路一起包含在单独的硬件中?
(目标)
这是为了实现标签和阅读器之间的相互验证过程,使用 NTAG 424 DNA TagTamper 标签。(目标是避免 3º 方副本,主要是身份验证而不是消息机密性)
缺乏密码学知识并试图了解如何在此 NTAG 上使用 AES、CMAC 和相互身份验证。
(额外信息)
3-pass-authentication:https ://prezi.com/p/rk6rhd03jjo5/3-pass-mutual-authentication/
密钥存储硬件:https ://www.microchip.com/design-centers/security-ics/cryptoauthentication