eSIMのQRコードとは?Activation CodeとSM-DSの仕組みを詳しく解説

無料ウェビナーのご案内
SIM・eSIMの基本を、動画でも学んでみませんか?
本ウェビナーでは、SIMカードとeSIMの違い、eUICC・プロファイル・SM-DP+の関係、プロファイルを遠隔で書き込む仕組みなどを、図を交えて約15分で解説します。
記事とあわせて全体像を整理したい方や、業務でeSIMを扱い始めた方におすすめです。学び直しや社内での情報共有にもご活用ください。
今すぐ申し込む(無料)
こんにちは、コモン・クリエーションでIoT・SIMエンジニアリングサービスでプロジェクトマネジメントを担当している比嘉です。 本記事では、eSIM の開通時に読み取る QR コードの正体である Activation Code と、QR コードを使わずにプロファイルを見つけるための SM-DS ディスカバリの仕組みを解説します。
はじめに
Consumer eSIM は、エンドユーザー自身の操作でプロファイルをダウンロードする「プル型」の設計です。このとき端末側の LPA(Local Profile Assistant。端末内のプロファイル管理ソフトウェア)は、最初に「どの SM-DP+ に、どの注文を取りに行けばよいか」を知る必要があります。GSMA の仕様 SGP.22 は、その手段として Activation Code・Default SM-DP+・SM-DS の 3 つを定義しています。
本稿では、以下の項目について SGP.22 v3.1 に基づいて整理します。
LPA が SM-DP+ を見つける 3 つの方法
Activation Code(QR コード)の構造と MatchingID
Default SM-DP+ の仕組みと用途
SM-DS(Root SM-DS)によるイベント登録・取得の流れ
Consumer RSP の全体像(SM-DP+/SM-DS/LPA の役割分担)は、SGP.21/SGP.22とは?Consumer eSIMのアーキテクチャで解説しています。本稿はその続きにあたります。
1. まず全体像から — 「プロファイルの受け取り方」をざっくり理解する
プロファイルのダウンロードを、荷物の受け取りにたとえてみます。MNO に eSIM を申し込むと、プロファイルという「荷物」が SM-DP+ という「窓口」に預けられます。端末(LPA)がこの荷物を受け取る方法は 3 つあります。
方式 | たとえ | 仕組み |
|---|---|---|
Activation Code | 窓口の住所と引換番号が書かれた引換券 | QR コードや文字列で SM-DP+ のアドレスと注文の識別子を端末に渡す |
Default SM-DP+ | いつも決まった窓口に取りに行く | eUICC にあらかじめ書き込まれた SM-DP+ アドレスへ端末が自動で接続する |
SM-DS | 「あなた宛の荷物があります」という掲示板 | SM-DP+ が SM-DS に「この eUICC 宛のイベントがある」と登録し、端末が掲示板を見に行く |
Activation Code は、ユーザーが QR コードを読み取るという一手間が必要な代わりに、どの事業者のプロファイルでも受け取れる汎用的な方法です。Default SM-DP+ は、販売時点で契約先が決まっている端末(キャリアモデルなど)に向きます。SM-DS は、ユーザーが住所を知らなくても「あなた宛の荷物」の存在を端末が自動で発見できる仕組みで、QR コード読み取りすら不要な体験を実現します。
厳密には、この 3 方式は「LPA が最初に接続すべき RSP サーバーのアドレスと、注文を特定する識別子をどう入手するか」の違いであり、その後のダウンロード手順(相互認証と BPP の転送)は共通です。ダウンロード手順自体はeSIMプロファイルダウンロードフロー詳解で扱います。
2. Activation Codeの構造
2-1. フィールド構成(SGP.22 §4.1)
Activation Code(AC)は、$ 区切りの文字列として SGP.22 §4.1 Table 8 で定義されています。最大長は 255 文字です。
AC_Format $ SM-DP+アドレス $ AC_Token [$ SM-DP+ OID] [$ CC必須フラグ] [$ ...]
例: 1$SMDP.EXAMPLE.COM$04386-AGYFT-A74Y8-3F815
フィールド | 必須/任意 | 内容 |
|---|---|---|
AC_Format | 必須 | 現行フォーマットでは |
SM-DP+ Address | 必須 | SM-DP+ の FQDN(例: |
AC_Token | 必須 | MatchingID(後述)。ゼロ長も可 |
SM-DP+ OID | 任意 | SM-DP+ 証明書(CERT.DPauth)の OID。なりすまし検知に使う |
Confirmation Code Required Flag | 任意 |
|
CI Public Key indicator | 任意 | v3.0 で追加。使用する eSIM CA ルート公開鍵の指定 |
Delete Notification for Device Change | 任意 | v3.0 で追加。Device Change 時の削除通知を運ぶ(この場合のみ 255 文字を超えてよい) |
QR コードとして提供するときは、この文字列の先頭に LPA: を付けます。iPhone や Android が eSIM の QR コードを認識できるのは、この LPA:1$... という決まったプレフィックスがあるためです。
2-2. MatchingID(SGP.22 §4.1.1)
AC_Token の実体は MatchingID(オペレーターと SM-DP+ の間で発番される注文識別子)です。SGP.21 で言う「Activation Code Token」と同じものを指します。
MNO がダウンロード注文(ES2+.DownloadOrder)を出す過程で生成される
大文字英数字(0-9、A-Z)と
-のみで構成される。QR コードの英数字モードで小さく符号化するための制約であるSM-DP+ は既知の MatchingID を含むリクエストしか処理しない。つまり MatchingID は「引換券の番号」であると同時に、SM-DP+ を無差別なリクエストから守る役割も持つ
「Activation Code = SM-DP+ の住所 + 引換券(MatchingID)」
QR コードは単なる URL ではなく、この 2 つの情報を LPA に渡すための入れ物です。
3. Default SM-DP+ — コードを読まずに決まった窓口へ
Default SM-DP+ は、eUICC にあらかじめ設定された SM-DP+ アドレスです。LPA は「ES10a.GetEuiccConfiguredAddresses」ファンクションで eUICC からこのアドレスを読み出し、QR コードなしで SM-DP+ に接続します。
この方式では MatchingID を持たないため、ダウンロード要求の MatchingID は「なし(missing)」として送られます。SM-DP+ 側は、認証で得た EID を手がかりに、その eUICC 用に準備された注文を引き当てます。つまり「引換券なしで窓口に行き、身分証(EID)で荷物を特定してもらう」方式です。
キャリアが端末と回線をセットで販売するケースや、出荷時に接続先が決まっている IoT デバイスに適しています。ただし接続先が 1 つに固定されるため、複数事業者のプロファイルを自由に受け取る用途には向きません。
4. SM-DSディスカバリ — 「あなた宛のイベントがあります」
4-1. Root SM-DSとAlternative SM-DS
SM-DS(Subscription Manager - Discovery Server。プロファイルの所在を端末に知らせるディスカバリサーバー)は、SM-DP+ からの「この eUICC 宛にダウンロードすべきものがある」という Event Record(EID・EventID・接続先アドレスの組)を預かり、問い合わせてきた LPA に返します。
SM-DS には 2 つの階層があります。
Root SM-DS: GSMA が運営するディスカバリサーバー。eUICC は Root SM-DS のアドレスを出荷時から保持しており(v3 では複数の Root SM-DS アドレスを設定可能)、LPA は必ずここへ問い合わせできる
Alternative SM-DS: 事業者などが運営する任意のディスカバリサーバー。自身への登録を Root SM-DS へ転送(カスケード)できる
4-2. イベント登録から取得までの流れ(SGP.22 §3.6)

MNO が SM-DP+ にダウンロード注文を出す
SM-DP+ は「ES12.RegisterEvent」で、対象 eUICC の EID・EventID・自身のアドレスを SM-DS に登録する
LPA は eUICC から Root SM-DS のアドレスを読み出す
LPA と SM-DS が ES11 インターフェース上で相互認証する。SM-DS は認証で得た EID に紐づく Event Record を検索する
SM-DS が Event Record を LPA に返す
LPA は Event Record 中のアドレス(SM-DP+)へ接続する。このとき EventID を MatchingID として使う
ダウンロード完了後、SM-DP+ は「ES12.DeleteEvent」でイベントを削除する
SM-DS が預かるのは「EID 宛のイベントがどこにあるか」だけで、プロファイルの中身は一切通りません。個人情報を持たない薄い掲示板として設計されている点が、SM-DS の重要な特徴です。
4-3. カスケード登録
Alternative SM-DS を使う場合、SM-DP+ は Alternative SM-DS に登録し、Alternative SM-DS がさらに Root SM-DS へ登録を転送できます(SGP.22 §3.6.1.2)。このとき Root SM-DS 側の Event Record には「Alternative SM-DS のアドレス」が入るため、LPA は Root SM-DS → Alternative SM-DS → SM-DP+ と 2 段でたどることになります。削除も同様に、EventID1(Alternative 側)と EventID2(Root 側)を使ってカスケードで行われます。
5. 3方式の使い分けとMatchingIDの関係
3 方式の違いは、最終的に「LPA がどこへ接続し、MatchingID に何を入れるか」に集約されます(SGP.22 §3.1.3)。
観点 | Activation Code | Default SM-DP+ | SM-DS |
|---|---|---|---|
アドレスの入手元 | QR コード/手入力 | eUICC 内の設定 | SM-DS の Event Record |
MatchingID の値 | AC_Token | なし(missing) | EventID |
ユーザー操作 | コード読み取りが必要 | 不要 | 不要 |
主な用途 | 汎用(MVNO・トラベル eSIM 等) | キャリアモデル端末、IoT | QR レス開通、機種変更 |
どの方式でも、その後の相互認証・ダウンロード手順は共通です。方式の選択は技術的な優劣ではなく、「誰が・いつ・どうやって開通させたいか」という商流の設計で決まります。
まとめ
LPA が SM-DP+ を見つける方法は、Activation Code・Default SM-DP+・SM-DS の 3 つ(SGP.22)
Activation Code は
1$アドレス$MatchingID$...という$区切りの文字列で、QR コード化時はLPA:を先頭に付けるMatchingID は MNO と SM-DP+ の間の注文識別子であり、SM-DP+ を不正リクエストから守る役割も持つ
Default SM-DP+ は eUICC 内の固定アドレスに接続する方式で、MatchingID なしで EID から注文を引き当てる
SM-DS は EID 宛の Event Record を預かる「掲示板」で、GSMA 運営の Root SM-DS と任意の Alternative SM-DS の 2 階層がある
3 方式の違いは「アドレスと MatchingID の入手方法」であり、その後のダウンロード手順は共通
QR コードの読み取りも、機種変更時の自動開通も、根は同じ「アドレスと引換券をどう LPA に渡すか」という問題です。この視点を押さえると、Consumer RSP の各手順がつながって見えてきます。
参考規格
GSMA SGP.21 v2.7 — RSP Architecture
GSMA SGP.22 v3.1 — RSP Technical Specification(§3.1.3 ダウンロード開始、§3.6 SM-DS 手順、§4.1 Activation Code)
ISO/IEC 18004 — QR Code bar code symbology specification
おわりに
弊社では「LibeSIM」として、SM-DP+やMVNO回線、eIM(eSIM IoT Remote Manager)、eUICC、IPA/LPAのご提供を行っております。 ご興味がございましたら、デモやPoC等行っておりますので、ぜひお問い合わせください。
比嘉 叶
コモン・クリエーション株式会社
シニアマネージャー
eSIM Tech Partner「LibeSIM」のサービス開発と、SIMアプレット・SGP.32関連の受託開発のプロジェクトマネジメントを担当。ソフトウェア開発会社で約10年間、システムの開発とプロジェクトマネジメントに従事し、要件定義から開発・インフラ構築・顧客折衝までを一貫して手がける。