1

Mifare One (1K/S50、ISO14443A) チップをエミュレートして、物理的な Mifare カードの代わりに NFC 機能を備えた電話を使用できるようにするため、または可能であればデータのみをリーダーに送信するための機能を実装しようとしています。

私はこのタイプのリーダー/ライターを持っています: https://www.evelta.com/er302-high-frequency-nfc-writer-usb/

フォーラム、stackoverflow の質問を調べた後、この記事が最良の例であることがわかりました。

https://medium.com/the-almanac/how-to-build-a-simple-smart-card-emulator-reader-for-android-7975fae4040f

HCE 部分を実装し、プログラムを実行すると、読者は私の電話が Mifare チップであると信じています。

私の問題:

  • 使用しようとした「標準」認証キーに関係なく...認証エラーが発生します。Auth: Authentication failure for Mifare 1K NFC tag using ACR122U NFC readerに関するこの質問を読みましたが、物理的な Mifare カードで動作します...しかし、エミュレートされたもののキーを設定または知る方法がわかりません。

  • この例が正確な Mifare チップ タイプをエミュレートする理由がわかりません。

それについて読んだ後、物理カードを100%エミュレートできないことがわかりました。そのため、APDU応答で必要なすべてのデータを何らかの形でサービスに送信する必要があります(送受信部分だと思います)。

しかし、私は認証さえできません。

私は他の可能な解決策を探してみました:

  • AndroidBeam : Android - Android p2p ... シンプルで比較的高レベルの API に聞こえます、廃止されつつあります。さらに、リーダーが Android を使用することさえ保証されていません ... のような「シンプルな」USB リーダー ハードウェアである可能性があります。私が使う。

  • SecureElement :皮肉なことに...最も推奨されているようです.「はい、mifareの可能性があります」などを読みましたが、良い例を見つけることができ、公式のGoogleドキュメントにはありません良い例。「ISO/IEC 7816-4」用と読みましたが、Mifare 1K は ISO14443A なので、この API については少し懐疑的です。

  • 単純に」リーダーにデータを送信する:電話を読んでいるときに、問題を複雑にしたり、何かをエミュレートしたりせずに、単にデータをリーダーに「プッシュ」できれば...それは素晴らしいことですが、どうかはわかりませんそれも可能です。この NFC のトピック全体は、ますます複雑になっているようです。

つまり、データを取得してリーダーに送信するだけです。

私はそれが聞こえるのと同じくらい簡単だと信じるのはおとぎ話のような錯覚だと気づきました. それでも、それを行う方法があることを願っています.

Mifare などをエミュレートせずに、それ自体でデータを送信できれば...結局のところ、重要なのは、チップの種類ではなくカード上のデータであり、解決策が単純であるほど良い.

英語の文法ミスの可能性があることをお詫びします。

4

1 に答える 1

4

問題は、Android で HCE を使用して Mifare Classic 1K ( https://www.nxp.com/docs/en/data-sheet/MF1S50YYX_V1.pdf )をエミュレートできないことです。これはカスタム タイプ NFC カードであるためです。HCE は Type 4 カードのエミュレートに関するものです。https://developer.android.com/guide/topics/connectivity/nfc/hce#SupportedProtocolsを参照してください

また、下の画像はタイプを理解するのに役立ちます。

ここに画像の説明を入力

これはデータシートから確認できますが、AID と標準の Type 4 NFC コマンドについてはどこにも触れていません。

タイプ 2 とタイプ 4 は衝突防止メカニズムと UID の読み取り (プロセスの一部) を共有できますが、他のアクセス方法は共有されません。

参照用のタイプ 4 仕様は、http://apps4android.org/nfc-specifications/NFCForum-TS-Type-4-Tag_2.0.pdfにあります。

他のカード タイプのリーダー エミュレーションを提供するが、ホストが NFC ハードウェアではなくエミュレーションを行う HCE を提供しない USB リーダーを見たことがあります。

タイプ 4 カードまたはエミュレートされたカードでの認証は、別の方法で処理されます。

タイプ 4 カードであるため、MIFARE DESFire カードをエミュレートできます。

カードリーダーの仕様は十分に文書化されておらず、非常に「軽量」に見え、非 Mifare Classic カードとの通信に必要なより高いレベルのプロトコルをサポートしていません。それらをサポートすることはできますが、Mifare プロトコルは元の仕様であるため、古い設計で Mifare プロトコルのみをサポートする可能性があります。

于 2021-01-21T20:08:45.210 に答える