跳至内容
The NFC Mint
The NFC Mint 菜单

标签如何证明自己是真的

我们的标签使用 NXP NTAG 424 DNA 芯片。每次扫描都会使单调计数器递增,并用芯片密钥生成 AES-CMAC 认证码。我们的验证服务检查认证码和计数器,拒绝已通过验证的认证码。没有密钥,仅凭复制的链接无法生成新的有效认证码。扫描通过验证,能确认标签本身是真品,但不能证明它所附着的物品是真品。

单调计数器安全机制示意图

单调计数器如何防止克隆

仅存储数据的 NFC 标签(如 NTAG 216)只能提供信息,无法提供安全保障。它们存储的是任何读卡器都能复制的静态信息。每次扫描 NFC 标签,内部计数器都会加一。该计数值与标签的唯一数据和密钥相结合,通过 AES-CMAC(基于分组密码的消息认证码)生成加密签名。由于每次扫描计数器都会变化,即使是同一个标签,每次生成的签名也各不相同。

认证公式如下。

CMAC = AES-CMAC(K, UID || Counter || Data)

其中,K 是密钥,UID 是标签的唯一标识符,Counter 随每次扫描递增,Data 是标签的载荷数据。伪造标签在不知道密钥的情况下,无法预测未来的计数值或生成有效签名,因此克隆在数学上不可行。

硬件安全模块保存主密钥,并根据主密钥和各标签的 UID 派生出每个标签的独有密钥。我们将该密钥一次写入标签的 NTAG 424 DNA 芯片,之后无法从芯片中读出。即使从一个标签中提取出密钥,也不能为其他标签生成有效认证码。

静态 NFC 标签与我们的 NTAG 424 DNA 标签对比

功能 静态 NFC 标签 我们的 NTAG 424 DNA 标签
静态序列号 容易复制 不单独依赖此项
递增计数器 如有计数器,读数也无签名 每次扫描递增
AES-CMAC 验证 无保护 通过 AES-CMAC 验证
克隆检测 不支持 计数器偏离
芯片验证 无 ECC secp224r1
物理拆封检测 不支持 TagTamper 检测导线

继续阅读

人人都能完成的验证

验证服务的结果说明