web-dev-qa-db-ja.com

NFCタグをロックし、後でロックを解除してデータを再度書き込むことは可能ですか?

私は公共の場所にタグを持つNFCアプリを開発しています。このように、誰かが情報を削除しないように、パスワードまたは他のツールでタグをロックする必要がありますまたは、コンテンツを変更します。タグは後で更新可能である必要があります。したがって、これを行うことは可能ですか?または、タグをロックすると、タグは永久に読み取り専用のままになりますか?

9
Bruno Santos

これは、使用するNFCタグのタイプ(および結果として価格)に大きく依存します。通常、安価なNFCタグ(例:Topaz /のようなタイプ1タグ) MIFARE Ultralight、NTAG203、Kovio 2K、またはmy-d NFCなどのジュエルまたはタイプ2タグは、これを許可しません。これらは、永続的に書き込み保護のみが可能です(これは、通常、公共の場所にタグをインストールする)。

他のタグは、書き込みアクセスタグメモリを制限するために使用できるフォーム認証ベースのアクセス制御を提供します。

  • MIFARE Ultralight C:3DESを使用した相互チャレンジレスポンス認証
  • NTAG21x、MIFARE Ultralight EV1、my-d move NFC:クリアテキストパスワードを使用したパスワードベースの「認証」。クリアテキストのパスワードは、セキュリティに重大な影響を与える可能性があることに注意してください。
  • MIFARE DESFire(EV1):DES、3DES、またはAESを使用した相互チャレンジレスポンス認証
  • .。

認証はNFCフォーラムのタグ操作仕様の一部ではないため、タグ/タグの製造元に依存します。Androidでこのような高度な機能を使用するには、関連するコマンドを自分で実装する必要があります( tech.transceive()メソッド)。

Ndef.makeReadOnly() on Androidは、必ずしもハードウェアロックビットを設定するわけではないことに注意してください。このメソッドは、場合によっては、プロトコルレベルで書き込み保護のみを設定することもできます(つまり、 NFCデバイスにデータを書き込まないように要求するが、実際のデータページが上書きされないように保護しない)フラグ。

5
Michael Roland

はい、もちろんですが、Android APIには、それを行うための既製のメソッドがありません。タグへのアクセスを制御するには、APDUを使用する必要があります。

NdefクラスにはmakeReadOnlyメソッドがあります: http://developer.Android.com/reference/Android/nfc/tech/Ndef.html#makeReadOnly() ただし、タグのロックを解除することはできません。

0
LaurentY