メインコンテンツへスキップ
Diditが750万ドルを調達、本人確認と不正対策のインフラを構築
Didit
ブログ一覧へ
ブログ ・ 2026年10月6日

SD-JWT VC vs mdoc(ISO/IEC 18013-5):EUDIウォレットのフォーマット比較

開発者向けにSD-JWT VCとmdoc(ISO/IEC 18013-5)を比較します。選択的開示、鍵バインディング、OpenID4VPとISO/IEC 18013-7、実施規則(EU)2026/1731がPIDに求める要件、検証者に必要なフォーマットを取り上げます。

By Didit更新日
sd-jwt-vc-vs-mdoc-cover.png

要点

SD-JWT VCとmdoc(ISO/IEC 18013-5)は、すべてのEUデジタルアイデンティティ(EUDI)ウォレットが扱わなければならない2つのクレデンシャルフォーマットです。SD-JWT VCはJSONで、リモートでの利用を前提に設計されています。mdocはバイナリのCBORで、近接でも使えるのはこちらだけです。[1]

  • どちらも同じ考え方で属性を秘匿・開示します。発行者が署名したソルト付きハッシュです。[1]
  • 実施規則(EU) 2026/1731以降、個人識別データは両方の形式で発行されます。[2]
  • リモートの検証者はOpenID4VPでどちらも読み取れます。近接リーダーにはmdocが必要です。[1]

最終確認日: 2026年10月5日 · 法的助言ではありません

SD-JWT VCは、署名付きJSON Web Tokenとしてまとめられた検証可能なクレデンシャルで、クレームを1つずつ開示できます。mdocはISO/IEC 18013-5フォーマットのモバイル文書です。この規格は当初、モバイル運転免許証のために作成されました。EUDIウォレットのアーキテクチャ・リファレンスフレームワーク(ARF)は、この2つをウォレットの必須フォーマットとしています。3つ目のフォーマットであるW3C Verifiable Credentials Data Model 2.0は任意とされ、「非適格EAAのみを対象とする」とされています。[1]

本ガイドは、検証者を構築する開発者向けに両者を比較します。根拠はARF v3.0.0、OpenID for Verifiable Presentations(OpenID4VP)1.0の本文、およびEU官報です。PIDは個人識別データ(person identification data)を指します。

SD-JWT VCとは

ARFは「SD-JWT-based Verifiable Credentials」を、検証可能なクレデンシャルを表現するためのデータフォーマットと処理ルールと説明しています。SD-JWTは「『Selectively Disclosable JSON Web Token』の略」です。[1] JSONエンコーディング、選択的開示を備えた証明メカニズム、任意のデバイスバインディングを含みます。[1]

OpenID4VPではフォーマット識別子はdc+sd-jwtで、クエリはvct_valuesでクレデンシャルの種類を指定します。[4] 以下は仕様書にある発行済みペイロードの例で、8つのダイジェストのうち2つに短縮しています。[4]

{ "_sd": [ "jsu9yVulwQQlhFlM_3JlzMaSFzglhQG0DpfayQwLUK4", "TGf4oLbgwd5JQaHyKVQZU9UdGE0w5rtDsrZzfUaomLo" ], "vct": "https://credentials.example.com/identity_credential", "_sd_alg": "sha-256", "cnf": { "jwk": { "kty": "EC", "crv": "P-256" } } }

注記

SD-JWT VCには未確定の選択肢が多く残っています。ARFは、High Assurance Interoperability Profile(HAIP)は「ウォレットユニットと依拠当事者の間の相互運用性を確保するために必要」としています。[1] HAIPに準拠して構築してください。

mdoc(ISO/IEC 18013-5)とは

ISO/IEC 18013-5は、免許証の属性、そのConcise Binary Object Representation(CBOR)によるエンコーディング、識別子の衝突を防ぐ名前空間、選択的開示を備えた証明メカニズム、必須のデバイスバインディング、近接でのやり取りを定めています。[1]

運転に特有なのは免許証のデータモデルだけです。ARFは、それ以外の要素はすべて「汎用的であり、PIDを含む他のあらゆる種類の証明に使用できる」としています。[1]

OpenID4VPは、これらのクレデンシャルを「CBORでエンコードされ、COSE_Sign1で保護される」ものと説明し、フォーマット識別子mso_mdocを割り当てています。クエリはdoctype_valueで文書の種類を指定します。[4]

注記

モバイル文書を提示するための汎用規格ISO/IEC 23220-4が準備中です。ARFはこれが「まだ完成していない」とし、引き続きISO/IEC 18013-5を参照しています。[1]

各フォーマットでの選択的開示の仕組み

選択的開示により、利用者は一部の属性を共有して残りを秘匿でき、検証者は引き続き発行者の署名を確認できます。eIDAS 2はウォレットにこれを可能にすることを求めています。[6] ARFはSD-JWTの仕組みを「ソルト付きハッシュ」と呼び、「[ISO/IEC 18013-5]で同じ目的に使われる仕組みと概念的に同一である」としています。[1]

JSON

SD-JWT VC

  • 発行者は値ではなくダイジェストを格納したJWTに署名する
  • 秘匿された各クレームは個別の開示情報として送られる
  • ウォレットは承認された開示情報だけを送信する

OpenID4VP 1.0、付録B.3

CBOR

mdoc(ISO/IEC 18013-5)

  • 発行者は、データ要素のソルト付きハッシュに署名します
  • データ要素は名前空間に属します
  • ウォレットは承認された要素のみを返します

ARF v3.0.0、セクション5.4.2および5.4.3

1つの仕組みに、2つのエンコーディングがあります。[1][4]

上記の例では、_sd配列にSHA-256ダイジェストが格納されています。各ディスクロージャーは、ランダム値、クレーム名、クレーム値からなる配列です。名の場合は["2GLC42sKQveCfGfryNRN9w", "given_name", "John"]となり、そのハッシュがリストの最初のダイジェストです。検証者は、受け取った各ディスクロージャーをハッシュ化し、署名済みペイロード内でそのダイジェストを探します。[4]

クレームの指定方法は異なります。JSONクレデンシャルの場合、クレームパスは["address", "street_address"]のようなキーのリストです。mdocの場合、パスは「文字列型の2つの要素を含む」ものです。名前空間とデータ要素識別子で、たとえば["org.iso.18013.5.1", "first_name"]となります。[4]

注意

PID属性表に「18歳以上」の属性はありません。必須属性は、姓、名、生年月日、出生地、国籍です。[3] 選択的開示は属性を隠す仕組みです。生年月日を「はい」か「いいえ」に変換するものではありません。

鍵バインディングとデバイスエンゲージメント

デバイスバインディングは、クレデンシャルをユーザーのウォレット内に保持された鍵に結び付けます。そのため、クレデンシャルは複製できません。検証者は、クレデンシャル内の公開鍵に対応する秘密鍵で新しいランダムデータに署名するようウォレットに求め、これを確認します。[1] 名称は異なります。「[ISO/IEC 18013-5]では『mdoc認証』と呼ばれる。[SD-JWT VC]では『鍵バインディング』と呼ばれる。」[1]

確認事項SD-JWT VCmdoc(ISO/IEC 18013-5)
証明の名称鍵バインディング(Key Binding)mdoc認証(mdoc authentication)
フォーマット上の必須性仕様上は任意標準では必須
保有者鍵の格納場所cnfクレーム発行者が署名したmdoc内
ウォレットがOpenID4VPで返すものKey Binding JWT付きのSD-JWTセッショントランスクリプトに対する署名またはMACを含むDeviceResponse
リクエストとの紐付けKey Binding JWT内のnonceとaudセッショントランスクリプト内のOpenID4VPハンドオーバー

PIDでは、どちらのフォーマットでもデバイスバインディングが必須です。[1][4]

SD-JWT VCについて、OpenID4VPのルールは厳格です。require_cryptographic_holder_bindingがtrue(デフォルト)の場合、ウォレットはKey Binding JWT付きで「SD-JWTを返さなければならない(MUST)」とされています。nonceクレームはリクエストのnonceと一致し、audは貴社のClient Identifierと一致しなければなりません。ただしDigital Credentials API経由の場合は、origin:を先頭に付けた貴社のオリジンと一致する必要があります。[4]

デバイスエンゲージメントはmdocだけのものです。近接フローでは、ユーザーがQRコードを表示するか、NFCタグを提示します。そこには、リーダーがNFC、Bluetooth Low EnergyまたはWi-Fi Awareの接続を開き、その上に認証・暗号化されたチャネルを構築するために必要な情報が含まれています。両者の間にインターネット接続はありません。[1]

ユーザー ウォレット 貴社のリーダー
1ウォレットを開く
2QRまたはNFCタグを提示
3接続、セキュアチャネル
4提示リクエスト

ウォレットがリーダーを認証

5承認を求める
6承認する
7選択されたデータ要素

mdoc(ISO/IEC 18013-5)による近接提示(簡略版)。[1]

ユーザーに表示される画面:

EUDIウォレット

身分証明書を提示

QRコードを表示

1ユーザーがウォレットを開き、提示を開始します。

EUDIウォレット

リーダーにスキャンさせてください

またはリーダーにタッチしてください。

2QRコードまたはNFCタッチでチャネルを確立します。

EUDIウォレット

共有する項目を選択

  • 姓共有
  • 生年月日共有
  • 出生地非共有

共有

3ウォレットがリーダー名を表示し、ユーザーが承認します。

EUDIウォレット

共有済み

4承認された属性だけがスマートフォンの外に出ます。[1]

提示プロトコル: OpenID4VP、ISO/IEC 18013-7、近接提示

ARFは、ウォレットが扱うものを挙げています。近接ではISO/IEC 18013-5、リモートではOpenID4VPまたはISO/IEC 18013-7です。[1]

プロトコル利用場面SD-JWT VCmdoc (ISO/IEC 18013-5)
ISO/IEC 18013-5近接: QRまたはNFCで開始し、その後NFC、Bluetooth Low EnergyまたはWi-Fi Awareいいえはい
HAIPを伴うOpenID4VPリモート: リダイレクトとカスタムURIスキーム、またはDigital Credentials APIはいはい
ISO/IEC 18013-7リモート: Digital Credentials API上の附属書C。附属書AのカスタムURIスキームはウォレットにとって任意いいえはい

ARFに基づく、各プロトコルが扱うフォーマットの対応。[1]

SD-JWT VCのアテステーションは「近接提示では使用できない」とされています。ISO/IEC 18013-7は「[ISO/IEC 18013-5]準拠フォーマットのアテステーションの要求と提示にのみ使用できる」とされています。OpenID4VPは「リモート提示のトランザクションフローにのみ適している」とされ、両方のフォーマットを扱います。[1] OpenID4VP 1.0は2025年7月10日にFinal Specificationになりました。[5]

動画準備中: flow-eudi-openid4vp

OpenID4VPによるウォレットからのリモート提示の流れ(開始から完了まで)。

ARFは、デバイスをまたぐカスタムURIスキームを推奨していません。こうしたフローは「フィッシングやリレー攻撃に対して脆弱である」ためです。ARFは代替としてDigital Credentials APIを挙げています。[1] このAPIはまだW3Cのドラフトで、Chrome 141ではデフォルトで有効になります。[9][10] ISOは18013-7の2024年版技術仕様を廃止・置換済みとしており、第3版が策定中です。コードがどの版を対象にしているか確認してください。[7][8] リクエストの詳細はOpenID4VP検証者ガイドにあります。

実施規則(EU) 2026/1731がPIDに求めること

PIDフォーマットに関する最初の規則である実施規則(EU) 2024/2977は、PIDは「2つのフォーマットで発行されなければならない」と定めていました。ISO/IEC 18013-5:2021とVerifiable Credentials Data Model 1.1です。[2][3] 2026年7月の改正法がこの一文を置き換えました。現在、PIDは「実施規則(EU) 2024/2979の附属書IIの第5項(SD-JWT VCフォーマット)および第6項(ISO/IEC-mdocフォーマット)に定める標準に従って発行されなければならない」とされています。[2]

  1. 2024年12月4日最初の規則2024/2977: 18013-5とVCDM 1.1。
  2. 2026年7月22日改正2026/1731: SD-JWT VCとmdoc。
  3. 2026年7月23日ARF v3.0.0改正法に整合。
  4. 2026年12月24日ウォレット提供期限加盟国ごとに1つのウォレット。
  5. 2028年8月11日顔写真該当する場合、利用者が明示的にオプトアウトしない限り、顔写真の要件が適用されます。

PIDフォーマットに関する法令の変遷。[1][2][3][6]

同じ法令は、実施規則(EU)2024/2982に対する附属書で、2つの提示プロファイルを定めています。「ISO/IEC-mdocプロファイル」と「OpenID4VC-HAIPプロファイル」です。[2]

  • 登録証明書を送信します。verifier_infoの要素の1つは「登録証明書を含まなければならない」とされています。[2]
  • アクセス証明書を、x509_hash Client Identifier Prefixのリーフ証明書として使用します。[2]
  • Digital Credentials APIを介したmdocについては、「ISO/IEC 18013-7:2025の附属書C」に従います。[2]

登録についてはEUDIウォレットの依拠当事者向けガイドで、スケジュールについては2026年と2027年のEUDIウォレットの期限で解説しています。

SD-JWT VCとmdoc(ISO/IEC 18013-5)の比較表

項目SD-JWT VCmdoc(ISO/IEC 18013-5)
エンコーディングJSON Web TokenCBOR、バイナリ
選択的開示ソルト付きハッシュソルト付きハッシュ
ARFにおける主なユースケースリモート(例:リモート本人確認)近接(例:モバイル運転免許証)
ウォレットの対応義務必須必須
この形式でのPID発行ありあり
近接なしあり、ISO/IEC 18013-5
リモートHAIPを用いたOpenID4VPHAIPを用いたOpenID4VP、またはISO/IEC 18013-7
デバイスバインディングフォーマット上は任意、PIDでは必須規格上必須
OpenID4VPのフォーマット識別子dc+sd-jwtmso_mdoc
クレームパスJSONキー名前空間、次にデータ要素識別子

ARFに基づく。ただし、PIDの行(実施規則2026/1731)と最後の2行(OpenID4VP 1.0)を除く。[1][2][4]

米国のモバイル運転免許証は、近接での提示にISO/IEC 18013-5を基盤としている。[7][8] EUの年齢確認ソリューションは、必須の提示方式としてゼロ知識証明を挙げ、「フォールバックとして通常のmDoc提示」を用いるとしている。[13] モルドバのEVO Walletは、HAIP 1.0に従ってプロファイルされたOpenID4VP 1.0とISO/IEC 18013-5 mdocの組み合わせを文書化している。[11]

依拠当事者がサポートすべきフォーマット

ウォレットユニットは両方のフォーマットを扱い、PIDは両方のフォーマットで発行される。[1][2] 本ガイドのために確認した文書には、依拠当事者に両方の要求を義務付ける規定はない。実務上の解釈は次のとおり。リモートの検証者はどちらでも要求できる。インターネット接続のないリーダーにはmdocが必要となる。mdocは近接で機能する唯一のフォーマットである。[1]

1ユーザーとの接点を洗い出す

ウェブサイト、アプリ、窓口、ゲート。

その中に近接フローはあるか

はい

mdoc(ISO/IEC 18013-5)を構築する

リモートでも機能する。

いいえ

SD-JWT VCから始める

HAIPを用いたOpenID4VP上のJSON。

2クエリ層をフォーマット非依存にする

1つのDCQLクエリで両方のフォーマットを指定できる。

3発行者、失効、バインディングを検証する

両方に同じチェックが適用される。

OpenID4VPのDigital Credentials Query Language(DCQL)では、1つのリクエストにdc+sd-jwtクエリとmso_mdocクエリを並べて含めることができる。仕様書にはそのようなリクエストの例が示されている。[4] ARFによれば、依拠当事者は、トラステッドリストまたはトラステッドエンティティリストのトラストアンカーに照らして発行者の署名を検証し、ステータスリストまたは失効リストで失効を確認し、デバイスバインディングを検証する。[1]

eIDAS 2(Regulation (EU) 2024/1183)の下で、各加盟国は2026年12月24日までに少なくとも1つのウォレットを提供しなければならない。また、強力なユーザー認証の使用を義務付けられている民間の依拠当事者は、2027年12月24日までに、ユーザーの要求に応じてウォレットを受け入れなければならない。零細企業と小企業は適用除外となる。[6] 各国の状況はEUDIウォレット導入状況トラッカーで確認できる。

ライブラリとテストツール

本ガイドが依拠する情報源は、オープンソースのライブラリを挙げていません。そのため、本セクションでも挙げません。ただし、テストの実施場所と、選んだライブラリで確認すべき点は示されています。

  • conformance.eudi.dev で適合性テストを実行してください。これは ARF v3.0.0 のリリースノートに記載されています。[1]
  • docs.eudi.dev のリファレンス実装のドキュメントを読んでください。[1]
  • 公開されている検証者の実装を確認してください。モルドバ国立銀行は、金融機関向けにソースコード付きのデモ検証者を公開しています。[12]
  • ライブラリが基本仕様だけでなく HAIP にも準拠しているか確認してください。[1]
  • ライブラリが ISO/IEC 18013-7 のどの版を実装しているか確認してください。[2][8]

Didit によるEUDIウォレット検証の支援

Didit での EUDIウォレットの受け入れは近日対応予定です。EUDIウォレットのスケジュールに合わせてロードマップに組み込まれており、現在お使いのワークフローと同じ流れで利用できるようになります。リモートでの本人確認は現在すでに可能です。

ウォレットのドキュメントでは、eIDを国ごとに有効化する方法を説明しています。

Didit が提供するもの

  • 国のeIDによるサインインと書類ルートを 1 つのワークフローで
  • すべてのチェックの証跡

貴社が担うもの

  • ウォレット依拠当事者としての登録
  • 要求するフォーマットと属性の選択
  • オンボーディングの判断と貴社のポリシー

ウォレットのフォーマットを当社と一緒に計画しましょう

対象国とユーザーとの接点をお知らせください。まずは今日から国のeIDと本人確認書類で始めましょう。

お問い合わせ無料で始めるドキュメントを読む

要点

  • ウォレットは SD-JWT VC と mdoc (ISO/IEC 18013-5) の両方を扱い、PID は両方の形式で発行されます。
  • どちらも選択的開示にソルト付きハッシュを使います。違いはエンコーディングで、JSON か CBOR かです。
  • SD-JWT VC はリモート専用です。mdoc は近接でもリモートでも使えます。
  • HAIP に準拠した OpenID4VP は両方のフォーマットを扱えるため、1 つの検証者でどちらも要求できます。

よくある質問

SD-JWT VC とは何ですか。

選択的開示が可能なJSON Web Tokenとして格納された検証可能なクレデンシャルです。発行者はクレームのダイジェストに署名し、ウォレットは利用者が承認したクレームだけを開示します。[1]

ISO/IEC 18013-5のmdocとは何ですか。

モバイル運転免許証のために最初に定義されたCBORフォーマットのモバイル文書です。規格のそれ以外の部分は汎用的で、PIDを含む他のアテステーションも格納できます。[1]

SD-JWT VCとmdocの違いは何ですか。

違いはエンコーディングと利用範囲です。SD-JWT VCはJSONでリモート専用です。mdocはCBORで、近接でも使えます。どちらも選択的開示にソルト付きハッシュを使います。[1]

EUDIウォレットのPIDはどのフォーマットを使いますか。

両方です。実施規則 (EU) 2026/1731は、PIDをSD-JWT VCフォーマットとISO/IEC-mdocフォーマットで発行すると定めています。[2]

依拠当事者は両方のフォーマットに対応しなければなりませんか。

本ガイドのために確認した文書は、ウォレットに両方のフォーマットの処理を義務づけていますが、依拠当事者が両方を要求しなければならないとは定めていません。リモートの検証者はどちらか一方を要求できます。近接の読取装置にはmdocが必要です。[1][2]

SD-JWT VCの選択的開示はどのように機能しますか。

署名されたトークンには、クレームの値の代わりにダイジェストが含まれます。各クレームは、ランダム値、名前、値からなるディスクロージャーとして送られます。検証者はそれをハッシュ化し、該当するダイジェストを探します。[4]

キーバインディングとは何ですか。mdoc認証と同じものですか。

どちらもデバイスバインディングの呼び名です。デバイスバインディングは、クレデンシャルが利用者のウォレット内の鍵に紐づいていることの証明です。PIDでは必須です。[1]

OpenID4VPはmdocで使えますか。

使えます。OpenID4VPは両方のフォーマットを扱い、識別子はmdocがmso_mdoc、SD-JWT VCがdc+sd-jwtです。もう一つのリモートの選択肢はISO/IEC 18013-7で、こちらはmdocだけを扱います。[1][4]

両方のフォーマットについて検証者をテストできる場所はどこですか。

conformance.eudi.devの適合性テストと、docs.eudi.devのドキュメントを使ってください。モルドバ国立銀行も、ソースコード付きのデモ検証者を公開しています。[1][12]

出典

  1. Architecture and Reference Framework v3.0.0、GitHubのeu-digital-identity-wallet、2026年7月23日リリース。
  2. 欧州委員会実施規則 (EU) 2026/1731、EUR-Lex、2026年7月22日付官報。
  3. 個人識別データに関する欧州委員会実施規則 (EU) 2024/2977、EUR-Lex、2024年12月4日付官報。
  4. OpenID for Verifiable Presentations 1.0、OpenID Foundation、最終仕様。
  5. OpenID for Verifiable Presentations 1.0 Final Specification Approved、OpenID Foundation、2025年7月10日。
  6. 規則 (EU) 2024/1183(eIDAS 2)、EUR-Lex、2024年4月30日付官報。
  7. ISO/IEC 18013シリーズ、モバイル運転免許証、ISO規格ページ。
  8. ISO/IEC 18013-7、ISO規格ページ。
  9. Digital Credentials、W3Cドラフト。
  10. Digital Credentials API shipped、Chrome for Developers。
  11. EVO Wallet開発者ガイド、モルドバ政府、egov4dev。
  12. BNMデモ検証者、モルドバ政府、egov4dev。
  13. EU年齢確認ソリューション、技術ポータル、ageverification.dev。

SD-JWT VCとmdoc(ISO/IEC 18013-5)は、同じ約束を実現する2つのエンコーディングです。その約束とは、ユーザーが管理する署名付き属性です。Diditのウォレット受け入れへの取り組みはEUDIウォレットのソリューションページで、各国のスキームはすべて国別eIDスキームでご確認ください。

ウォレットの展開が進む間も、リモートで本人確認を行う

今すぐ各国のeIDと本人確認書類によるルートを利用し、EUDIウォレットについてはご相談ください。

無料で始めるお問い合わせ

本人確認と不正対策のインフラ。

KYC、KYB、取引監視、ウォレットスクリーニングを一つのAPIで。5分で統合できます。

AIにこのページの要約を依頼する