gpt4 book ai didi

android - Android 读取 MIFARE Classic 卡片时如何防止 key 泄露?

转载 作者:行者123 更新时间:2023-11-29 23:46:02 27 4
gpt4 key购买 nike

在 Android 中,当读取 MIFARE Classic 卡时,使用 MifareClassic.authenticateSectorWithKeyA(或 authenticateSectorWithKeyB)方法执行身份验证,但参数 keyA/keyB 这些方法都是纯文本。因此,黑客很容易获得 key 。

有没有办法在进行身份验证时不直接使用明文 key ,而是将 key 存储在服务器中?然后,每次进行认证时,MIFARE Classic卡生成一个随 secret 钥,随 secret 钥被传送到服务器,服务器使用随 secret 钥和存储的认证 key 计算 token ,然后将 token 传送到MIFARE Classic卡,其中验证 token ,如果正确,则身份验证成功。

最佳答案

不,MIFARE Classic 身份验证是在 NXP 的 NFC Controller 中实现的,NFC Controller 本身需要知道 key 才能计算身份验证质询和响应。这样做的原因是 NFC Controller 执行实际的身份验证和加密,并通过纯文本命令模拟对标签内存的访问。由于 Android 设备中使用的 NFC Controller 似乎不支持任何形式的传输 key 加密,因此 Android 需要将纯文本 key 本身发送到 NFC Controller 。因此,用于 MIFARE Classic 的 Android API 需要一个纯文本 key 。目前没有办法解决这个问题。

但是,还有其他标签技术(例如 MIFARE DESFire),其中身份验证和加密由您的应用程序直接处理(NFC Controller 透明地转发所有通信)。在这种情况下,您可以将该通信传递给某些后端服务器,以避免在您的应用中存储纯文本 key 。

关于android - Android 读取 MIFARE Classic 卡片时如何防止 key 泄露?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51392425/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com