理論的なだけでなく、もう少し実用的にするために、xda-developersにいくつかのパッチを投稿して、現在 NFC をサポートしている唯一の Android フォン (Nexus S) でカード エミュレーション モードを有効にしました。あなたや他の人は、自分でカード エミュレーション モードをいじってみたいと思うかもしれません。これは実験目的のみであることを考慮してください。
これらは、AOSP ソースのジンジャーブレッド バージョン 2.3.4_r1 に適用されます。彼らは許可します:
- Nexus S で NFC カード エミュレーション モードを有効にします。このモードは常に有効です。
- リーダー モードを無効にして、カード エミュレーションのみを機能させます。
- (SmartMX チップ内の) 組み込みのセキュア エレメントの代わりに、(UICC 内の) 外部セキュア エレメントを選択する。
- 関連はありませんが、Bluetooth 検出オプションの時間制限を削除します。
これまでのところ、Android での NFC カード エミュレーションについてわかったこと:
- カード エミュレーションは、ストック イメージではデフォルトで無効になっており、ファームウェアの変更が必要です。Nfc システム アプリケーションと libnfc-nxp システム ライブラリの変更は、注目すべき場所です。
- Nexus S 内に組み込まれた SmartMX チップは、デュアル スマートカードとして機能します。プログラム可能なもの (カードレットのインストールが可能) ベースと 4K Mifare のもの。
- 4K Mifare カードにはデフォルトのキーがあるため、外部リーダーからの書き込み/読み取りが可能です。
- プログラム可能なカードはGPと互換性があるはずですが、アクセス キーが公開されていないため、Google 以外の誰もそれをいじることはできません。
- Nexus S は SWP をサポートしており、UICC 内にあるセキュア エレメントで動作できます。
- アプリケーションは、セキュア エレメントのコンテンツに直接アクセスできません。一方では、キーがわからないため、埋め込まれた SE にアクセスできません。一方、外部要素は SWP (NFC コントローラーに接続する) を介して外部からアクセスできますが、SIM スロットが他の手段で NFC コントローラーに接続されていないため、内部ではアクセスできません。これにより、ベースバンド プロセッサというパスが 1 つだけ残ります。ただし、BB ファームウェアは所有権があり、メーカーによって管理されています。Samsung は、BB ファームウェアで3GPP TS 27.007 技術仕様と対話するための技術仕様を実装していません。
- 外部 SE への OTA アクセスは可能である必要があります。これは MNO の手に委ねられています。一部は、UICC 内の SE へのサード パーティ アクセスを許可する TSM サービスを提供する場合があります。
ちなみに、あなたが言及したテクノロジー(NFC-WI)は、Nexus Sですでに使用されており、NFCコントローラーと組み込みのセキュアエレメントを相互接続しています。
アップパテ
要約すると、Sten の質問に答えます。
Mifare 4K エリアにはデフォルトのキーがあるため、外部 NFC リーダーを持っている人なら誰でもキーを変更してそこに値を安全に保存できます。それでよろしいですか? 試してみましたか?これには何か問題がありますか?
はい、外部リーダーから Mifare 4K にアクセスしました。デフォルトのキーも変更できました。問題は、システム ソースを変更し、カスタム ファームウェアを自分で構築することにあります。
外部 NFC リーダーの使用は、Mifare スペースにアクセスする唯一の方法ですか?
理論的にはいいえ。もう 1 つの方法は、Mifare カードで実行する Mifare コマンドを含む APDU を SIM に送信することです。
たとえば、Android フォンにインストールされたアプリケーションは、(NFC コントローラーと NFC-WI パスを介して) API を使用して Mifare 4K にデータを読み書きできますか? たとえば、seek-for android のヘルプはありますか?
とりあえずNo. AOSP ソースを seek-for-android パッチで変更しても (私は自分でやりました)、アプリケーションはストック電話でクラッシュするだけです。その理由は、アプリケーション プロセッサが APDU を SIM (UICC) に直接送信できるようにする3GPP TS 27.007 技術仕様を実装していないためです。
しかし、フランスのcitizyプロジェクトはすでに Android フォンで NFC 技術のセキュア エレメント モードを使用しており、UICC セキュア エレメント アプローチを採用しているため、トンネルの先に光が見える可能性があります。実際、修正されたSamsung Galaxy SIIモデルが使用されており、新しいAcer Liquid Expressもすぐに利用可能になり、city に統合されます。これらの電話機は、必要な TS 27.007 仕様がベースバンド プロセッサ ファームウェアに実装されている必要があります。アプリケーション プロセッサに関しては、G&D パスから SEEK-for-android を採用したのか、Insecure から OpenNFC を採用したのかはわかりません。フランス人である私は、最後の 1 つでオールインすることに賭けます。