使用NTAG 424 DNA TT的身份验证提示



我需要在读取器与NFC标签之间实现身份验证程序,但由于我在这方面的知识有限,我将不胜感激,以便理解一些概念。

提前原谅重写圣经,但我无法总结更多。

有许多标签家族(ICODE,MIFARE,NTAG...),但是在进行研究后,我认为NTAG 424 DNA符合我的要求(我主要需要身份验证功能)。

它带有AES加密,CMAC协议和3-pass身份验证系统,这是我开始需要帮助的时候。

AES-> 正如我所关注的,这是一种通过排列和映射加密纯文本的分组密码。是一个对称标准,它不使用主密钥,而是使用会话密钥,因为它们是从主密钥派生的。(Q01:我不知道的是这些密钥在标签中的存储位置。密钥必须存储在专用硬件上,但除了 MIFARE SAM 标签外,没有标记"规范"对此进行说明。

CMAC-> 它是 CBC-MAC 的更改,旨在使动态大小的消息的身份验证安全。如果数据不是机密的,那么MAC可以在明文上使用来验证它们,但为了获得机密性和身份验证功能,必须追求"加密比Mac"。此处还使用会话密钥,但与加密步骤中使用的密钥不同。(Q02:CMAC的整体观点可能是实施验证和保密的协议,这是我的观点,可能是错误的。

3 通过协议-> ISO/IEC 9798-2 规范,其中标签和阅读器相互验证。它还可以使用MAC和会话密钥来完成此任务。(Q03:我认为这是所有验证标签和阅读器的系统的上层。MAC 中的"3 通协议"中继才能正常工作,如果还需要机密性功能,则可以使用 CMAC 代替单个 MAC。CMAC 需要 AES 正常运行,在每个步骤上应用会话密钥。如果我发布野蛮的错误,请纠正我)

/*********/

PS:我知道这是一个与编码相关的论坛,但我肯定可以在这里找到比我更了解密码学的人来回答这个问题。

PS:我完全不知道主密钥和会话密钥保存在标签端的什么位置。它们是否需要与主NFC电路一起包含在单独的硬件中?

(目标)

这是为了使用NTAG 424 DNA TagTamper标签在标签和阅读器之间实现相互验证过程。(目标是避免 3º 方副本,身份验证是主要部分而不是消息机密性)

缺乏密码学知识,并试图了解AES,CMAC和相互身份验证如何在此NTAG上使用。

(额外信息)

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-security-and-privacy-for-trusted-iot-applications:NTAG424DNA

ISO 9798-2:http://bcc.portal.gov.bd/sites/default/files/files/bcc.portal.gov.bd/page/adeaf3e5_cc55_4222_8767_f26bcaec3f70/ISO_IEC_9798-2.pdf

3 通过身份验证:https://prezi.com/p/rk6rhd03jjo5/3-pass-mutual-authentication/

密钥存储硬件:https://www.microchip.com/design-centers/security-ics/cryptoauthentication

NTAG424芯片不是特别容易使用,但它们提供了一些不错的功能,可用于不同的安全应用。然而,需要注意的重要一点是,尽管它严重依赖加密,但从实现方面来看,这并不是主要的挑战,因为所有的aes加密,cmac计算等已经在大多数编程语言中作为某种包或库提供。恩智浦甚至在其应用笔记中给出了一些示例。例如,在python中,您将能够使用AESfrom Crypto.Cipher import AES如应用说明的一个示例中所述。

我的建议是简单地从初始身份验证开始追溯他们的个性化示例,然后逐步实现您想要实现的目标。也可以使用这些示例来测试加密和 apdu 命令的构建。大部分工作并不难,但有时恩智浦文档可能会有点混乱。

一个小提示,如果你正在使用python,github上有一些代码,你可以重用。

对于iOS,我正在开发一个用于DNA通信的库,NfcDnaKit:

https://github.com/johnnyb/nfc-dna-kit

最新更新