チップが製品に埋め込まれる製品認証の目的でMifare Desfireチップを使用したかったのです。そのため、チップのクローンを作成することを事実上不可能(または可能な限り困難)にするNFCソリューションを探しています。
私がDesfireを使用することを考えていた現在のソリューションは、サポートされている対称認証を使用して、製品情報を格納するチップのメモリロックされた部分を持つことでした。次に、マスターキー、チップのUID、およびいくつかのメタデータを使用して多様なキーを作成し、その多様なキーを使用して対称認証を実行します(詳細は here を参照してください)。
ここで問題は、対称認証をAndroidアプリで実行する必要があるということです。つまり、Android =アプリまたはネットワーク経由で悪意のあるバージョンのアプリに送信するため、マスターキーまたはまったく異なる認証ソリューションを保護して、Mifare Desfireまたは他の同様の機能を使用したチップのクローン作成を防ぐ方法についての提案があるかどうか疑問に思いました= NFCチップ。
キーはアプリに存在する必要はありません。
認証を要求すると、鍵で暗号化された乱数が返されます。この乱数は、アプリを使用してサーバーに送り返し、サーバーにキーによる認証を行わせることができます。次に、サーバーは暗号化された値を含む新しい暗号化パケットを送信します。このパケットはチップに転送されます。次に、チップからサーバーに返信する応答を受け取ります。
その後、使用しているセルに、MACで「署名」された製品情報を含めることができます。この製品情報とMACは、最終フェーズとしてサーバーにも送信されます。すべてのステップが正常に完了した後にのみ、製品は本物です。
ライブラリを使用してNFC通信を行う場合、これらを手動モードで実行して、この方法で認証できるようにする必要があります。
結果のデータを読み取り、MACを含む製品情報をコピーする不正なアプリを作成し、認証を受け入れる偽のDESFire EV1チップに挿入することが可能です。これが、サーバーが返されるランダムな値を検証する必要がある理由です。これにより、サーバーは最初に選択された値に正常に復号化されますが、左にシフトされます。 (認証方法の実装の詳細をお読みください)。
チップを書き込めないキーを使用することで、本物のチップを更新して、チップが常駐する製品よりも高価な製品に関する情報を含めることを防ぐこともできます。
また、チップを純正品から偽造品に移動させ、そのまま純正品のまま保管し、偽造品を販売する場合がありますのでご注意ください。これには改ざん防止チップを使用してください。チップは製品から削除されると機能しなくなります。または、アプリとの認証を必要とするサービスに製品を関連付けると、チップがないと詐欺師が持っている本物の製品は役に立たなくなります。