NFC タグを使用してアプリを作成していますが、NFC タグが複製されないようにする必要があります。クローンを作成しようとすると、「クローンは制限されています。タグは秘密鍵で保護されています」というポップアップ メッセージが表示される他の多くの NFC タグを見てきました。NFC タグにも同じセキュリティが必要です。
4 に答える
これは、使用するタグの種類と、必要な複製に対する保護のレベルによって異なります。
NFC タグ ( NFC フォーラムで定義されている) には、複製に対する保護はありません。このようなタグは、自由に読み取り可能なデータ (いわゆる NDEF メッセージ) のコンテナーとして意図されています。誰でも 1 つのタグから NDEF メッセージを読み取り、それを別のタグに複製することができます。
多くの NFC タグには、タグの製造元によって事前にプログラムされた一意の識別子も含まれており、通常のタグでは変更できません。この一意の識別子を使用して、タグが自分によって発行された (ID を知っている) か、偽造された (ID がわからない) かを判断できます。本物の ID のリストを使用する代わりに、タグの ID とそのデータに対してデジタル署名を作成することもできます。そうすれば、異なる一意の識別子を持つタグでデータと署名が使用されているかどうかを確認できます。ただし、タグからすべてのデータを抽出することはできます。したがって、特殊なハードウェア (Proxmark など) と既製のタグが利用可能であり、攻撃者が一意の識別子をタグの ID の値に変更できるという事実に注意する必要があります。したがって、これは完全なクローン保護ではありません。
通信の暗号化と共有鍵ベースのアクセス制御を提供する非接触スマートカード/タグを使用できます (例: MIFARE DESFire)。このアプローチを使用すると、攻撃者がキーで保護されたメモリ領域に複製できないようにするデータを格納できます。ただし、アプリ内からそのデータを読み取れるようにしたい場合 (つまり、カードと直接通信するオンライン バックエンドがない場合)、アプリ内のメモリ領域にアクセスするためのキーを保存する必要があります。したがって、オフライン シナリオ(つまり、キーがアプリに保存されている) では、攻撃者がそのキーを抽出し、それを使用してタグを複製できる可能性があります。
秘密の非対称キーを含み、そのキーで暗号化チャレンジに署名するコマンドを提供するタグ/スマートカードを使用できます。その場合、タグが本物であるかどうかを確認するために、ランダム チャレンジのためにタグからそのような署名を要求し、タグに対応する公開鍵に対して署名を確認することができます。アプリ内に共有シークレットを保存する必要がないため、これは確かに最も安全なソリューションです。そのような機能を提供する唯一の既製の NFC タグ ソリューション (私が現在認識している) は、Inside Secure の VaultIC のようです。ただし、非接触型スマートカード (Java Card など) の非対称暗号機能に基づいて自分で作成することもできます。
上記のすべてのクローン保護シナリオでは、タグが本物かクローンかをチェックするアプリを作成する必要があることに注意してください。デフォルトでは、NFC 電話は (1) の情報のみを使用するため、そのようなチェックは実行されません。
元の答えは正しかったのですが、少し時代遅れになっています。Michael の追加 (10 月 10 日、17 日) により、NTAG413 が追加されました。同じように機能する別の追加のNTAG424 DNA 認証 NFC チップがあります。HID の Trusted Tag は同様の方法で機能し、ますます他の方法で機能します。
基本的に、チップは、タップ/スキャンごとに保存されたキーに基づいて新しい一意のコードを作成します。コードはサーバーから検証できます。