SIMのファイルシステムとは?ファイル構造(MF/DF/EF)とPIN/PUKの仕組みを解説

こんにちは、コモン・クリエーションでIoT・SIMエンジニアリングサービスでプロジェクトマネジメントを担当している比嘉です。本記事では、SIM カード(UICC)の内部に実装されている「ファイルシステム」を取り上げます。MF・DF・EF という 3 種類のファイル、IMSI などの重要データがどこに格納されているか、そして PIN/PUK によるアクセス保護の仕組みを、ETSI TS 102 221 と 3GPP TS 31.102 に基づいて整理します。
はじめに
SIM カードは単なるメモリではなく、独自のファイルシステムと OS を持つ小さなコンピュータです。端末は、このファイルシステムから IMSI などの情報を読み出して通信を行います。eSIM プロファイルの中身を理解するうえでも、このファイル構造の知識は土台になります。
本稿では、以下の項目を仕様に基づいて整理します。
MF・DF・EF という 3 種類のファイルと階層構造
ファイルの識別方法(FID・パス・AID)と選択の仕組み
代表的な EF(EF_ICCID、EF_IMSI、EF_UST など)の場所と役割
PIN/PUK によるアクセス制御(リトライ回数・ブロック・解除)
1. まず全体像から — SIMの中身をざっくり理解する
SIM カードの中身は、パソコンのフォルダとファイルに近い構造です。
MF(Master File。ファイルシステムの根元)は、パソコンでいう「ルートディレクトリ」です。カード 1 枚に必ず 1 つだけ存在します。
DF(Dedicated File。ファイルを機能ごとにまとめる入れ物)は「フォルダ」に相当します。
EF(Elementary File。実データを格納するファイル)が「ファイル」に相当し、IMSI や電話帳などの実データはすべて EF に入っています。
厳密には、DF は単なる「フォルダ」ではなくアクセス条件と割り当てメモリを持つ管理単位で、DF 自身はユーザーデータを持ちません。データを持てるのは EF だけです(TS 102 221 §3.1)。
そして各ファイルには「誰がどの操作をしてよいか」というアクセス条件が付いています。その代表が PIN(Personal Identification Number。利用者確認用の暗証番号)です。スマートフォンの画面ロックと似ていますが、SIM の PIN は端末ではなくカード側が照合します。PIN を 3 回連続で間違えるとロックされ、PUK(PIN Unblocking Key。PIN のロックを解除する鍵)でしか復旧できません。
「MF = ルート、DF = フォルダ、EF = データ本体、PIN/PUK = 鍵」
この 4 点を押さえておけば、以降の詳解はこの図式の肉付けです。
2. ファイルの種類と階層 — TS 102 221 の規定
SIM カードの論理構造は ETSI TS 102 221(UICC と端末のインターフェース仕様)の §8 で規定されています。
2-1. MF・DF・ADF・EF
種類 | 正式名称 | 役割 | 備考 |
|---|---|---|---|
MF | Master File | ファイルシステムの根(ルート) | 必須・カードに 1 つ。FID は '3F00' |
DF | Dedicated File | ファイルの機能的グループ化 | DF や EF の親になれる |
ADF | Application Dedicated File | アプリケーション(USIM 等)専用の DF | AID で選択する特別な DF |
EF | Elementary File | データ本体を格納 | 他ファイルの親になれない |
ADF(Application Dedicated File。アプリケーション専用のディレクトリ)は DF の一種で、USIM など 1 つのアプリケーションに属する DF・EF を束ねます。アプリケーション一覧は MF 直下の EF_DIR に AID(Application Identifier)付きで登録され、端末はこの AID で USIM を選択します(TS 102 221 §8.1)。
TS 102 221 §8.1 は、MF 直下に EF_DIR・EF_PL・EF_ICCID・EF_UMPC を必須ファイルとして置くこと、DF_TELECOM(FID '7F10')は任意であることを規定しています。

2-2. ファイルの識別 — FID・パス・AID
各ファイルは 2 バイトの FID(File Identifier。ファイル識別子)を持ち、同じ親の下では重複できません(TS 102 221 §8.3)。ファイルの指定方法は 3 通りあります。
FID の直接指定(例: '6F07')
パス指定(FID の連結。親→子の順)
DF 名 = AID による指定(ADF の選択に使用。1〜16 バイト)
カードに電源が入り ATR(Answer To Reset)が返された直後は、MF が暗黙的に選択された状態から始まり、端末はそこから SELECT コマンドでファイルを辿ります(TS 102 221 §8.4.0)。コマンドの詳細は ISO 7816とAPDU入門で扱います。
2-3. EF の 4 つの内部構造
EF はデータの持ち方で 4 種類に分かれます(TS 102 221 §8.2.2)。
構造 | 内容 | 用途の例 |
|---|---|---|
Transparent | 単純なバイト列。オフセット指定で読み書き | EF_ICCID、EF_IMSI |
Linear fixed | 固定長レコードの並び。レコード番号で参照 | 電話帳(EF_ADN) |
Cyclic | 固定長レコードを環状に上書き。最古を消して追記 | 発信履歴 |
BER-TLV | TLV 形式のデータオブジェクト集合 | 大きな可変長データ |
3. 代表的なEF — IMSIやHPLMN関連情報はどこにあるか
USIM 配下の EF は 3GPP TS 31.102(USIM アプリケーションの特性仕様)が規定します。実務でよく参照するものを挙げます。
EF | FID | 場所 | 内容 |
|---|---|---|---|
EF_ICCID | '2FE2' | MF 直下 | カード(eUICC ではプロファイル)の識別番号 |
EF_IMSI | '6F07' | ADF_USIM | 加入者識別番号 IMSI(TS 31.102 §4.2.2) |
EF_UST | '6F38' | ADF_USIM | USIM Service Table。どのサービス・EF が有効かのフラグ表(§4.2.8) |
EF_HPPLMN | '6F31' | ADF_USIM | HPLMN をより高い優先度で再探索する周期(§4.2.6) |
EF_EHPLMN | '6FD9' | ADF_USIM | Equivalent HPLMN のリスト |
EF_Keys | '6F08' | ADF_USIM | 認証で確立した暗号鍵 CK・完全性鍵 IK(§4.2.3) |
補足が 2 点あります。
HPLMN(Home PLMN。契約事業者のネットワーク)そのものを書いた EF はありません。HPLMN は EF_IMSI の先頭の MCC/MNC から導出され、EF_EHPLMN で「同等とみなす PLMN」を追加できます。「HPLMN 関連の EF」が指すのは、この導出元と周辺 EF 群です。
EF_IMSI のアクセス条件は「READ = PIN、UPDATE = ADM」です(TS 31.102 §4.2.2)。IMSI は PIN を照合すれば読めますが、書き換えはカード発行者の管理鍵(ADM。Administrative アクセス条件)でしか行えません。EF ごとにこうした制御が定義されている点が、SIM のファイルシステムの本質です。
IMSI や ICCID といった識別子そのものの構造は、ICCIDとは?UICCとeUICCで対応関係が変わる識別子の話で整理しています。
4. PIN/PUKの仕組み — アクセス条件とリトライカウンタ
4-1. アクセス条件の種類
各 EF には操作(READ/UPDATE 等)ごとにアクセス条件が設定されます。代表的な値は次の 4 つです。
アクセス条件 | 意味 |
|---|---|
ALW (ALWays) | 常に許可。照合不要 |
PIN | 該当 PIN の照合成功が必要 |
ADM | カード発行者の管理鍵が必要 |
NEV (NEVer) | インターフェース経由では不可 |
4-2. PINの種類 — PIN1・PIN2・Universal PIN
TS 102 221 §9.4 は複数種類の PIN を定義しています。
アプリケーションPIN: いわゆる PIN1。USIM アプリケーション全体のファイルアクセスを守ります。
ローカルPIN: いわゆる PIN2。その ADF/DF 内だけで有効な PIN で、発信先固定(FDN)など一部機能の保護に使われます(TS 31.101 §9.6)。
Universal PIN: マルチアプリケーション UICC で複数アプリが 1 つの PIN を共有する仕組み。キー参照値 '11' が予約されています(TS 102 221 §9.4.1)。
PIN の値は 4〜8 桁の数字で、8 バイトに満たない分は端末が 'FF' でパディングしてカードに送ります(TS 31.101 §9.6)。
4-3. 照合・ブロック・解除の流れ
PIN の照合は VERIFY PIN コマンドで行います(TS 102 221 §11.1.9)。

ポイントは次の通りです。
失敗のカウントはカード側が不揮発に保持します。「3 回連続」は同一セッション内に限らず、電源を入れ直しても引き継がれます(TS 102 221 §11.1.9)。
ブロックされた PIN は UNBLOCK PIN コマンドでのみ解除できます。このとき使う照合値が PUK です(仕様上の名称は UNBLOCK PIN)。解除成功時に新しい PIN を設定し、PIN のリトライ回数は初期値 3 に戻ります(同 §11.1.13)。
PUK 自体にもリトライカウンタがあり、初期値は 10 です。使い切ると PUK もブロックされ、その PIN は以後解除できません(同 §11.1.13)。
データ部を空にした VERIFY PIN を送ると、照合せずに残り回数('63CX' の X)だけを確認できます(同 §11.1.9.1.2)。
項目 | PIN | PUK (UNBLOCK PIN) |
|---|---|---|
桁数 | 4〜8 桁 | 8 桁固定 |
リトライ回数の初期値 | 3 回 | 10 回 |
失敗し切った場合 | ブロック(PUK で解除可) | 恒久的にブロック |
5. eUICCではどうなるか — プロファイルの中の「仮想SIM」
ここまでの構造は物理 SIM カードの話に見えますが、eSIM でもそのまま生きています。eUICC にダウンロードされる eSIM プロファイルの中身は、まさにこの MF/ADF_USIM 以下のファイルシステム一式(ファイル定義・EF の初期値・鍵・アプレット)です。プロファイルを有効化すると、端末からは従来の UICC と同じファイル構造が見えます。「プロファイルとは仮想的な SIM カード一式である」という eSIM の核心は、本記事の構造理解の延長にあります。
プロファイルがどのようなデータ形式で記述されるかは プロファイルの正体 — TCA eUICC Profile Package で、eUICC 内部でプロファイルがどう隔離されるかは eUICCアーキテクチャ で解説します。
まとめ
SIM カード(UICC)の中身は MF(ルート)・DF(グループ)・EF(データ本体)の階層型ファイルシステムで、ETSI TS 102 221 が規定している
USIM のデータは AID で選択する ADF_USIM 配下にあり、EF_IMSI('6F07')などの EF は 3GPP TS 31.102 が規定している
HPLMN を直接格納する EF はなく、IMSI の MCC/MNC から導出される
すべての EF は操作ごとのアクセス条件(ALW/PIN/ADM/NEV)を持ち、「読めるが書けない」といった制御が EF 単位で効いている
PIN は 3 回、PUK は 10 回の失敗でブロックされ、カウンタは電源断をまたいで保持される
eSIM プロファイルの中身はこのファイルシステム一式であり、本記事の構造理解はそのまま eSIM の理解につながる
SIM を「番号が書かれたカード」ではなく「アクセス制御付きのファイルシステムを持つセキュアなコンピュータ」として捉えること。これが SIM/eSIM 技術を学ぶうえでの最初の土台になります。
参考規格
ETSI TS 102 221 V18.3.0 — Smart Cards; UICC-Terminal interface; Physical and logical characteristics
3GPP TS 31.101 V19.0.0 — UICC-terminal interface; Physical and logical characteristics
3GPP TS 31.102 V19.4.0 — Characteristics of the Universal Subscriber Identity Module (USIM) application
おわりに
弊社では「LibeSIM」として、SM-DP+やMVNO回線、eIM(eSIM IoT Remote Manager)、eUICC、IPA/LPAのご提供を行っております。 ご興味がございましたら、デモやPoC等行っておりますので、ぜひお問い合わせください。
比嘉 叶
コモン・クリエーション株式会社
シニアマネージャー
eSIM Tech Partner「LibeSIM」のサービス開発と、SIMアプレット・SGP.32関連の受託開発のプロジェクトマネジメントを担当。ソフトウェア開発会社で約10年間、システムの開発とプロジェクトマネジメントに従事し、要件定義から開発・インフラ構築・顧客折衝までを一貫して手がける。