はじめに
第1章 デジタルアイデンティティの歴史
第2章 Self-Sovereign Identityとは
第3章 ユースケース ― 学位証明
第4章 Self-Sovereign Identityのコアコンポーネント
第5章 デモ
第6章 プロセス解説
第7章 Aries Protocol
終わりに
本書は、Identity旅団の技術書典9で配布する技術同人誌です。
Identity旅団は、最先端なIdentity情報についての解説やデモを通した普及、およびコミュニティの活性化を目的としています。
デジタルアイデンティティには、問題が山積みです。煩雑なパスワード管理、アカウント登録の度に繰り返される氏名や住所の入力、大規模なデータ漏洩、悪意ある第三者による不正ログイン、データの目的外利用、IDプロバイダによる理不尽なアカウント停止など、挙げればキリがありません。こうした問題を解決するために、いま世界的に注目されている、ひとつのパラダイムがあります。それが、Self-Sovereign Identity (自己主権アイデンティティ、SSI)です。
Self-Sovereign Identityは、自らのアイデンティティを、中央集権的な存在を介さずに、自分自身で管理しコントロールすることを目指します。
本書は、日本ではまだまだ情報源の少ないSelf-Sovereign Identityをテーマにした(おそらく日本で初めての)技術同人誌です。前半では、Self-Sovereign Identityがどのような背景で生まれ、どのような問題を解決しているのかを解説しています。後半では、Hyperledger Indy, Ariesの学歴証明デモアプリケーションを使って、手を動かしながらSelf-Sovereign Identityを学びます。
・アイデンティティ技術に興味がある人
・Self-Sovereign Identityと聞いてもピンとこない人
・これからSelf-Sovereign Identityの動向を追いかけようと思っている人
・なぜブロックチェーンを使うのかよくわかっていない人
・DIDやVerifiable Credentialなどのプロトコルを調べ始めたけど挫折してしまった人
・手を動かしながらSelf-Sovereign Identityを学びたい人
・実際のユースケースを題材にして理解を深めたい人
本書に関するお問い合わせ:@ken5scal (Twitter)
本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。
Self-Sovereign Identityという新しいパラダイムを理解するためには、これまでのデジタルアイデンティティにおける課題と進歩を理解すべきです。デジタルアイデンティティは、大きく5つの段階を経て、変遷してきました。それぞれのモデルを図とともに解説します。
Isolated Identity (分離されたアイデンティティ)
サービスプロバイダがユーザーのIDを管理する
Centralized Identity (中央集権化されたアイデンティティ)
IDプロバイダがユーザーのIDを管理し、サービスプロバイダと共有する
Federated Identity (連合化されたアイデンティティ)
IDプロバイダがユーザーのIDを管理し、サービスプロバイダが管理するユーザーのIDとリンクする
User-Centric Identity (ユーザー中心アイデンティティ)
ユーザーが自身のIDを管理し、サービスプロバイダと共有する。または、IDプロバイダがユーザーのIDを管理し、ユーザーの同意のもと、サービスプロバイダとデータを共有する
Self-Sovereign Identity (自己主権アイデンティティ)
ユーザーが自身のIDを管理し、サービスプロバイダと共有する
Isolated Identityは、最もシンプルなモデルです。インターネットの初期段階から存在していますが、現在でも多くのサービスで使われています。
ユーザーはそれぞれのサービスにアカウントを登録し、それぞれのIDとパスワードを用いてログインします。登録されたアカウント(アイデンティティ)は、各々のサービスプロバイダが個別に管理しているため、サービス間のアイデンティティは完全に分離されています。
このモデルの大きな欠点は、ユーザーが膨大な数のIDとパスワードの組み合わせを覚える必要があるという点です。一人のユーザーが何十ものサービスを利用している昨今では、すべてのIDとパスワードを管理するコストは高く、現実的ではありません。結果的に、同じIDとパスワードが使い回され、セキュリティ上の脆弱さとなってしまいます。
Centralized Identityでは、中央集権的にID管理を行うIDプロパイダが加わります。ユーザーはIDとパスワードの組み合わせをサービスごとに覚える必要はなく、同じIDとパスワードで、各サービスにログインすることができます。この技術は、シングルサインオンとも呼ばれています。
ユーザーの使い勝手は向上しましたが、同時にIDとパスワードの漏洩が、全サービスへの不正ログインに発展するリスクも生まれます。一方、可用性にも問題が残ります。ユーザーやサービスプロバイダ、IDプロバイダが同一ネットワーク上に存在することを前提としているため、大多数のユーザーやサービスには適していません。
Federated Identityは、Centralized Identityとよく似ているモデルです。同じようにIDプロバイダが存在しますが、サービスプロバイダでもID管理を行い、ID同士を相互リンクする点が異なります。
たとえば、ユーザーはFacebookのアカウントを用いて、サービスのアカウントにログインしたいとします。サービスプロバイダは、ユーザーのIDとログインに使用するFacebookアカウントを事前にリンクさせておきます。ユーザーがFacebookアカウントでログインすると、サービスプロバイダはFacebookアカウントにリンクしているユーザーのIDを取得し、サービスを提供します。
ユーザーがFacebookを退会したくなったときはどうでしょうか。Centralized Identityでは、IDプロバイダとサービスプロバイダは密に結合しており、別のIDプロバイダにユーザーのIDを移動させることはできませんでした。一方、Federated Identityでは、SAMLやOpenID Connectのような共通の技術標準で実装していれば、ユーザーは別のIDプロバイダを選択することができます。FacebookでなくTwitterのアカウントを使用してログインしたくなったら、Twitterアカウントをサービスのアカウントにリンクさせ、Facebookアカウントのリンクを外せばよいのです。このように、ユーザーは複数のIDプロバイダ間で自身のIDを移動できるようになり、IDに可搬性がもたらされました。
しかし、Centralized Identityと変わらず、ユーザーのIDをIDプロバイダが管理しています。そのため、IDプロバイダからパスワードが漏洩すると、他のサービスへの不正ログインが可能になる問題は残ったままです。また、IDプロバイダを信頼して、自身のIDを預ける点も変わりません。その信頼を裏切り、IDプロバイダが無断でユーザーのデータを売買したり、利用規約の変更により多数のアカウントを停止したり、といった問題が発生しています。
多数のユーザーを抱えるIDプロバイダであればあるほど、攻撃の標的になりやすく、被害も甚大になるため、非常に高いセキュリティが求められます。