NFC认证
NFC authentication
我通过从卡发送和接收 APDU 获取 NFC 标签的 uid。将它们存储在数据库中。登录时,我将登录的用户标签 ID 与数据库进行比较以进行身份验证。
这行得通,但这是按照标准安全策略进行 NFC 身份验证的正确方法吗?
我有点困惑,因为 PKI 涉及证书处理并使用 public 密钥绑定用户。
使用 UID 进行身份验证不是一个好主意,因为它是全球可读的,任何人都可以复制它并使用它来对允许它的卡之一进行编程。某些非接触式设备每次开机时都会生成不同的随机 UID。
有很多选择,比如这两个非常简单的选择:
使用标准安全通道之一(SCP02、SCP03)进行相互认证卡-reader然后发送标识符。每张卡都必须配备一组对称密钥(在上述情况下为 3DES 或 AES),并且 reader 可以从一些卡的唯一标识符中派生它们。
使用public-私钥。例如,您可以在注册时将私钥存储在卡中,然后使用它来签署由 reader + 一些链接到证书中的 public 密钥的 ID 发出的质询。
环顾四周,您可能会找到更好的想法。祝你好运!
我通过从卡发送和接收 APDU 获取 NFC 标签的 uid。将它们存储在数据库中。登录时,我将登录的用户标签 ID 与数据库进行比较以进行身份验证。 这行得通,但这是按照标准安全策略进行 NFC 身份验证的正确方法吗? 我有点困惑,因为 PKI 涉及证书处理并使用 public 密钥绑定用户。
使用 UID 进行身份验证不是一个好主意,因为它是全球可读的,任何人都可以复制它并使用它来对允许它的卡之一进行编程。某些非接触式设备每次开机时都会生成不同的随机 UID。
有很多选择,比如这两个非常简单的选择:
使用标准安全通道之一(SCP02、SCP03)进行相互认证卡-reader然后发送标识符。每张卡都必须配备一组对称密钥(在上述情况下为 3DES 或 AES),并且 reader 可以从一些卡的唯一标识符中派生它们。
使用public-私钥。例如,您可以在注册时将私钥存储在卡中,然后使用它来签署由 reader + 一些链接到证书中的 public 密钥的 ID 发出的质询。
环顾四周,您可能会找到更好的想法。祝你好运!