11

Androidフォンを4.0.4に更新しましたが、システムフォルダーに新しいファイルnfceeaccess.xmlが表示されていることに気付きました。私が理解している限り、ファイルのアイデアは、署名のリストを保持し、SEおよび関連する意図へのアクセスをこの署名の1つで署名されたパッケージにのみ許可することです。もちろん、このリストのこれまでのところ、Googleウォレットの署名です。

誰かがこのリストに入る将来のプロセスがどうなるか知っていますか?Googleに直接許可を求める必要がありますか?

4

4 に答える 4

18

電話をルート化すると、ファイルを変更できます。このファイルには、セキュア エレメント (SE) へのアクセスが許可されている署名とパッケージ名のリストが含まれています。署名は、16 進数でエンコードされた X.509 証明書です。タグを作成するには、ファイルにタグ<debug />を含めるだけで、SE アクセスが拒否されたアプリケーションの 16 進数でエンコードされた署名が logcat に出力され、このファイルに簡単にカット アンド ペーストできます。

SE にアクセスできるアプリを作成するには、次のアクセス許可をマニフェストに追加する必要があります。

<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

実際に SE にアクセスするには、以下をインポートして隠し API にアクセスする必要がありますcom.android.nfc_extras

import com.android.nfc_extras.NfcAdapterExtras;
import com.android.nfc_extras.NfcAdapterExtras.CardEmulationRoute;
import com.android.nfc_extras.NfcExecutionEnvironment;

これを可能にする最も簡単な方法は、アプリを Android ソース コード ツリーに配置してpackages/appsそこからビルドすることで、アプリをコンパイルすることです。Android.mkSE API にアクセスするには、makefile に次の行を追加する必要があります。

LOCAL_JAVA_LIBRARIES := com.android.nfc_extras

の機能com.android.nfc_extrasにより、SE の有効化と無効化、SE へのコマンドの送信、および SE からの応答の受信が可能になります ( に相当IsoDep.transceive())。

于 2012-05-08T20:51:06.403 に答える
6

これは実に興味深い。このファイルに証明書とパッケージ名を入力するだけでよい場合は、Google に相談する必要はありません。ROM を作成している人物 (カスタム ROM の場合は自分自身、または特定のキャリア) にそれを含めてもらいます。ただし、より大きな問題は、CardManager キーを取得するために誰と話す必要があるかということです。通信事業者の場合は、アプレットを事前にインストールしてもらうこともできるため、実行時にキーが必要ない場合があります (アプレットに安全なチャネルを使用する場合を除きます)。

更新: Android での SE サポートの概要と、組み込みの SE の使用方法に関する詳細情報を以下に示します。要するに、それは機能しますが、もちろんクエリしかできません。JavaCard を実行し、GP 2.1.1 と互換性があり、安全なチャネルに 3DES キーを使用します。

http://nelenkov.blogspot.com/2012/08/accessing-embedded-secure-element-in.html

http://nelenkov.blogspot.com/2012/08/android-secure-element-execution.html

ところで、これが私のGN 4.0.4で現在許可されている証明書です。パッケージが指定されていないため、パッケージで署名されたアプリは SE にアクセスできます。

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            a8:cd:17:c9:3d:a5:d9:90
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=US, ST=California, L=Mountain View, O=Google Inc., OU=Android, CN=Google NFC
        Validity
            Not Before: Mar 24 01:06:53 2011 GMT
            Not After : Aug  9 01:06:53 2038 GMT
        Subject: C=US, ST=California, L=Mountain View, O=Google Inc., OU=Android, CN=Google NFC
于 2012-05-08T08:22:02.373 に答える
2

注意事項: nfcee_access リストでアプリケーションを取得できる場合は、次のことができます。

  • UICC (SIM カード) を有効にし、組み込みのセキュア エレメント (存在する場合) を有効にします。
  • 埋め込まれたセキュア エレメントへの通信チャネルを開き、データを交換する
  • UICC がデータを送信したい場合は、UICC (SIM カード) からトランザクション データを受信します (受信者のみになります)。

電話をルート化すれば、これらすべてを実行できます。そのために nfcee_access リストをハッキングする必要はありません。nfc チップへのすべてのトラフィックを傍受するだけで済みます。

根ざした電話でもできないこと:

  • UICC / eSE にアプレットをインストールする
  • 埋め込まれたセキュア エレメント/UICC と外部リーダー (支払いシステムのハッキングなど) との間のデータ転送を記録/監視/影響します。

警告:埋め込まれた SE にアクセスするための知識と安全なアクセス キーを持っている場合に限り、ほとんどすべてのことを行うことができます。ただし、これらの情報があれば、stack-overflow で質問することはありません。:-)

この知識は十分に守られた秘密であり、あなたがグーグル、マスターカード、ビザ、アメリカンエクスプレスなどのような大企業でない限り、誰もこの秘密を教えてくれません.

于 2012-05-08T21:48:09.603 に答える
0

答えは単純に NO です。Secure Element では何もできません。SE の所有者または発行者のみが SE へのアクセスを許可できます。つまり、それは Google 自体であるか、ファースト データ (http://www.firstdata.com/en_us/products/merchants/mobile-commerce/trusted-service-manager) である可能性があります。 -solution.html)、しかし、この会社は SE 管理ではなく、Google ウォレット自体にのみ責任があると思います - これは SK C&C によって行われる可能性があります - 私にはわかりません...

また、組み込みのセキュア エレメントを使用するための前提条件は、優れたサービスを提供していることと、Google パートナーまたは他の電話メーカーのパートナーであることです (Facebook または類似の会社の関係者でない限り、時間を節約して試してはいけません)。これは簡単なことではなく、サービスの 99.99% がそこにあるわけではありません。

安全な要素については、SWP と SIM カードがより一般的で受け入れられるソリューションになるまで待つことができます。全国レベルで MNO との契約をより簡単に取得できるか、NFC-WI と SD カード ソリューションを希望するか、ステッカーや外部と一緒に行くことができるからです。 iCarte for iPhone などのアクセサリ。

BR STEN

于 2012-05-08T08:25:44.110 に答える