6

ATR を使用して、ISO14443A または ISO14443B タイプのカードを持っているかどうかを判断することはできますか? はいの場合、どのように?

4

3 に答える 3

9

mictter正しく説明したように、実際のAT Rは ISO 7816 の連絡先カードに対してのみ存在します。ISO 14443 に相当するものは ATQA/ATQB である可能性があるという議論に従うことができます。これは、アクティベーション後にタグから得られる最初の回答であるためです。ただし、ATR に相当するものは、ATQA + SAK + ATS (タイプ A の場合) および ATQB + ATTRIB への回答の組み合わせ (タイプ B の場合)。

表示されている ATR については、これはPC/SC 仕様に従って PC/SC でエミュレートされた ATR であると想定しています

スマートカード (ISO 14443-4 トランスポート プロトコル) の場合、この ATR の形式は次のようになります。

3B 8n 80 01 T[1]..T[n] xx

存在するT[1]ことT[n]

  1. ISO 14443 タイプ A の ATS 履歴バイト、または
  2. ATQB アプリケーション データ ( T[1] T[2] T[3] T[4])、ATQB プロトコル情報フィールド ( T[5] T[6] T[7])、および ATTRIB MBLI フィールド ( T[8]) の連結。

したがって、タイプ A または B のスマートカードであるかどうかを推測するために、何らかの形式の照合を行うことができる場合があります。つまり、n == 8 の場合、パラメータは、タイプ B カードのフィールドに期待されるものと一致しますT[1]T[n]それでも、任意のカードに対して信頼できる結果が得られるとは思えません。

非接触型メモリーカードの場合、状況は確実に良くなります。これらのカードの場合、エミュレートされた ATR は次のようになります。

3B 8n 80 01 T[1]..T[n] xx

アプリケーション識別子の存在インジケータ (タグ )を含むようにしT[1]ます。したがって、通常は次のようになります。T[n]4FT[1]T[n]

80 4F yy A000000306 ss nnnn 00000000

ssカードのプロトコルを識別して:

0x01: ISO 14443-1 Type A
0x02: ISO 14443-2 Type A
0x03: ISO 14443-3 Type A
0x05: ISO 14443-1 Type B
0x06: ISO 14443-2 Type B
0x07: ISO 14443-3 Type B

nnnnカード名の識別 (完全なリストについては、PC/SC 仕様を参照してください)

于 2014-05-02T18:20:53.383 に答える
4

ATR は、連絡先スマートカードに対してのみ存在します。非接触カードの場合、これに相当するものは ATQ と呼ばれ、2 つの ISO14443 タイプのそれぞれについて、ATQ-A と ATQ-B の 2 つのバリエーションがあります。

そこで、私がお勧めする方法は次のとおりです。

  • リーダーは REQ-A と REQ-B の両方を送信し、範囲内に非接触型カードがあるかどうかをポーリングします。
  • カードが REQ-A で応答する場合、それはタイプ A です。REQ-B の場合はタイプ B です。

非接触リーダーのドライバーは、この情報をソフトウェアに渡す必要があります。ISO 14443-3 規格のコピーを入手することをお勧めします。カード検出と衝突防止プロトコルの最初の手順が説明されているので、タイプ A と B の違いを確認できます。

于 2014-05-02T07:55:08.837 に答える