Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Verifiable Credentials と Decentralized Identifi...

KeitaUenishi
April 10, 2024
150

Verifiable Credentials と Decentralized Identifiers についての”超”概要

KeitaUenishi

April 10, 2024
Tweet

Transcript

  1. 自己紹介 うえにし (Xアカウント → @uk092908) ・2021年5月からエンジニア ・主に扱っている技術 (TypeScript, React, Next.js)

    ・最近転職して、5月から受託開発企業でフロントエンド (フル スタック?) エンジニア ・最近ムエタイジムに通い始めました ・元バンドマン (ギター) ・お酒好き
  2. 本日のネタ 以前の現場で関わったデジタルアイデンティティ関連の技術について、概要を解 説してみる (“超” 概要です) ・自己主権型アイデンティティ (Self Sovereign Identity -

    SSI) SSI を実現するための技術的要素 ・分散型識別子 (Decentralized Identifiers - DID) ・検証可能な資格情報 (Verifiable Credentials - VC)
  3. デジタルアイデンティティとは? 人間などの主体(entity/subject)をコンピュータで処理するためのアイデンティティ情報であり、そ れぞれの属性情報から成る。 ISO/IEC 24760-1は、アイデンティティを「実体に関する属性情報の集合( set of attributes related to

    an entity)」と定義している 参照 “デジタルアイデンティティ” https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%82%A2%E3%82%A4%E3%83 %87%E3%83%B3%E3%83%86%E3%82%A3%E3%83%86%E3%82%A3
  4. 分散型識別子 (DID - Decentralized Identifier) とは? ・特定の事業者に依存しない識別子 (Identifier) DIDは3つの部分からなる単純なテキスト文字列である。 1)

    DID URIスキーム識別子、2) DIDメソッドの識別子、3) DIDメソッド固有の識別子。 出典 https://www.w3.org/TR/did-core/
  5. 分散型識別子 (DID - Decentralized Identifier) とは? DIDとDID Document  DID Documentとは、DIDで示される主体(エンティティ

    / サブジェクト) を表現するのに必要なデータ  公開鍵や特定のブロックチェーン情報が記載される 出典 https://www.w3.org/TR/did-core/
  6. DID Documentのサンプル { "@context": "https://www.w3.org/ns/did/v1", "id": "did:example:123456789abcdefghi", "authentication": [{ //

    used to authenticate as did:...fghi "id": "did:example:123456789abcdefghi#keys-1", "type": "RsaVerificationKey2018", "controller": "did:example:123456789abcdefghi", "publicKeyPem": "-----BEGIN PUBLIC KEY...END PUBLIC KEY-----\r\n" }], "service": [{ // used to retrieve Verifiable Credentials associated with the DID "id":"did:example:123456789abcdefghi#vcs", "type": "VerifiableCredentialService", "serviceEndpoint": "https://example.com/vc/" }] }
  7. 分散型識別子 (DID - Decentralized Identifier) とは? DIDメソッドについて did:example:123456abcderf…. の、example にあたる部分

    did:web, did:ion, did:ethr などいろいろと乱立しており 2024年1月時点で186個もメソッドが登録されているそう (https://idmlab.eidentity.jp/2024/01/didwebdidwebs.html)。後に続く識別子はメソッドに依存しているため、 DIDメソッドを超えて識別子 を引っ越しすることはできない。 「分散型」と言いつつも、メソッド did:web の場合は did:web:xxx.com のような形となり (xxx.comはドメイン名) 厳密には分散型ではな い。この場合はDID Documentは “https://xxx.com/.well-known/did.json” に配置される。
  8. 分散型識別子 (DID - Decentralized Identifier) とは? DIDまとめ ものすごーいざっくりいうと、 ・DIDに紐づく公開鍵情報などの情報を含む DID

    Documentを “分散台帳等” で保持し、アクセス可能にする仕組み ・DID ≒ 特定企業やサービスの運営体に依存しない ID (識別子) の発行管理方法 ・特定企業 〜 サービスを超えてID (識別子) を活用することが可能 ・ID管理はDIDメソッドに依存する。異なる DIDメソッドの行き来はできない ・DIDに紐づく秘密鍵で署名したデータを DID Document上の公開鍵を用いて検証することで、 DIDの「持ち主」が発行したデータであることを検証できる (後述のVerifiable Credentialはこの仕組みを利用 )
  9. 検証可能な資格情報 (VC) とは? ・Verifiable (検証可能) な Credential (資格情報) ・W3C (World

    Wide Web Consortium) で提唱されているデジタル資格情報の標準 仕様 ・実態は電子署名が施されたJSON形式のドキュメント ・デジタル上で証明書をユーザーが保持し、個人の情報を提供することができるよう にするためのもの
  10. 検証可能な資格情報 (VC) とは? 登場人物 発行者 (Issuer) 行政や企業、教育機関など 保有者 (Holder) 資格情報を保持する人

    検証者 (Verifier) 資格情報が正しいかを検証す るところ (アプリケーションなど)
  11. 検証可能な資格情報 (VC) とは? 検証の流れ 発行者 (Issuer) 保有者 (Holder) 検証者 (Verifier)

    Verifiable Data Registry (分散台帳など) Issuerの秘密鍵で 署名されたVCが発 行される Issuerの秘密鍵に 紐づいたDID/公開 鍵が登録される Holderの秘密鍵に 紐づいたDID/公開 鍵が登録される 要求されている Credentialを提出 Credentialに含まれ るIssuer & Holderの 情報 (DID) から、公 開鍵情報を取得 取得した公開鍵で 検証を行う Holderが保有す るWallet等にVC を保存
  12. 検証可能な資格情報 (VC) とは? 実際のユースケース ・デジタル庁 ・ワクチン証明書 ( DIDを用いていないVerifiable Credential) ・good

    digital awardの賞状 ・慶応義塾大学 ・2020年より在学証明書や卒業見込み証明書などをデジタル化する実証    実験を開始
  13. VC × DID 運用の課題 ・秘密鍵管理のハードル → ユーザーが保有する = どこかで秘密鍵の管理が必要 ・Cold

    Wallet や Hot Walletなど…どう管理するか ・DIDメソッドの選択 → 大量のDIDメソッドが乱立しているため、用途に合わせた選定の難しさ
  14. まとめのようなもの ・技術基盤としては公開鍵暗号方式での検証であり、DID / VC そのものには技術的 な新しいものはない ・在り方、仕組みとして新しいものであり、今後いろいろと拡張や整備されていきそう ・Verifiable Credentialsを実際に発行してみたい! という方は

    “Microsoft Entra Verified ID” というサービスから発行することができます ・デジタルアイデンティティの証明について「どこに責任を置くか」という観点で見ると 答えはなく、面白いところでもある