SPECIALIST

多様な専門性を持つNRIデジタル社員のコラム、インタビューやインサイトをご紹介します。

BACK

次世代のID ~自己主権型アイデンティティ(SSI)とDIDs~ 

初めまして。NRIデジタルの小松です。
NRIデジタルでは、デジタルアイデンティティに着目し、次世代のIDの在り方について調査検討活動を行っています。

本記事では、デジタルアイデンティティに関連する概念のうち、SSI(Self-Sovereign Identity)およびSSIを実現する技術手段としてのDIDs(Decentralized Identifiers)を解説します。

デジタルアイデンティティとは

そもそもデジタルアイデンティティとは何でしょうか。ISO/IEC24760-1では、アイデンティティを「実体に関連する属性情報の集合(set of attributes related to an entity)」と定義しています。したがって、デジタルアイデンティティとは、「実体に関連する属性情報の集合」をインターネットなどのデジタル空間上で表現したものと考えられます。例えば、サービスを利用する実体を識別する識別子としての「ID」、それに付随する「パスワード」や「個人の属性情報(名前、生年月日etc.)」など、それらの集合をデジタルアイデンティティと呼ぶことができます。
デジタルアイデンティティは、インターネット上でさまざまな形で利活用されています。例えば、サービスの利用時には、事前に登録した「ID」と「パスワード」を入力して、認証を行い、ログインすることが一般的です。

デジタルアイデンティティの活用が進むにつれて、それらの情報管理の重要性は高まり、さまざまなアプローチが取られてきました。当初はサービス提供企業が各々でIDを発行し、当該企業が管理するDBで、中央集権的に管理していました。しかし、複数のサービスを利用するユーザにとっては、サービスによってIDとパスワードを使い分けたり、新規登録時に毎回氏名などを入力したりするのは手間です。企業側としても、ID情報管理には、厳しいセキュリティ対策が必要のため、業務負荷になっていました。この課題を解決する技術要素として、同事業者内でのシングルサインオンや、ID連携が新たに登場し、現在では多くのサービスで実装されています。

一方で、上記のID管理方式はいずれも特定の事業者にアイデンティティ情報が集約されるため、「特定事業者への依存」「事業者のデータ管理の信頼性欠如」などの懸念が浮かび上がっています。それらを踏まえた新たなアイデンティティ管理の考え方として注目されているのが、SSIという概念です。

Tech Blog komatsu digital identity 1-1
デジタルアイデンティティ概念図(ISO/IEC 24760-1:2019を元に作成)

SSIとは

SSIはSelf-Sovereign Identity(自己主権型アイデンティティ)の略称で、2016年にSSL/TLSの専門家クリストファー・アレン氏が「The Path to Self-Sovereign Identity」という記事の中で提唱した言葉です。国や事業者などのいわゆるIdentity Provider(IdP)と呼ばれる管理主体に依存せず、サービスを利用する個人が自身でデジタルアイデンティティ情報を発行・管理する考え方です。SSIでは、自身で生成した識別子や認証のための鍵を用いてIDとそれに紐づく属性情報を個人で管理するため、以下のような特性を持っています。

1つ目が、ID情報の利用可否が特定事業者に依存しない点です。従来の技術では、もしIdPが倒産した場合、当該IDが二度と使用不可能になってしまいますが、自身でIDを管理する場合はそのリスクを避けることができます。この特性は、例えば難民の身元保証に役立つことが期待されています。医療福祉サービスの享受や銀行口座の開設には、政府が発行する公的な身分証明書が必要不可欠です。しかし何らかの理由で自国を追われた難民の人々は、避難先の国で有効な身分証明書を持っておらず、生活に困るケースが多く存在します。国に依存せず、自分で自らのアイデンティティを証明する手段を確立するSSIは、そうした国際問題の解決にもつながる可能性があると考えられています。

2つ目が、ID情報の管理権限が個人にある点です。昨今、各事業者が管理するID・パスワードなどの属性情報の漏えいが問題視されています。法的整備が進められているとはいえ、管理権限が事業者側にあるかぎり、個人の情報がどのように管理・利用されているかはブラックボックスです。しかし、SSIにおいてはID・属性情報の利用と、第三者への開示は、個人の意思で自由に制御できるようになることを目指しており、個人情報・プライバシー保護の観点での改善が見込めます。

このようなSSIの概念を実サービスに適用するにあたっては、具体的な実現方法について国内外で議論が進められており、後述する「DIDs」が実現手段の1つとして検討されています。

DIDとは

DIDはDecentralized Identityの略称で、分散型台帳技術などを用いてIDを管理することで、デジタルアイデンティティが特定のIdPへの依存度を下げることを目指す考え方です。SSIおよびDIDの思想を実現する手段として、W3C(World Wide Web Consortium)により検討されているのがDIDs(Decentralized Identifiers)という仕様です。DIDsは、ブロックチェーン等により構築された分散型システムによって実現される識別子のことを指します。DIDsは秘密鍵・公開鍵のキーペアと紐づけて管理し、秘密鍵で署名したデータを公開鍵で検証することで認証を行います。この仕様の下で、ユーザは自身の権限でこのデジタルアイデンティティの生成や更新などを行うことができます。なお、以降、本記事で仕組みや概要を解説する際にDIDという言葉を識別子(分散Identifier)という意味で記載します。

下の図は、W3Cが提唱するDIDのアーキテクチャの概念図です。DIDは、DIDに関連するデータを保持したDID Documentと一対一に紐づき、DIDを解決することでDID Documentが得られる仕組みとなっています。DID Documentには、DID自身やDIDに紐づく公開鍵の情報など、DIDに関連するデータモデルが記載されており、DIDを使った認証や検証を行うために必要不可欠です。

Tech Blog shima digitar identity 1-2
W3Cが提唱するDIDのアーキテクチャの概念図
https://www.w3.org/TR/did-core/#architecture-overview

各コンポーネントは以下のような役割を担っています。

DID Subject
 DIDの所有者を表す。
DID Controller
 DID Documentの内容の更新・削除などの管理権限を持つ主体。多くの場合はDID Subjectと同一。
DID URL
 DIDに、パスやクエリパラメータ、フラグメントを追加したもので、DID Document内の特定の情報(公開鍵等)を指し示すために使われる。
Verifiable Data Registry
 DIDとDID Documentが保存される、分散型台帳やブロックチェーンなどのレジストリ。

DIDは下図のように、スキーマ・DIDメソッド名・DIDメソッド固有の識別子からなる文字列で構成されています。

Tech Blog komatsu digital identity 1-3b
DIDの一例
https://www.w3.org/TR/did-core/#a-simple-example

DIDの文字列はDID Syntax ABNF Rulesに則った形式を取るようW3C の文書で定められており、接頭辞「did:」で始まります。DIDメソッドとは、DIDがどのように実装されるかを定義したものであり、DIDの生成方法やDID登録先のレジストリなどが定められています。開発者は、W3Cで定められた要件に基づいて独自にDIDメソッドを開発できるため、現在数多くのDIDメソッドが存在します。代表的なものには、レジストリとしてBitcoinブロックチェーンを使用するdid:ionや、Ethereumブロックチェーンを使用するdid:ethrがあります。識別子は各メソッド内で一意な値が発行されますが、発行されるプロセスはメソッドごとに様々です。

DIDのレジストリとしてブロックチェーンを用いる場合、ブロックチェーンの「書き込まれたIDは他の誰かが更新することも、削除することもできない」という性質により、中央集権的な機関の管理から逃れて、ユーザ自身でIDの生成・更新・削除できることが担保されます。このような特性から、DIDがSSIの考え方の実現する手段の1つと考えられています。なお、すべてのDIDがブロックチェーンをレジストリとして使用しているわけではありません。例えばdid:keyは、キーペアの公開鍵をbase58-btcでエンコードした値を識別子として持つバックエンドレスなdidメソッドとして知られています。

DID登録の仕組み

本記事ではDIDの理解を深めるための一例として、実際にDIDがレジストリに登録される仕組みについて解説します。DID登録のアークテクチャは複数ありますが、その中から「Client-managed Secret Mode」について紹介します。下の図はDIF(Decentralized Identity Foundation、DIDの標準化団体の1つ)が提示するClient-managed Secret Modeの概念図です。

Tech Blog komatsu digital identity 1-4b
DIFが提示するDID登録の仕組みの一例(Client-managed Secret Mode)
https://identity.foundation/did-registration/#client-managed-secret-mode

➊ キーペアの生成
まず、ユーザが公開鍵・秘密鍵のキーペアを生成し、ウォレットに保存します。キーペアの生成はウォレット内部で行われる場合もあります。ウォレットとは、DIDおよび関連する秘密鍵やその他の機密性の高い暗号鍵情報を安全に保管することができるソフトウェアまたはハードウェア端末のことです。

➋ DIDの生成
ここでは、DIDが生成されます。DIDを構成する識別子は、公開鍵からの計算などの方法で作成されます。この段階では、DIDはまだレジストリ上に紐づけられていません。

➌ DIDをレジストリに書き込む準備
DID registrarはDIDの生成や更新を担うコンポーネントで、これらを実行する関数を実装したソフトウェアやハードウェアを指します。ここでは、登録リクエストをレジストリに送るために必要なファイルの作成など、DID登録に必要な準備が行われます。例えば、DIDおよびDID Documentの内容を記載したJSON形式のデータを生成します。

➍ ➎ ➏ 書き込み内容の署名
ここでは、DID Registrarがウォレットに対してデジタル署名を求めます。例えば、ウォレットが、DID Registrarから受け取ったJSONに含まれるDIDやDID Documentの情報を確認して署名することで、これらの情報の真正性が担保されます。

➐ レジストリへのDID書き込み
最後に、DID Registrarが署名されたファイルを使ってレジストリへの書き込みを行い、DIDがレジストリに登録されます。

あくまで一例ですが、以上のような仕組みで、DIDが生成・登録されます。

本記事ではSSIの考え方およびDIDsの仕組みについて解説しました。最近では、SSIの思想を実現する別の手段であるVCs(Verifiable Credentials)を使って、デジタル学生証などの実証実験も行われています。

次回は、VCsおよび、VCsをどのようにサービスに適用していくのかご紹介します。

 
 
出典元
ISO/IEC 24760-1:2019 IT Security and Privacy — A framework for identity management — Part 1: Terminology and concepts

参考資料