ETSI TS 102 221 V16.0.0をベースに自分の知識の整理のためにまとめます。
これ単独で理解するのは難しく、他の章やISO7816などを適宜読んでいく必要があります。
特にATRコマンドの内容は、ISO7816-3に規定されているので、このドキュメントだけでは学びきれません。別途記事を作成予定です。
簡単用語解説
ATR(Answer to Reset)
SIMカードを刺したデバイスの電源を入れた時、最初に両者の間でどのようなやりとりがされるか
ターミナル
要するにSIMを差し込む端末、デバイス(i.e.スマホとか)
F
Clock rate conversion integer
D
Baud rate adjustment indicator
この値が大きいほど、Elementary Time Unitが小さくなります。
Elementary Time Unit(etu)
1ビットの伝送時間を表す単位
etu = F/D * 1/f
6.3.0 ATR(Answer to Reset)のイントロダクション
- リセットが行われてから、UICCからターミナルへ送られる最初のコマンド
- ISO-7816-3で規定されている
- ターミナルは送信プロトコルのインターフェースキャラクターを受け取れる
- T=0,1しか扱わないターミナルであっても、T=0,1以外のものや、ヒストリカルバイト、チェックバイトを受け取れなければならない
- T=15 グローバルインターフェースキャラクターがターミナルからUICCへと返される
6.3.1 ヒストリカルバイトのコーディング
- ヒストリカルバイトは外部に、カードをどのように扱うかを提示する
- 詳しくはISO-7816-4に規定
- カテゴリインジケーターはUICCから送信される最初の1バイト
- 値が80であれば、ヒストリカルバイトはCOMPACT-TLVであらわされる
- カードから最初に送信される情報は”card data service”オブジェクトでなければならない。(タグは31)
- 次に送信される情報は”card capability”オブジェクトである。(タグは73)
- その他のデータはオプション
6.3.2 スピードエンハンスメント
- ターミナルとUICCはデフォルトである(F,D)=(372,1)に加え、最低でも(F,D)=(512,8),(512,16)をサポートする。
- もしターミナルが他の値でPPSを要求した場合、それに従う。
- FとDの値はATRのTA1に存在。
- ISO-7816-3に記載されている以上の速度を出すために、Dのアディショナルバリューが定義されている
6.3.3 グローバルインターフェース
- グローバルインターフェースバイトは、ATRのT=15インディケーションの後に存在
- グローバルインターフェースはオプションで、T=15を指し示すtDi(i>2)に存在の有無が記載されている
- tAi(i>2)の内容とコーディング方法はISO-7816-3にて定義
- tBi(i>2)については下記を参照
b8-b1 | 意味 |
---|---|
00000000 | 追加のサポートなし |
10010000 | ローインピーダンスドライバーとプロトコル |
11000000 | インターチップUSB |
10100000 | UICC-CLF (ETSI TS 102 613) |
10001100 | セキュアチャネル (ETSI TS 102 484) |
10000010 | eUICC |
他の値は全てRFU
6.4 PPS Procedure
PPS:Protocol and Parameter Selection
- デフォルト以外の伝送パラメーターを使うための決まりごと
- ターミナルとUICCの両方でサポート
- 代替のパラメーターの内容はATRに記載される(ISO7816-3、本稿6.3.3の表に準拠)
- PPS1では、ターミナルはUICCに指定された範囲の値を選ぶ
- PPS2は、ATRのT=15の後の初めのtBi(i>2)のみで使われ、コーディングもtBiと同等である
- PPS2の値は、ターミナルによってサポートされる機能による
- tBiの機能をサポートしないターミナルでは、PPS2をサポートする必要はない
- ターミナルが、カードから提供されるATRのTA1の解釈に失敗した場合、デフォルトの(372,1)を用いる前に、利用可能な最速の(Fi,Di)を用いて最低でも1つのPPSを実行しなければならない。