NFC贴纸/卡片的安全协议

信息安全 验证 授权 NFC
2021-09-11 07:28:23

假设我正在使用 NFC 卡进行访问控制。NFC 卡/贴纸易于读写,所以我担心它们上的数据很容易被克隆到另一张卡/贴纸上并绕过安全性。

我检测克隆的想法是在每张卡上包含 2 条信息:

  • 用户身份
  • 随机值

因此,可以说发生了以下情况:

  1. 用户 A 的卡被用户 B 克隆,所以现在用户 B 也有一张包含该数据的卡
  2. 当用户 A 进入时,会生成一个新的随机值并保存在卡上和后端。这个随机值必须在下一次访问尝试中出现。
  3. 用户 B 尝试使用包含用户 A 的“用户 ID”的克隆卡进入,但“随机值”不正确,因此不允许他进入。

这似乎是解决此问题的好方法吗?还有其他方法吗?

1个回答

您提出的方法实际上是包括索尼的 FeliCa 在内的一些 IC 卡格式使用的方法:

FeliCa 的加密密钥在每次执行相互认证时动态生成,防止冒充等欺诈行为。(来自维基百科

这可以通过使用隐藏的秘密作为盐对卡 ID(或其他唯一数据)和最后系统身份验证时间(以您的后端服务器提供的毫秒为单位)进行哈希处理,并在每次执行身份验证时将其写入卡来实现. 下次用于身份验证时,后端将使用存储的上次访问时间重新哈希卡 ID,并确保它们匹配。

克隆的卡会让攻击者冒充真实用户,但下次真实用户尝试验证但未成功时会发现欺诈(除非攻击者可以重复物理访问原始卡以克隆更新的信息) .

可以保护卡的其他方法包括特殊格式的 NFC 卡,它需要在数据区域变得可读/可写之前先发送加密代码,防止在不知道卡代码的情况下访问卡(我不知道这是否符合NFC 规范与否),或者需要多个因素进行身份验证(例如密码、生物特征信息等),这意味着单个因素不足以进行模拟。