Card Application Toolkit(USAT)とは?SIMが端末を動かす仕組みを解説

無料ウェビナーのご案内
SIM・eSIMの基本を、動画でも学んでみませんか?
本ウェビナーでは、SIMカードとeSIMの違い、eUICC・プロファイル・SM-DP+の関係、プロファイルを遠隔で書き込む仕組みなどを、図を交えて約15分で解説します。
記事とあわせて全体像を整理したい方や、業務でeSIMを扱い始めた方におすすめです。学び直しや社内での情報共有にもご活用ください。
今すぐ申し込む(無料)
こんにちは、コモン・クリエーションでIoT・SIMエンジニアリングサービスの事業責任者をしている山本です。 本記事では、SIM カードの側から端末に指示を出すための仕組みである Card Application Toolkit(CAT) と、その 3GPP 版である USAT を解説します。
はじめに
SIM カードと端末の通信は、原則として「端末が命令し、カードが答える」という主従関係で成り立っています。ところが実際には、カード側が起点になる場面が数多くあります。SIM ツールキットメニューの表示、OTA によるファイル更新、eSIM プロファイル切替後の端末再初期化などです。この「カードが端末を動かす」ためのメカニズムが Card Application Toolkit です。
本稿では、以下の項目を ETSI TS 102 223 および 3GPP TS 31.111 に基づいて整理します。
STK / CAT / USAT という 3 つの用語と仕様の関係
Proactive Command の仕組み(ステータスワード '91 XX'、FETCH、TERMINAL RESPONSE)
ENVELOPE コマンドとイベントダウンロード
REFRESH コマンドと eSIM(eUICC)との関係
Toolkit アプレットが動く仕組み
1. まず全体像から — 「カードが端末に命令する」をざっくり理解する
ISO 7816 と APDU の記事で解説した通り、SIM カード(UICC)はマスター・スレーブ型のプロトコルで動きます。カードは自分から通信を始めることができず、端末からのコマンド APDU に応答することしかできません。
それでもカード側から端末に依頼をしたい。そこで考え出されたのが、Proactive Command(プロアクティブコマンド。カード発の端末への命令)という仕組みです。動きはこうです。
カードは、端末からのコマンドに応答するとき、ステータスワードを '90 00'(正常終了)の代わりに '91 XX' にして返す
'91 XX' は「正常終了。ただし、あなたに渡したい命令があります」という意味
端末は FETCH コマンドで命令を取りに行き、実行結果を TERMINAL RESPONSE で報告する
会議で発言権のない参加者が挙手し、議長に指名されてから発言する姿に近い動きです。主従関係のプロトコルは変えずに、応答の末尾に付けた「挙手」だけで、実質的にカード→端末の命令を実現しています。
逆方向、つまり端末からカードへイベントや外部データを届ける入口が ENVELOPE(エンベロープ。端末からツールキットへのデータ搬入コマンド)です。この 2 つが CAT の両輪になります。
2. STK・CAT・USAT — 用語と仕様の整理
歴史的な経緯から、ほぼ同じ仕組みに 3 つの名前が存在します。
略称 | 正式名称 | 定義仕様 | 対象 |
|---|---|---|---|
STK | SIM Application Toolkit | 3GPP TS 51.014(旧 GSM 11.14) | GSM 時代の SIM |
CAT | Card Application Toolkit | ETSI TS 102 223 | UICC プラットフォーム共通の基盤仕様 |
USAT | USIM Application Toolkit | 3GPP TS 31.111 | USIM(3G/4G/5G) |
関係を図にすると次の通りです。

CAT はベアラ(通信方式)に依存しない共通部分を ETSI が定義したものです。
USAT は CAT を参照し、3GPP ネットワーク固有のコマンドを追加したものです。
STK は GSM 時代の元祖で、現在は CAT + USAT に再編されています。「STK メニュー」「STK アプレット」という呼び方は今も現場に残っています。
3. Proactive Command の仕組み
3-1. '91 XX' と FETCH の往復
TS 102 221 の 7.4.2 節と TS 102 223 の 6.3 節が定める基本メカニズムをシーケンスで示します。

押さえておきたいポイントは次の 4 点です。
'91 XX' は '90 00' と同じ「正常終了」を意味した上で、Proactive Command の待機を伝えます。XX は応答データ長です。
端末は実行結果(成功・失敗とその理由)を必ず TERMINAL RESPONSE で返します。再試行するかどうかの判断はカード側の責任です。
同時に進行できる Proactive Command は 1 つだけです。
FETCH と TERMINAL RESPONSE は常に基本チャネルで送る決まりです。
3-2. TERMINAL PROFILE — 端末の能力申告
端末側の対応機能は機種によって差があります。そこで端末は初期化時に TERMINAL PROFILE(対応する CAT 機能の一覧をカードへ申告するコマンド)を送り、カードは申告のない機能のコマンドを送らないよう動作を絞ります。TERMINAL PROFILE を送ってこない端末に、カードは '91 XX' を返してはなりません(TS 102 223 §6.2)。
3-3. 代表的な Proactive Command
TS 102 223 には数十のコマンドが定義されています。実務で目にする代表例を挙げます。
コマンド | 内容 | 主な用途 |
|---|---|---|
DISPLAY TEXT | テキスト表示 | 通知、案内 |
GET INKEY / GET INPUT | 文字入力の取得 | ユーザーとの対話 |
SET UP MENU / SELECT ITEM | メニュー登録と選択 | SIM ツールキットメニュー |
PROVIDE LOCAL INFORMATION | 端末・ネットワーク情報の取得 | セル ID・電波品質の収集(IoT) |
SET UP EVENT LIST | 監視イベントの登録 | イベントダウンロードの起点 |
REFRESH | ファイル再読込・再初期化の要求 | OTA 更新後、eSIM プロファイル切替後 |
OPEN CHANNEL / SEND DATA 等 | データチャネルの開設と送受信(クラス e) | BIP による OTA 通信 |
SEND SHORT MESSAGE | SMS の送信(USAT) | カード発のデータ送信 |
なお、処理に時間がかかる場合、カードは MORE TIME コマンドで端末に処理時間を要求します。ネットワーク認証の応答を遅らせないためです。
4. ENVELOPE とイベントダウンロード
4-1. ENVELOPE — 端末からツールキットへの搬入口
ENVELOPE(INS='C2')は、端末側で発生したデータやイベントをカード内のツールキットへ届けるコマンドです。応答のステータスワードには意味があり、'90 00' が正常受理、'62 XX'/'63 XX' が警告、'6F XX' が拒否、'93 00' が「ツールキットが一時的に処理できない」を表します(TS 102 221 §7.4.2)。
代表的な ENVELOPE の種別には、メニュー選択(Menu Selection)、SMS-PP データダウンロード、イベントダウンロードなどがあります。このうち SMS-PP データダウンロードは、事業者がネットワーク経由で SIM 内のファイルやアプレットを更新する OTA/RFM/RAM の土台になっています。
4-2. イベントダウンロード — 端末の状態変化をカードが知る
カードが SET UP EVENT LIST で「このイベントを監視してほしい」と登録すると、端末は該当イベントの発生時に ENVELOPE(EVENT DOWNLOAD)でカードに通知します。

登録できるイベントには、在圏状態の変化(Location status)、ユーザー操作(User activity)、データチャネルの受信(Data available)などがあります。たとえば IoT 向けの SIM アプレットは、在圏状態の変化イベントを契機にセル情報を取得し、位置トラッキングに応用できます。
5. REFRESH — eSIM 時代に重要度が増したコマンド
REFRESH は「カード内のファイルが変わったので読み直してほしい」と端末に要求する Proactive Command です。端末は SIM 内のファイルを起動時に読み込みキャッシュしているため、OTA で書き換えただけでは動作に反映されません。REFRESH がその同期を担います。
モードは複数定義されており、影響の軽い順におおむね次のように使い分けます(このほか NAA Initialization and File Change Notification などの組み合わせモード、NAA Application Reset、NAA Session Reset、Application Update があります)。
モード(概要) | 動作 |
|---|---|
NAA File Change Notification | 変更された EF を端末に通知し、キャッシュの再読込を促す |
NAA Initialization | USIM 等のアプリケーション再初期化 |
eUICC Profile State Change | eSIM のプロファイル切替を通知(リセットなしで再初期化) |
UICC Reset | カード全体のリセット(ATR からやり直し) |
Steering of Roaming(USAT) | 優先ネットワークリストの更新を反映(TS 31.111 §6.4.7) |
eSIM ではこのコマンドが決定的な役割を持ちます。eUICC 上でプロファイルを Enable/Disable した後、eUICC は REFRESH を発行して端末に再初期化を促します。「SIM カードが差し替わった」のと同じ状態を、物理的な抜き差しなしに作るわけです。SGP.22 のプロファイル状態管理(ES10c)は CAT の上に成り立っています。
6. STK/USAT アプリはどう動いているのか
「SIM ツールキットアプリ」の実体は、カード内で動く Toolkit アプレット(CAT の機能を使う JavaCard アプレット)です。動作の骨格は次の通りです。
アプレットは、インストール時に CAT Runtime Environment へ「メニュー項目」「監視したいイベント」を登録する(ETSI TS 102 241 の uicc.toolkit API)
端末起動時、カードは登録済みメニューを SET UP MENU で端末に載せる
ユーザーがメニューを選ぶと、端末が ENVELOPE(Menu Selection)を送り、該当アプレットが起動される
アプレットは Proactive Command を組み立てて応答し、画面表示や SMS 送信を行う
つまり Toolkit アプレットは、Proactive Command と ENVELOPE を API 越しに扱う小さなイベント駆動プログラムです。アプレットの実行環境である JavaCard の詳細はJavaCard とアプレットの記事で扱います。
まとめ
CAT(TS 102 223)はカード側から端末を動かすための共通仕様で、USAT(TS 31.111)はその 3GPP 拡張、STK は GSM 時代の旧称です。
マスター・スレーブ関係は崩さず、ステータスワード '91 XX' → FETCH → TERMINAL RESPONSE という往復で「カード発の命令」を実現しています。
端末からカードへの入口が ENVELOPE で、メニュー選択・イベントダウンロード・SMS-PP データダウンロード(OTA の土台)を運びます。
REFRESH は端末にファイル再読込や再初期化を促すコマンドで、eSIM のプロファイル切替を端末に反映させる要でもあります。
STK/USAT アプリの実体は Toolkit アプレットであり、CAT Runtime Environment に登録されたイベント駆動で動きます。
CAT は 1990 年代の STK から続く古い仕組みですが、OTA も eSIM のプロファイル切替も、現在のリモート SIM 管理はこの土台の上で動いています。
参考規格
ETSI TS 102 223 V18.2.0 — Smart Cards; Card Application Toolkit (CAT)
ETSI TS 102 221 V18.3.0 — Smart Cards; UICC-Terminal interface; Physical and logical characteristics
3GPP TS 31.111 — Universal Subscriber Identity Module (USIM) Application Toolkit (USAT)
3GPP TS 51.014(旧 GSM 11.14) — Specification of the SIM Application Toolkit (SAT) for the SIM-ME interface
ETSI TS 102 241 — Smart Cards; UICC Application Programming Interface (UICC API) for Java Card™
GSMA SGP.22 v3.1 — RSP Technical Specification
おわりに
弊社では「LibeSIM」として、SM-DP+やMVNO回線、eIM(eSIM IoT Remote Manager)、eUICC、IPA/LPAのご提供を行っております。 ご興味がございましたら、デモやPoC等行っておりますので、ぜひお問い合わせください。

山本 真基
コモン・クリエーション株式会社
執行役員 LibeSIM事業責任者
当社にて、eSIM Tech Partner「LibeSIM」の立ち上げ・事業推進を主導。SM-DP+・eIM・MVNOをワンストップで提供し、eSIMの運用に必要なすべてをオープンに選択できる環境の実現を目指す。国内唯一のeIMプロバイダーとして、SGP.32時代のIoT接続管理の最前線に立つ。
