2

Androidフォンのセキュアエレメントがカードエミュレーションモードでリーダーとどのようにやり取りするかをよりよく理解しようとしています。次の質問に対する洞察は役に立ちます。

理論上 (ハードウェア設計に基づく)、リーダーと通信するときに必ず SE を通過する必要がありますか? 個人データを送信することに興味がない場合、リーダーに直接「送受信」することはできますか? はいの場合、それはどのように機能しますか?

SE を通過する必要がある場合、概念的にはどのように機能しますか? たとえば、リーダーが SELECT AID コマンドを送信するとします...おそらく、Android ホストは SE にクエリを実行して SELECT AID コマンドを取得します。ホストが SELECT AID コマンドに応答したい場合 (動的応答を想定)、ホストは SE を介して応答を返しますか? SE に問い合わせて情報を取得する方法についてはよく読んだことがありますが (ISO 7816-4 など)、この最後のポイントをまだ理解していません。読者にどのように応答を送信しますか?

4

2 に答える 2

3

これは現世代のNFCチップ用であり、次世代はもう少し柔軟性があります。

NFCチップの観点からは、チップにはSecureElementとAndroidホストの2つの異なるホストがあります。

NFCチップは、どのホストがNFCチップのどの動作モードを開いたか(ピアツーピア、リーダーモード、カードエミュレーションモードなど)も認識します。

1つの操作モードに属する要求とイベントは、操作モードを開いたホストにのみ送信されます。

安全な要素の場合、最も一般的な「モバイル決済」構成は、SEがNFCチップでカードエミュレーションを開き、Androidホストがリーダーモードとピアツーピアを開くことです。

外部リーダーがNFCチップによって検出された場合、すべての通信はSEにのみ送信されます。Androidホストは、SEと外部リーダーの間で交換されたデータを認識しません。ただし、Androidホストは、アンテナで外部RFフィールドが検出されたことを認識している可能性があるため、Androidは何かが起こっていることを認識しています。

SEで実行されるソフトウェアは通常、複数のアプリケーションを管理し、SELECT AIDコマンドを解析し、AIDと一致するアプリケーションに要求を転送する小さなOSで構成されます。

SEで実行されているアプリケーションは、後でAndroidホストにデータを送信することを決定する場合があります。これらのイベントはトランザクションイベントと呼ばれ、一方向の通信です。Androidホストは、SEから送信されたトランザクションイベントに応答できません。

Androidホストは、NFCチップを介してSEにデータを送信することもできなくなります。SEと直接通信する場合、たとえば新しいアプリケーションをインストールする場合は、別の物理接続、通常はsim-cardピンまたはmicro-sdピンを使用する必要があります。

完全な目的のために:NFCチップに組み込まれている安全な要素も埋め込まれています。これらには物理的な接続がなく、NFCチップによりAndroidホストとSEホスト間の双方向通信が可能になります。

于 2012-06-22T09:28:17.083 に答える
0

理論的には、リーダーと通信するときに「SEを通過する」必要はありません。NFCチップにカードのRF信号を生成する機能がある場合(一部のNFCチップでは生成されます)、電話は応答をリーダーに直接送信できます。もちろん、アプリからこの機能にアクセスできるようにするには、APIが必要です。Android ICSにはそのようなAPIはありません(対照的に、BlackBerry OSにはAPIがあります)。

于 2012-06-22T11:16:56.493 に答える