本記事は生成AIと共同で執筆しています。事実関係は可能な範囲で公式ドキュメント・一次情報と照合していますが、誤りが含まれている可能性があります。重要な判断を行う前にご自身でも一次情報をご確認ください。
デジタルアイデンティティとは何かの続きです。前回は識別子・属性・認証という 3 つの要素と、三者モデルの形を整理しました。今回はそのうち「証明書の形」がどこまで標準になっているかを、仕様のステータスに当たって確認します。
「W3C の identity 関連の仕様」とまとめて呼ばれることがありますが、その名前の 1 本の規格があるわけではなく、複数の仕様が別々の役割を分担しています。W3C が決めているのは資格情報の形と識別子と失効の表し方までで、「どうやって運ぶか」「どう選択的に見せるか」「誰が発行者になれるか」は W3C の外にあります。仕様のステータスは 2026-08-12 に確認した値です。
層と、それを決めている主体
役割ごとに 3 層に分けると、どこが W3C の仕事で、どこがそうでないかが見えてきます。上の層ほど機械可読な仕様で決まっていて、下の層ほど当事者どうしの合意で埋める部分になります。
次の図には略語が多く出てくるので、先にまとめて開いておきます。
| 略語 | 正式名称 | 何を指すか |
|---|---|---|
| W3C | World Wide Web Consortium | Web の標準を作る団体 |
| VC | Verifiable Credentials | 検証可能な資格情報 |
| DID | Decentralized Identifiers | 分散識別子 |
| JWT | JSON Web Token | 署名を付けたトークンの形式 |
| CBOR | Concise Binary Object Representation | JSON に相当する二進形式 |
| JOSE / COSE | JSON / CBOR Object Signing and Encryption | それぞれの形式に署名や暗号化を施す枠組み |
| SD-JWT | Selective Disclosure JWT | 属性単位で伏せられるようにした JWT |
| mdoc | mobile document | 携帯端末で提示する証明書の形式 |
| IETF | Internet Engineering Task Force | インターネットの標準を作る団体 |
| ISO / IEC | 国際標準化機構 / 国際電気標準会議 | 国際規格を策定する団体 |
| OpenID4VCI / OpenID4VP | OpenID for Verifiable Credential Issuance / Presentations | 発行と提示のやりとりの手順 |
| eIDAS | electronic IDentification, Authentication and trust Services | EU の電子的な身元確認とトラストサービスに関する規則 |
| EUDI Wallet | European Digital Identity Wallet | EU が加盟国に提供を求めているデジタル身分証アプリ |
| ARF | Architecture and Reference Framework | EUDI Wallet の作りを定める参照文書 |
W3C 勧告になっているもの
W3C の「勧告 (Recommendation)」は標準化過程の最終段階で、各機能について十分な実装経験が示されたと W3C が判断したあとに与えられます。実装経験の評価では「独立した実装どうしで相互運用しているか」が主要な観点の 1 つですが、具体的に何を満たせば十分かは各ワーキンググループが定めます(たとえば DID ワーキンググループは、機械検証可能な規定について機能ごとに適合実装 2 つ以上を条件にしています)。勧告後も誤りの訂正はありうるものの、互換性を壊す変更は原則として入らない前提で実装できる、という目安として扱われています。2025 年 5 月 15 日に主要な仕様が同日に勧告となり、データモデルの層はここでいったん固まっています。
| 仕様 | ステータス | 何を決めるか |
|---|---|---|
| VC Data Model v2.0 | 勧告 2025-05-15 | VC の形。issuer / credentialSubject / validFrom など、他の仕様の土台 |
| VC Data Integrity 1.0 | 勧告 2025-05-15 | 署名の付け方その 1(JSON の中に proof を埋める) |
| Data Integrity EdDSA Cryptosuites | 勧告 2025-05-15 | 上で使う具体的な暗号 |
| Data Integrity ECDSA Cryptosuites | 勧告 2025-05-15 | 上と同じく Data Integrity で使う暗号 |
| VC JOSE COSE | 勧告 2025-05-15 | 署名の付け方その 2(JWT / CBOR で包む) |
| Bitstring Status List v1.0 | 勧告 2025-05-15 | 失効・停止の表し方 |
| Controlled Identifiers v1.0 | 勧告 2025-05-15 | 鍵と識別子の関係。DID の下敷きとして切り出されたもの |
| DID Core v1.0 | 勧告 2022-07-19 | 分散識別子(did:web / did:key など) |
策定中のものも並べておきます。
| 仕様 | ステータス |
|---|---|
| DID v1.1 | Candidate Recommendation Snapshot 2026-03-05。勧告に進むのは早くとも 2026-04-05 以降とされている |
| DID Resolution v1 | Candidate Recommendation Snapshot 2026-08-06。DID 1.1 から解決の部分を切り出した別仕様(2026-02-08 の草案までは v0.3 と称していた) |
| VC JSON Schema | Candidate Recommendation Draft 2025-02-04 |
| Data Integrity BBS Cryptosuites | Candidate Recommendation Draft 2026-04-07。属性単位の選択的開示に効く |
| VC Data Model v2.1 | 策定中 |
DID 1.1 での主な変更は、メディアタイプを application/did に統合したこと、1.1 用の JSON-LD Context を追加したこと、解決まわりを別仕様に分離したこと、Controlled Identifiers の上に載せる構造にしたことです。
W3C が決めていないもの
ここを混ぜると議論が噛み合わなくなります。
| 層 | 具体例 | 決めている主体 |
|---|---|---|
| 発行のやりとり | OpenID4VCI | OpenID Foundation |
| 提示のやりとり | OpenID4VP | OpenID Foundation |
| 選択的開示の形式 | SD-JWT VC | IETF |
| 対面提示・運転免許証など | mdoc | ISO/IEC 18013-5 |
| 適合性審査のルール | 何を審査して合格とするか | 各エコシステムの運営団体 |
| 制度・要件 | EUDI Wallet の要件 | EU(eIDAS 2.0 / ARF) |
| 誰が発行者になれるか | Trust Framework / Trust Anchor List | どの規格も決めていない |
表の中の EUDI Wallet は、EU が加盟国に提供を求めている市民向けのデジタル身分証アプリで、根拠となる規則と参照文書 (ARF) が要件を決めています(後述)。適合性審査のルールというのは、たとえば Gaia-X であれば「参加者としてどんな記述を出せば合格とするか」を定めた文書のことです。
最下段については、各エコシステムがそれぞれ自前の名簿を持っています。Gaia-X の場合にそこに何が入っているかはGaia-X Registry には何が入っているのかで、学認の場合はアイデンティティ・ウォレットの 4 つの機能と、学認のトラストアンカーで扱います。
手元の資格情報を開いてみる
仕様の一覧だけでは実感が湧かないので、実物を開いてみます。手元には、Gaia-X(EU 発のデータ基盤の枠組み。位置づけはGaia-X の Lighthouse プロジェクトとはに書きました)の適合性審査を担う Compliance Service (2.12.0、Gaia-X Lab が公開しているもの) を Docker で 4 コンテナ(適合性審査の本体、そのデータベース、did:web を解決させるための TLS 終端、データ配信のノード実装である Ocean Node に判定を返すポリシーサーバ)として起動し、自分で書いた自己記述を提出して適合性証明を発行させる、という検証環境を組んであります。組み立ての経緯と詰まった点は許可リストに載っている本人が、ダウンロードできない ── Gaia-X の適合性証明を Ocean の認可に差し込むに書きました。ここではその出力ファイルを開いて、どの仕様が実際に現れるかだけを見ます。
python3 -c '
import sys, json, base64
t = open("out/compliance-credential.jwt").read().strip()
h, p, _ = t.split(".")
dec = lambda s: json.loads(base64.urlsafe_b64decode(s + "=" * (-len(s) % 4)))
print(json.dumps(dec(h), ensure_ascii=False))
print(list(dec(p).keys()))
'
{"alg": "PS256", "iss": "did:web:gx-tls", "kid": "did:web:gx-tls#X509-JWK", "iat": 1786546004151, "exp": 1794322004150, "cty": "vc", "typ": "vc+jwt"}
['@context', 'type', 'id', 'issuer', 'validFrom', 'validUntil', 'credentialSubject']
gx-tls は手元のホスト名です。実行は検証環境のディレクトリ直下で行っています。ペイロード側は次のようになっていました(credentialSubject の中は一部を省略しています)。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://w3id.org/gaia-x/development#"
],
"type": ["VerifiableCredential", "gx:LabelCredential"],
"id": "https://gx-tls/.well-known/compliance-credential.jwt",
"issuer": "did:web:gx-tls",
"validFrom": "2026-08-12T14:46:44.151Z",
"validUntil": "2026-11-10T14:46:44.150Z",
"credentialSubject": {
"id": "https://gx-tls/.well-known/compliance-credential.jwt#cs",
"gx:labelLevel": "SC",
"gx:engineVersion": "2.12.0",
"gx:rulesVersion": "CD25.10",
"gx:compliantCredentials": ["… 3 通の資格情報とそのハッシュ …"],
"gx:validatedCriteria": ["… 適用された審査基準の URI …"]
}
}
読み方を補っておきます。@context は JSON-LD の宣言で、このデータの語彙をどの定義に従って解釈するかを指しています。issuer の did:web:gx-tls は DID の一種で、did:web は「そのホスト名の .well-known から鍵情報を取りに行けばよい」という素直な方式です。ヘッダの alg: PS256 は RSA の署名方式で、typ: vc+jwt が「この JWT の中身は VC である」ことを表します。gx: から始まるフィールドは Gaia-X 側の語彙で、labelLevel は適合性の水準、rulesVersion は審査に使われたルールの版です。
こうして見ると、1 通の中に W3C の勧告が 3 つ同時に現れています。
| 現れている箇所 | 仕様 |
|---|---|
@context の https://www.w3.org/ns/credentials/v2 | VC Data Model 2.0 |
issuer の did:web:… | DID Core 1.0 |
JWT ヘッダの typ: vc+jwt | VC JOSE COSE |
署名の付け方が 2 通りあることも、この 1 通から見て取れます。
| Data Integrity | VC JOSE COSE | |
|---|---|---|
| 形 | JSON の中に proof を埋める | JWT / CBOR で包む |
| 見た目 | {…, "proof": {…}} | eyJhbGci… の 3 分割 |
| 手元の実装 | 使っていない | こちら(typ: vc+jwt) |
取り消しの仕組みが入っていない
ペイロードのキー一覧に credentialStatus がありません。ここを埋めるのが Bitstring Status List v1.0 で、同じ 2025-05-15 に勧告になった仕様です。無い場合、一度発行した資格情報を validUntil(この例では 90 日後)より前に取り消す手段が、資格情報の側にありません。
アーカイブのアクセス制御に使う場合、この差は実務上効いてきます。研究者の異動、倫理審査の承認取消、鍵の漏洩といった事象が起きたときに、資格情報そのものを止める経路が要ります。手元の環境では現状これを実装していないので、次に埋める候補の 1 つです。
なぜいまこの話が出るのか
- 2022 年: DID Core 1.0 が勧告。識別子だけ先に固まる
- 2025-05-15: VC 本体・署名・失効がまとめて勧告。データモデルの層が揃う
- 2026-03: DID 1.1 が Candidate Recommendation。実装による検証の段階
- 並行して、EU と日本で制度の側が動いている
EU 側の動きが eIDAS です。電子的な身元確認とトラストサービスを定めた EU の規則で、2014 年の規則 (EU) No 910/2014 が最初のものでした。その改正が 2024 年 4 月 11 日の規則 (EU) 2024/1183 で、欧州デジタルアイデンティティの枠組みを定め、加盟国が市民や居住者に EUDI Wallet (European Digital Identity Wallet) を提供することを求めています。通称として eIDAS 2.0 と呼ばれます。ウォレットの具体的な作りは ARF (Architecture and Reference Framework) という別文書で規定されています。
日本側では、国立情報学研究所 (NII) と伊藤忠テクノソリューションズ (CTC) が、学術機関のデジタル資格証明の標準化に向けた共同研究を 2024 年 10 月から 2026 年 3 月まで実施しました。学位・学修歴・学生証を対象に、学認のトラストフレームワークを参考にして、デジタル署名を検証できるアーキテクチャを検討する、という枠組みです。
ここで言うトラストフレームワークは、誰が発行者になれるか、何を証明してよいか、違反があったときにどう扱うかといった、技術仕様の外側にある規則の集まりです。学認は SAML を前提にしたその規則を既に持っているので、VC でも通用する形をそこから起こす、という位置づけになります。公表されている資料では、W3C の Verifiable Credentials と ISO/IEC 18013-5 (mdoc) のどちらを採るかは未決とされており、課題として技術規格の分断、属性定義や多言語対応の不統一、正当な機関を認証する仕組みの不足が挙げられています。
規格が固まったので、次は誰がどう使うか、という局面に入っているように見えます。
紛らわしいので注意
W3C には Federated Identity WG という別のワーキンググループがあります。そこで策定されている FedCM (Federated Credential Management API) は、ブラウザに組み込むログイン連携の仕様で、サードパーティ Cookie の廃止後の SSO (Single Sign-On) を扱っており、Verifiable Credentials とは別の話です。
ただし、同じワーキンググループは Digital Credentials API も策定しています(2026-08-12 時点で Working Draft)。こちらはブラウザがウォレットからの資格情報の提示・発行を仲介する API で、提示に OpenID4VP や ISO/IEC 18013-7、発行に OpenID4VCI を組み合わせる想定になっています。上の表で「W3C の外」に置いた運搬の層と、ブラウザをつなぐ位置にあたります。
つまり「W3C の identity」と言われたときは、VC / DID のデータモデルの話か、FedCM の話か、Digital Credentials API の話かを確認したほうが噛み合います。アーカイブのアクセス制御の文脈なら、通常は 1 つ目です。
出典
- Verifiable Credentials Overview v1.0 (W3C) — 仕様ファミリーとステータスの一覧
- Verifiable Credentials Data Model v2.0 (W3C Recommendation, 2025-05-15)
- Bitstring Status List v1.0 (W3C Recommendation, 2025-05-15)
- Decentralized Identifiers (DIDs) v1.1 (W3C Candidate Recommendation, 2026-03-05)
- Decentralized Identifier Resolution (DID Resolution)
コメント
…