Blog

2020.01.31

Self-Sovereign Identityとは何か

こんにちは、プログラマの梶原です。

1月27日に開催されましたOpenID Foundation JapanのSelf-Sovereign Identity Dayに参加して来ました。本記事では、Self-Sovereign Identityの世界観とそれを実現する技術について概説します。

Self-Sovereign Identity(SSI)とは何か

Self-Sovereign Identityは日本語では「自己主権型アイデンティティ」と訳され、その名前の指すとおり、デジタルアイデンティティの管理を自らの手に取り戻すことを目指した動き(思想・概念)を指します。これは現代のデジタルアイデンティティが中央集権的な管理方式を取っていることと対をなす概念で、中央集権的なID管理による諸問題を解決するために近年注目されはじめています。

デジタルアイデンティティは多くの場合において巨大企業あるいは政府の運営するID基盤によって提供されています。このような大規模なID基盤は多くのセキュリティエンジニアの手によって安全性を保つ努力がなされていますが、個人情報が一箇所に集中することには様々な問題があります。近年報じられることの多いデータ流出もそのリスクの一つですが、データ流出に対する安全性が保たれていても個人情報が目的外の用途で利用されることもあります1

また、デジタルアイデンティティの管理を中央集権的なプロバイダに任せることによって、デジタルアイデンティティのライフサイクルを自分で管理できなくなる、という問題も生じます。デジタルアイデンティティを提供するプロバイダも私企業なので、所属する国の法律、あるいは自身のポリシーによってアイデンティティの提供に縛りが生じるため、ポリシーの変更によってユーザーは突然自らのアイデンティティへのアクセスを失うことがありえます2

Self-Sovereign Identityは、このような問題を克服するため、自らのデジタルアイデンティティの提供範囲と有効期限の制御を可能にすることを目指します。

Multi-Source IdentityとSSI

中央集権的なID管理においては、アイデンティティ情報は単一の発生源からのみ提供されます。これは現実世界において個人のアイデンティティは多様なソースからの情報によって支えられていることと大きく異なります。例として、私は私のアイデンティティを示す証明書としてマイナンバーカードと運転免許証と学位の証明書を持っていますが、それぞれ果たす役割が異なることに加え、それぞれ発行主体が異なります。これに対して、複数のプロバイダから別々のクレデンシャル3を取得して利用できる仕組みのことをMulti-Source Identityと呼ぶ場合があります。

Multi-Source Identityを支える仕組みとして、Verifiable Credentials Data Modelという仕組みがあります。クレデンシャルの発行主体(Issuer)と被発行者(Owner/Holder)と検証者(Verifier)がいて、被発行者は発行されたVerifiable Credentialの証明(proof)を提示することで発行されたクレデンシャルを利用でき、検証者はその証明の検証を行うことでそのクレデンシャルの正当性を検証できる、という仕組みです。

現実世界の例でいうと、免許証がVerifiable Credentialに相当し、免許証を発行する公安委員会がIssuerに相当します。警察官に免許証を提示するシナリオでは、運転者であるOwner/HolderはVerifierである警察官にProof4を提示し、警察官はこのProofが正しいことを検証することで、適切な免許を所持しているということを確認できます。警察官は公安委員会を免許証の発行者として信頼しているのでこのProofを受け入れることができます。

Self-Sovereign Identityでは誰もが自分自身の属性情報を提示できるようになるため、その属性情報を第三者が検証可能にすることではじめて客観的な信頼を得ることができます。そのため、Self-Sovereign IdentityはMulti-Source Identityを実現しているといえます。一方でMulti-Source IdentityがSelf-Sovereign Identityであるためには、主体が情報の制御を持っているという状態(すなわち自らの情報に対する主権を持っている状態)が必要であるといえます。

Distributed Identifiers(DID)

Self-Sovereign Identity、またそれの構成要素であるVerifiable Credentialsを実現する要素としてDistributed Identifiers(DID)が挙げられることがあります。DIDとはその名の通り分散的に管理される識別子を実現する仕組みのことで、分散台帳あるいは分散データベースを利用する5ことで中央集権的なIDレジストリを使うことなくある内容に対応する識別子を得ることができます。

Self-Issued OpenID Provider(Self-Issued OP, SIOP)とSSI

今回の会合で取り上げられた話題として、Self-Issued OpenID Provider(Self-Issued OP, SIOP)というOpenID Connectで定義されている機能を使ってSelf-Sovereign Identityを実現する、というトピックがありました。

Self-Issued OPを使うと、自分自身がOpenID Providerになることができます。具体的には、鍵ペアの生成・保存を端末が行い、それを用いてID Tokenを発行し端末が保持している情報を署名付きでやりとりすることができる仕組みがSelf-Issued OPです。自分自身がOpenID Providerになれるので、このOpenID Provider上のアイデンティティのライフサイクルは必然的に自分で管理できるようになります。また、この機能を用いて通常のOpenID Providerと同様に自分自身に関するclaims6を返すことができるようになると、SSIで実現されるべき「自分自身の属性情報の部分的提供」が実現できるようになります7

おわりに

Self-Sovereign Identityは既存のID基盤の抱える多くの問題を解決するとされている一方、その定義や実現方法にはまだ未確定の部分が多いといえるでしょう。

今回の会合の議事録は近く公開される見通しです。その際に続報をお伝えできればと思います。


【宣伝】レピダムはOpenID Foundation Japan会員企業として、セキュアな認証認可技術の普及と標準化を推進しております。また、その知見を生かした開発やコンサルティングも行っております。


  1. 例として、Cambridge Analytica社がFacebookユーザーの個人情報を選挙キャンペーンなどの政治目的に目的外利用していた事件がよく知られています 

  2. 例として、GitHubがアメリカの輸出関連の法律に基づいてイラン・シリア・クリミアのユーザーをブロックしていた、という事例が知られています 

  3. 一般語としては「資格証明書」ですが、ここでは証明可能な個人の属性情報の意味で用いています。また、ここでの用法はWebシステムで用いられる”login credential”(ログインのための資格情報)のことではありません 

  4. ProofとはVerifiable Credentialを所持していることを暗号学的に証明する値ですが、現実世界ではこれに対応する概念がないので、現実世界においては免許証そのものを提示することで証明(proof)としています 

  5. 分散台帳を利用するためにブロックチェーンとの関連が語られがちな技術ですが、分散データベースであれば必ずしもブロックチェーンである必要はありません 

  6. OpenID ConnectにおけるclaimsとはID Tokenで表現されている主体に対する属性情報のことです 

  7. 仕様上は、Self-Issued OpenID Provider Requestのclaims指定はOPTIONALで、Self-Issued OpenID Provider Responseではここで指定したすべてのclaimsはID Token中で返されることになっています。claimsパラメータのサポートはOpenID Connect Core 5.5章によると任意なので、SIOPがclaimの応答をすることは必須ではありません