LibeSIM

山本 真基

2026/11/01 01:00

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

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等行っておりますので、ぜひお問い合わせください。

https://common-creation.com/service/libesim

山本 真基

山本 真基

コモン・クリエーション株式会社

執行役員 LibeSIM事業責任者

当社にて、eSIM Tech Partner「LibeSIM」の立ち上げ・事業推進を主導。SM-DP+・eIM・MVNOをワンストップで提供し、eSIMの運用に必要なすべてをオープンに選択できる環境の実現を目指す。国内唯一のeIMプロバイダーとして、SGP.32時代のIoT接続管理の最前線に立つ。