是否可以锁定NFC标签,然后再次解锁和写入数据?

Bru*_*tos 9 android rfid nfc

我正在开发一个在公共场所有标签的NFC应用程序,这样就需要用密码或其他工具锁定标签,以避免有人删除信息或修改其内容.标签应该可以在以后更新.那么,有可能做到这一点吗?或者当我锁定标签时,它是否会永久保持只读状态?

Mic*_*and 5

这在很大程度上取决于您使用的NFC标签的类型(以及相应的价格).典型的廉价NFC标签(例如像Topaz/Jewel的Type 1标签或MIFARE Ultralight,NTAG203,Kovio 2K或my-d NFC等Type 2标签)不允许这样做.它们只能被永久写保护(这是在公共场所安装标签时通常应该执行的操作).

其他标签确实提供了一些基于形式认证的访问控制,可用于限制写访问标签存储器,例如

  • MIFARE Ultralight C:使用3DES进行相互挑战响应认证
  • NTAG21x,MIFARE Ultralight EV1,my-d移动NFC:基于密码的"身份验证",带有明文密码.请注意,明文密码可能会产生严重的安全隐患.
  • MIFARE DESFire(EV1):使用DES,3DES或AES的相互挑战响应认证
  • ...

身份验证不是NFC论坛标签操作规范的一部分,因此依赖于标签/标签制造商.要在Android上使用此类高级功能,您需要自己实现相关命令(使用该tech.transceive()方法).

请注意,Ndef.makeReadOnly()在Android上不一定要设置任何硬件锁定位.在某些情况下,该方法也可以仅在协议级别上设置写保护(即,设置请求NFC设备不写入任何数据但不保护实际数据页不被覆盖的标志).