Internet Identity: ユーザー名とパスワードの終焉(日本語訳)

tokuryoo
DfinityJP
Published in
13 min readJan 12, 2022

Medium の DFINITY 公式の記事 Internet Identity: The End of Usernames and Passwords (2021/5/21) の日本語訳です。

Internet Identity ブロックチェーン認証システムは、Internet Computer 上のDappsに匿名かつセキュアにサインインすることを可能にします。

Internet Computer は、世界初の真にインターネット規模のパブリックブロックチェーンです。他のブロックチェーンとは異なり、あらゆる量のデータを処理し、保存することができます。また、従来よりもはるかに高い効率でウェブスピードで実行されるスマートコントラクト(ブロックチェーンソフトウェアロジック)をホストしています。これにより、インタラクティブなウェブコンテンツをエンドユーザーに直接提供できるようになり、クラウドサービスのようなレガシー技術に依存することなく、幅広いシステムとサービスをdappsという形でブロックチェーン上に完全に構築することが可能になります。ついに、ハイパースケールなトークン化されたソーシャルメディアでさえも、パブリックブロックチェーン上で完全に構築・運用することが可能になったのです。

Internet Computer の目的は、インターネットを拡張することであり、ほぼすべてのシステムやサービスが、レガシー技術やそのサービスによって増強することなく、Internet Computer のみですべてのデータを処理・保存し、サイバースペースでホストされるスマートコントラクトを利用したセキュアなDappsとして再構築することを可能にします。これにより、ほぼすべてのシステムとサービスが最終的にパブリックブロックチェーンのみで稼働する ”ブロックチェーンシンギュラリティ” が推進されることになります。

従来のウェブにおけるパスワード認証のようなセキュリティ上の問題を回避するため、Internet Computer ブロックチェーンでは、新しい暗号認証システムを導入しています。Internet Identity と呼ばれるこの新システムは、ウェブ上のブロックチェーンへの認証に使用される既存のシステムとは対照的に、非常に使いやすいものとなっています。

基本的には、それはエンドユーザーが自分のデバイスを使ってブロックチェーン上のDappsで認証できるようにするもので、Internet Computer で使われている ”チェインキー” 暗号 で実現されています。エンドユーザーのデバイスは、YubiKeyのような従来のHSMデバイス または ノートパソコンやスマホのようなTPMチップを搭載したモバイルデバイスでも構いません。例えば、ノートPCの指紋センサー または 携帯電話のFaceIDを使って、Internet Computer 上で動作するDappsを認証している人は、すでに何千人もいます。いずれも、デバイス内のセキュアチップ内で公開鍵暗号を安全に適用しているにもかかわらず、ユーザー自身が鍵の素材に触れることなく、シームレスで抵抗の低い体験を実現しており、素晴らしいユーザビリティが提供されています。

Internet Identityは、WebAuthnと呼ばれるWeb標準をサポートし、より多くのデバイスと互換性を持つように常に改良されています。古いデバイスを使用していて、ブラウザが Internet Identity と連動する方法(例えば指紋センサーを使用して認証できるように)で標準をサポートしていない場合、YubiKey などの HSM デバイスで補強できます。これも便利です。例えば、NFCをサポートするYubiKeyを購入すると、キーをタップするだけで、例えば携帯電話からサインインできます。幸いなことに、コンシューマー向けデバイスには、このような認証機能がデフォルトで搭載されるようになってきています。

Internet Identity は、ブロックチェーン上のDappsに対して、ユーザーがデバイスを介してセキュアに認証できるようにするものであり、画期的なものです。

Internet Identity 認証コンフィギュレータは、https://identity.ic0.app/(このページは Internet Computer ブロックチェーンから直接来ています)で直接試すことができます。

これにより、II(アイアイと発音する)と呼ばれる ID(Identity) を作成することができます。各 ID には “Identity Anchor” があり、これを記憶することで再接続することができます(Identity Anchor は意図的に短くなっています)。このアンカーは II を解除するシークレットではありませんが、共有してはいけません。

II はいくつでも作ることができます。例えば、ブロックチェーンソーシャルメディアの Dapps 用の II、DeFi 用の II、ステーキング用の II、を作るといった具合です。各 II には、任意の数のデバイスを追加することができます。例えば、ソーシャルメディアを利用するための II を作る場合、ノートPCの指紋センサー、スマホのFace ID、バックアップ用のYubiKey(ノートPCとスマホを紛失しても、II に再接続して古いデバイスを削除し、新しいデバイスを追加できます)を1~2個追加します。

ブロックチェーン上の Dapp またはサービスに対して認証を行う際、電話番号ではなく専用の匿名のIDを確認するため、Dappやサービス間で追跡されることはなく、匿名性が保たれます。

下記が可能な世界を想像してください。

  1. 電子メール、ユーザー名、パスワードを必要とせず、デバイスだけでセキュアにオンラインで認証できます。
  2. インターネットサービスにログインしても、追跡されることはなく、テック企業に情報を収集されることもありません。
  3. 今日利用されているどのような認証システムよりも高い利便性であなた自身を認証することができます。

Internet Identity の仕組み

Internet Identity は WebAuthn プロトコルを基に構築され、セキュアな暗号認証を利用しており、ユーザー認証に以下の 3 つのオプションを提供しています。

  1. スマートフォンまたはノートパソコンに内蔵されている生体認証手段(例: Face ID、Touch ID、指紋認証)。
  2. ユーザーが通常パソコンや携帯電話のロックを解除するために使用するパスワード または PIN。
  3. パソコンのUSBポートに差し込んだセキュリティキー(例: YubiKey)。

ブロックチェーンウェブアドレス https://identity.ic0.app のインタラクティブなウェブコンテンツを通じて Internet Identity を初めて作成すると、あなたのデバイス上のセキュリティチップがユニークな暗号鍵を生成し、その公開鍵はあなた用に生成された Identity Anchor とともに Internet Computer に保存されます。Identity Anchor は、あなたが使用したいさまざまなデバイスで II に再接続することができる包括的なIDです。II に関連付けられた Identity Anchor を使用して新しいデバイスを登録できるので、あなたのすべてのデバイスでシームレスにアプリケーションを使用することができます。

あなたが使用する各 II に関連する Identity Anchor を注意して記録してください。Identity Anchor を失うと、デバイスの管理 または アプリケーションへのアクセスに Internet Identity を使用できなくなります。さらに、冗長性のために、同じ Identity Anchor の下に複数の認証デバイスを追加することは重要です。

Identity Anchorの大きな利点の1つは、セキュリティに敏感でないことです。これはどの PIID とも関連付けられないため、誰かが Identity Anchor を知ることは問題ではありません。(前述の懸念はあるが)。

Internet Identityの詳細な使用手順については、下記をご参照ください。

Internet Identityを使って、ユーザーはどのようにDappsと接するか?

ユーザーがあるキャニスタースマートコントラクトのフロントエンドを最初にロードしたとき(例えば、Dapp または トークン化されたガバナンスシステムによって自律的に制御される ”オープンインターネットサービス” を使用するとき)、そのフロントエンドには、すでに多くの人に知られているシングルサインオン(SSO)サービスと同様に、ユーザー自身を認証するためのボタンが表示されます。

ユーザーがボタンをクリックすると、ブラウザで Internet Identity のポップアップが表示されます。Internet Identity により、ユーザーは 鍵と ID を管理できます。

Internet Identity を利用して、ユーザーは自分で選んだデバイス・選んだ方法で認証を行い、アプリへのアクセスにおいて認証します。その後、ブラウザはキャニスターのスマートコントラクトのフロントエンドにリダイレクトされ、ユーザーの選択した II の下でキャニスターにアクセスすることができます。(このメカニズムは、セッションキーと委任メカニズムを使用しています。キャニスターフロントエンドは、セッションキーペアを生成し、公開鍵を Internet Identity へ転送します。ユーザが確認すると、Internet Identity は委任を生成し、それをキャニスターフロントエンドに返します)。

すでに説明した3つの方法のいずれかを使ってブラウザで本人確認を行うと、登録の確認画面が表示されます。あなたのデバイスを登録するには、Identity Anchor を作成します。この Identity Anchor はユニークですが、秘密ではないので、複数の場所に保存すべきです。あなたのブラウザは、あなたが使用した II の Identity Anchor を記憶していますが、別のコンピュータでログインするとき、または ブラウザの状態をクリアしたときに必要になります。繰り返しになりますが、Identity Anchor を失い、すべてのデバイスでログアウトしてしまうと、紐付いている II を使用できなくなります。

シングルサインオンによるサインインとは対照的に、identityプロバイダーにおける全ての認証フローはユーザー側で行われるため、プライベートなユーザーの行動が露見することは非常に少なく、大手テック企業による追跡のリスクはより低くなります。

特に、Internet Identity は、ユーザーがログインするキャニスターフロントエンドごとに異なる匿名のIDを与え、追跡されるのを防ぐことで、匿名性とプライバシーを強化します。

思考実験として、もし Internet Identity が、ログインするキャニスターフロントエンド ごとに異なるIDをユーザーに与えない場合、Internet Identity が、ユーザーの単一のプリンシパルで、すべてのフロントエンドにログインさせることになります。そのユーザーが無関係のサービス(たとえば、ソーシャル・メディア・ネットワー クとeコマース・サイト)とやり取りする場合、これらの無関係な企業は、これらのサイト におけるユーザーの行動を相関させることができます。そして最悪の場合、ソーシャルメディアネットワークのフロントエンドが、今度は悪意を持ってEコマースサイトのキャニスターを呼び出し、ユーザーを装って注文をすることも可能になってしまいます。

このため、Internet Identity は、ユーザーが特定の II を使用してやり取りするすべてのDappsとサービスに対して、異なる匿名のID(identity)を提供します。

認証の改善

Internet Identity は、認証システムを利用する分散型アプリケーション(dapps)にアクセスする際に、セキュアかつ匿名で認証を行うことを可能にします。

一般的な認証サービスとは異なり、Internet Identity では、パスワードの管理、暗号化されたセキュアなシードフレーズの生成、アプリケーションまたはサービスへの個人識別情報の提供は必要ありません。本質的には、舞台裏では、チェインキー暗号は II と関連付ける各デバイスを認証するために使用されます。これにより、スマートフォンの顔認証、コンピューターのロック解除パスワード、セキュリティキー など、あなたが選んだ認証方法を利用することができます。

https://identity.ic0.app で試してみてください。デバイスを登録するためのステップバイステップガイドは、ドキュメントを参照してください
_____

Internet Computer を支える技術の詳細については、今後のリリースにご期待ください。

sdk.dfinity.orgでビルドを開始し、forum.dfinity.orgで開発者コミュニティに参加しましょう。

--

--