SSI 2025 - 自己主権型アイデンティティの実現

2026.01.12

自己主権型アイデンティティとは

**SSI(Self-Sovereign Identity)**は、個人が自身のデジタルアイデンティティを完全にコントロールする新しいパラダイムです。従来の中央集権的なID管理とは異なり、ユーザーが自分のデータの所有者となり、必要な情報を必要な相手にだけ開示できる仕組みを実現します。

2025年、SSIは理論的な概念から実用的なインフラストラクチャへと進化し、世界中で採用が加速しています。

なぜSSIが必要なのか

現在のアイデンティティ管理の問題

従来のID管理

flowchart TB
    subgraph traditional["中央集権型モデル"]
        User["ユーザー"]
        User --> CompanyA["企業A(データ保管)"]
        User --> CompanyB["企業B(データ保管)"]
        User --> Gov["政府機関(データ保管)"]
    end

    subgraph problems["問題点"]
        P1["データ漏洩リスク(各所にデータが分散)"]
        P2["プライバシーの欠如"]
        P3["ベンダーロックイン"]
        P4["本人確認の重複コスト"]
    end

SSIモデル

flowchart TB
    subgraph ssi["自己主権型モデル"]
        User2["ユーザー(データ所有)"]
        User2 --> Wallet

        subgraph Wallet["デジタルウォレット"]
            DID["DID(分散型識別子)"]
            VC["Verifiable Credentials"]
            Key["秘密鍵"]
        end

        Wallet --> Selective["選択的開示"]
        Selective --> Verifier["検証者(必要な情報のみ)"]
    end

SSIの3つの柱

説明技術
分散型識別子中央機関に依存しないIDDID
検証可能な資格情報改ざん不可能な証明書Verifiable Credentials
デジタルウォレットユーザー管理のデータ保管Edge Wallet

DID(Decentralized Identifiers)

DIDの構造

DIDは、W3Cによって標準化された分散型識別子です。従来のURLのように見えますが、中央機関に依存せず、ユーザー自身が生成・管理できます。

DID の形式:
did:method:method-specific-identifier

例:
did:ion:EiClkZMDxPKqC9c-umQfTkR8vvZ9JPhl_xLDI9Nfk38w5w
did:web:example.com
did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK
did:ethr:0xb9c5714089478a327f09197987f16f9e5d936e8a

DIDメソッドの比較

メソッド基盤特徴用途
did:ionBitcoin L2高い永続性企業・政府
did:webDNS/HTTPS導入容易Webサービス
did:keyなし(自己完結)軽量一時的な用途
did:ethrEthereumスマートコントラクトDeFi連携
did:cheqdCosmos支払い機能商用SSI

DID Document

DIDはDID Documentという文書に解決されます。この文書には、そのDIDに関連する公開鍵、認証方法、サービスエンドポイントなどが含まれます。

{
  "@context": [
    "https://www.w3.org/ns/did/v1",
    "https://w3id.org/security/suites/jws-2020/v1"
  ],
  "id": "did:ion:EiClkZMDxPKqC9c-umQfTkR8vvZ9JPhl_xLDI9Nfk38w5w",
  "verificationMethod": [
    {
      "id": "#key-1",
      "type": "JsonWebKey2020",
      "controller": "did:ion:EiClkZMDxPKqC9c-umQfTkR8vvZ9JPhl_xLDI9Nfk38w5w",
      "publicKeyJwk": {
        "kty": "EC",
        "crv": "secp256k1",
        "x": "WfY7Px6AgH6x-_dgAoRbg8weYRJA36ON-gQiFnETrqw",
        "y": "IzFx3BUGztK0cyDStiunXbrZYRd8SLWtHW8i2JKoCSU"
      }
    }
  ],
  "authentication": ["#key-1"],
  "assertionMethod": ["#key-1"],
  "service": [
    {
      "id": "#linkedin",
      "type": "LinkedDomains",
      "serviceEndpoint": "https://www.linkedin.com/in/example"
    }
  ]
}

Verifiable Credentials(検証可能な資格情報)

VCの概念

**Verifiable Credentials(VC)**は、発行者がデジタル署名した資格情報です。学歴証明、免許証、健康診断結果など、あらゆる証明書をデジタル化し、改ざん不可能な形で発行・検証できます。

flowchart TB
    Issuer["発行者(Issuer)"]
    Issuer -->|"1. VC発行(署名付き)"| Holder

    subgraph Holder["保有者(Holder)"]
        Wallet2["デジタルウォレット"]
    end

    Holder -->|"2. VP提示(選択的開示)"| Verifier["検証者(Verifier)"]
    Verifier -->|"3. 署名検証"| Trust["信頼確立"]

VCの構造

{
  "@context": [
    "https://www.w3.org/2018/credentials/v1",
    "https://www.w3.org/2018/credentials/examples/v1"
  ],
  "id": "https://example.edu/credentials/3732",
  "type": ["VerifiableCredential", "UniversityDegreeCredential"],
  "issuer": {
    "id": "did:ion:EiClkZMDxPKqC9c-umQfTkR8vvZ9JPhl_xLDI9Nfk38w5w",
    "name": "東京大学"
  },
  "issuanceDate": "2025-01-15T00:00:00Z",
  "expirationDate": "2030-01-15T00:00:00Z",
  "credentialSubject": {
    "id": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
    "degree": {
      "type": "BachelorDegree",
      "name": "工学部 情報工学科",
      "graduationDate": "2025-03-25"
    }
  },
  "proof": {
    "type": "JsonWebSignature2020",
    "created": "2025-01-15T00:00:00Z",
    "verificationMethod": "did:ion:EiClk...#key-1",
    "proofPurpose": "assertionMethod",
    "jws": "eyJhbGciOiJFUzI1NksiLCJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdfQ..."
  }
}

Verifiable Presentations(VP)

VPは、複数のVCをまとめて提示する仕組みです。ユーザーは必要な情報だけを選択的に開示できます。

{
  "@context": ["https://www.w3.org/2018/credentials/v1"],
  "type": "VerifiablePresentation",
  "holder": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
  "verifiableCredential": [
    {
      // 大学学位証明(選択的に開示)
    },
    {
      // 運転免許証(年齢のみ開示)
    }
  ],
  "proof": {
    "type": "JsonWebSignature2020",
    "created": "2025-06-15T10:00:00Z",
    "challenge": "abc123",
    "domain": "example.com",
    "proofPurpose": "authentication",
    "verificationMethod": "did:key:z6Mkh...#key-1",
    "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..."
  }
}

選択的開示とゼロ知識証明

選択的開示(Selective Disclosure)

SSIの重要な機能の一つが選択的開示です。例えば、年齢確認が必要な場合、生年月日全体ではなく「20歳以上である」という事実だけを証明できます。

従来の年齢確認: 運転免許証提示 -> 氏名、住所、生年月日、顔写真…全て開示

SSIでの年齢確認: VP提示 -> 「20歳以上」のみ開示(ゼロ知識証明)

技術的実装:

flowchart TB
    subgraph SDJWT["SD-JWT(Selective Disclosure)"]
        Format["Header.Payload.Signature~Disclosure1~Disc..."]

        subgraph Payload["Payload(ハッシュ化)"]
            SD["_sd: hash_of_name, hash_of_address, hash_of_birthdate"]
            ISS["iss: did:ion:..."]
            IAT["iat: 1704067200"]
        end

        Selection["開示選択: birthdate のみ開示"]
    end

BBS+署名とゼロ知識証明

// BBS+署名を使用した選択的開示の例
import { BbsBlsSignature2020 } from '@mattrglobal/bbs-signatures';

// 発行者:全属性に署名
const credential = await signCredential({
  issuer: 'did:ion:issuer...',
  subject: {
    name: '山田太郎',
    birthDate: '1990-05-15',
    address: '東京都渋谷区...',
    licenseNumber: '123456789'
  },
  signatureSuite: new BbsBlsSignature2020()
});

// 保有者:一部属性のみ開示
const derivedCredential = await deriveProof({
  credential,
  revealedAttributes: ['birthDate'], // 生年月日のみ開示
  nonce: 'verifier-provided-nonce'
});

// 検証者:開示された属性のみ確認可能
const verified = await verifyProof(derivedCredential);
// verified.credentialSubject = { birthDate: '1990-05-15' }
// 他の属性は暗号学的に隠蔽されている

W3C標準化動向

現在の標準

仕様ステータス説明
DID Core 1.0W3C勧告DIDの基本仕様
VC Data Model 2.0W3C勧告VCの最新データモデル
VC JSON SchemaW3C作業草案VCのスキーマ定義
DID ResolutionW3C NoteDIDの解決プロトコル

2025年の標準化進展

timeline
    title 2025年 W3C標準化ロードマップ
    Q1 : VC Data Model 2.0 正式勧告
       : JSON-LD と JSON の両方をサポート
       : SD-JWT 形式の標準化
    Q2 : DID Resolution 仕様更新
       : キャッシュ戦略の標準化
       : Universal Resolver 2.0
    Q3 : VC Status List 2025
       : 効率的な失効確認
       : プライバシー保護型ステータス
    Q4 : Trust Framework 相互運用性
       : eIDAS 2.0 との整合
       : グローバル信頼ネットワーク

実装例

Microsoft ION

**ION(Identity Overlay Network)**は、Microsoftが開発したBitcoinのLayer 2上で動作するDIDネットワークです。

flowchart TB
    subgraph ION["ION Node"]
        IPFS["IPFS(データ保管)"]
        MongoDB["MongoDB(インデックス)"]

        IPFS --> Bitcoin
        MongoDB --> Bitcoin

        Bitcoin["Bitcoin Network(アンカリング・永続性)"]
    end

特徴:

  • 1秒あたり10,000以上のDID操作
  • 分散型・検閲耐性
  • オープンソース
// ION SDK を使用したDID作成
import { anchor, DID, generateKeyPair } from '@decentralized-identity/ion-tools';

async function createIONDID() {
  // キーペア生成
  const authKey = await generateKeyPair('secp256k1');

  // DID作成リクエスト
  const didRequest = {
    content: {
      publicKeys: [
        {
          id: 'auth-key',
          type: 'EcdsaSecp256k1VerificationKey2019',
          publicKeyJwk: authKey.publicJwk,
          purposes: ['authentication', 'assertionMethod']
        }
      ],
      services: [
        {
          id: 'profile',
          type: 'LinkedDomains',
          serviceEndpoint: 'https://example.com/.well-known/did.json'
        }
      ]
    }
  };

  // DIDをBitcoinにアンカリング
  const anchorResult = await anchor(didRequest);

  console.log('DID created:', anchorResult.did);
  console.log('Long-form DID:', anchorResult.longFormDid);

  return {
    did: anchorResult.did,
    privateKey: authKey.privateJwk
  };
}

EU eIDAS 2.0とEUDI Wallet

EUでは、eIDAS 2.0規制に基づき、全加盟国で利用可能なデジタルアイデンティティウォレットの導入が進んでいます。

flowchart TB
    subgraph EUDI["EU Digital Identity Wallet"]
        PID["国民ID(PID)"]
        MDL["運転免許証(Mobile Driving License)"]
        Health["健康保険証"]
        Education["学歴証明(ELM/EDCI)"]
        Trust["認定された信頼サービス(Qualified Electronic Signatures, Seals)"]
    end

導入スケジュール:

timeline
    title EUDI Wallet 導入スケジュール
    2024年 : ARF (Architecture Reference Framework) 確定
    2025年 : パイロットプログラム(Large Scale Pilots)
    2026年 : EU全加盟国での利用開始
    2027年 : 民間サービスでの対応義務化

日本のデジタルアイデンティティ動向

日本のSSI関連動向(2025年):

マイナンバーカード x SSI:

  • デジタル庁によるDID/VC実証実験
  • マイナポータルからのVC発行検討
  • 民間認証基盤との連携

金融分野:

  • 銀行間本人確認のVC化
  • オープンバンキングでのDID活用
  • FATF対応のSSIベースKYC

教育分野:

  • 大学学位のVC発行開始
  • オープンバッジ2.0との統合
  • 生涯学習記録のポータビリティ

医療分野:

  • 電子処方箋のVC化実験
  • ワクチン接種証明の国際相互運用
  • PHR(Personal Health Record)連携

実装フレームワーク

Veramo

Veramoは、DIDとVCを扱うためのモジュラーなJavaScriptフレームワークです。

import { createAgent, IResolver, IKeyManager, IDataStore } from '@veramo/core';
import { DIDManager } from '@veramo/did-manager';
import { CredentialPlugin } from '@veramo/credential-w3c';
import { KeyManager } from '@veramo/key-manager';
import { DIDResolverPlugin } from '@veramo/did-resolver';
import { Resolver } from 'did-resolver';
import { getResolver as ionResolver } from '@decentralized-identity/ion-did-resolver';
import { getResolver as webResolver } from 'web-did-resolver';

// エージェント作成
const agent = createAgent<IResolver & IKeyManager & IDataStore>({
  plugins: [
    new KeyManager({
      store: new KeyStore(),
      kms: {
        local: new KeyManagementSystem()
      }
    }),
    new DIDManager({
      store: new DIDStore(),
      defaultProvider: 'did:ion',
      providers: {
        'did:ion': new IonDIDProvider(),
        'did:web': new WebDIDProvider()
      }
    }),
    new DIDResolverPlugin({
      resolver: new Resolver({
        ...ionResolver(),
        ...webResolver()
      })
    }),
    new CredentialPlugin()
  ]
});

// VC発行
async function issueCredential() {
  const issuerDID = await agent.didManagerCreate({ provider: 'did:ion' });

  const credential = await agent.createVerifiableCredential({
    credential: {
      issuer: issuerDID.did,
      credentialSubject: {
        id: 'did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK',
        certification: {
          type: 'ProfessionalCertification',
          name: '情報処理安全確保支援士',
          issueDate: '2025-04-01'
        }
      }
    },
    proofFormat: 'jwt'
  });

  return credential;
}

// VC検証
async function verifyCredential(credential: string) {
  const result = await agent.verifyCredential({ credential });

  return {
    valid: result.verified,
    issuer: result.issuer,
    subject: result.credentialSubject,
    expirationDate: result.expirationDate
  };
}

Walt.id SSI Kit

// Walt.id SSI Kit(Kotlin)
import id.walt.credentials.w3c.VerifiableCredential
import id.walt.credentials.w3c.builder.W3CCredentialBuilder
import id.walt.crypto.keys.jwk.JWKKey
import id.walt.did.dids.DidService

suspend fun createAndIssueCredential() {
    // DID作成
    val issuerKey = JWKKey.generate(KeyType.Ed25519)
    val issuerDid = DidService.registerByKey("key", issuerKey)

    // VC構築
    val credential = W3CCredentialBuilder()
        .setIssuerDid(issuerDid.did)
        .setSubjectId("did:key:z6Mkh...")
        .addType("EmploymentCredential")
        .addContext("https://example.org/employment/v1")
        .setCredentialSubject(mapOf(
            "employeeId" to "EMP-2025-001",
            "position" to "Senior Software Engineer",
            "department" to "Engineering",
            "startDate" to "2025-01-15"
        ))
        .setIssuanceDate(Instant.now())
        .setExpirationDate(Instant.now().plus(365, ChronoUnit.DAYS))
        .build()

    // 署名
    val signedCredential = credential.sign(issuerKey)

    println("Issued VC: ${signedCredential.toJson()}")
}

2025年の採用状況

グローバル採用統計

地域SSI導入率主な用途
EU45%eIDAS 2.0準拠ID
北米35%企業認証・教育
アジア太平洋28%金融KYC・政府ID
日本22%実証実験段階

主要な導入事例

2025年 SSI導入事例:

1. 欧州連合 EUDI Wallet

  • 2.7億人のEU市民が対象
  • 政府発行IDのデジタル化
  • 民間サービスでの認証統一

2. カナダ BC州 OrgBook

  • 法人登記のVC化
  • B2B取引での即時検証
  • 700,000以上の組織がVC発行済み

3. ドイツ ID Wallet

  • 運転免許証のデジタル化
  • 銀行口座開設での利用
  • ヘルスケアサービス連携

4. 韓国 DID Alliance

  • 金融機関間の本人確認共有
  • 通信キャリアとの連携
  • 1,500万ユーザー突破

5. シンガポール SGFinDex

  • 金融データのSSI連携
  • 政府・民間サービス統合
  • Singpass連携

セキュリティとプライバシー

SSIのセキュリティモデル

flowchart TB
    subgraph App["アプリケーション層"]
        A1["ウォレットセキュリティ"]
        A2["生体認証・PIN"]
    end

    subgraph Protocol["プロトコル層"]
        P1["DIDComm(暗号化通信)"]
        P2["チャレンジ・レスポンス"]
    end

    subgraph Crypto["暗号層"]
        C1["ECDSA/EdDSA署名"]
        C2["BBS+(選択的開示)"]
        C3["ゼロ知識証明"]
    end

    subgraph Foundation["基盤層"]
        F1["ブロックチェーン(改ざん耐性)"]
        F2["分散型PKI"]
        F3["信頼アンカー"]
    end

    App --> Protocol --> Crypto --> Foundation

失効管理

// VC失効確認の実装例
import { StatusList2021 } from '@digitalbazaar/vc-status-list';

// 発行者:失効リスト管理
async function revokeCredential(credentialIndex: number) {
  const statusList = await StatusList2021.load({
    url: 'https://issuer.example.com/status/1'
  });

  // 特定のインデックスを失効
  statusList.setStatus(credentialIndex, true);

  // 更新された失効リストを公開
  await statusList.publish();
}

// 検証者:失効確認
async function checkRevocationStatus(credential: any): Promise<boolean> {
  const statusEntry = credential.credentialStatus;

  if (statusEntry.type === 'StatusList2021Entry') {
    const statusList = await fetch(statusEntry.statusListCredential)
      .then(r => r.json());

    const isRevoked = await StatusList2021.checkStatus({
      statusListCredential: statusList,
      index: statusEntry.statusListIndex
    });

    return !isRevoked; // trueなら有効
  }

  return true;
}

課題と今後の展望

現在の課題

SSI普及の課題:

1. 相互運用性

  • 異なるDIDメソッド間の互換性
  • ウォレット間のVC移行
  • 国境を越えた信頼確立

2. ユーザー体験

  • 秘密鍵管理の複雑さ
  • リカバリー手順の標準化
  • 一般ユーザーへの教育

3. 規制対応

  • GDPR「忘れられる権利」との整合
  • 法的効力の確立
  • 監査証跡の要件

4. スケーラビリティ

  • 大量のDID解決コスト
  • オフライン検証
  • リアルタイム失効確認

2026年以降の展望

timeline
    title SSI ロードマップ
    2026年 : EUDI Wallet 全EU展開
           : 日本でのVC実運用開始
           : グローバル信頼フレームワーク確立
    2027年 : パスポートのデジタル化
           : クロスボーダー認証の標準化
           : AIエージェントのDID認証
    2028年以降 : Web3/メタバースでの標準ID
               : IoTデバイスのDID認証
               : 完全なパスワードレス社会

まとめ

2025年、**SSI(自己主権型アイデンティティ)**は実験段階から実用段階へと移行しました。W3CによるDIDとVerifiable Credentialsの標準化、EUのeIDAS 2.0規制、そしてMicrosoft IONをはじめとする実装の成熟により、ユーザーが自身のデジタルアイデンティティを完全にコントロールする未来が現実のものとなりつつあります。

選択的開示やゼロ知識証明によるプライバシー保護、ブロックチェーンによる改ざん耐性、そして分散型アーキテクチャによるベンダーロックインの解消は、従来の中央集権型ID管理の問題を根本から解決します。

今後、パスキーとの統合、AIエージェント認証、クロスボーダー認証の実現により、SSIはデジタル社会の基盤インフラストラクチャとして不可欠な存在となるでしょう。

参考: W3C DID Core | W3C VC Data Model | Microsoft ION

この技術を体系的に学びたいですか?

未来学では東証プライム上場企業のITエンジニアが24時間サポート。月額24,800円から、退会金0円のオンラインIT塾です。

LINEで無料相談する
← 一覧に戻る