ブロックチェーンでのWeb認証メカニズムの作成

私たちは便利な時代に生きており、簡単なタスクを完了するのにかかる時間を短縮できるものはすべて、両手を広げて受け入れられています.

オンラインの世界で最も関連性の高い例の1つは、ユーザー認証の領域です。以前は、ユーザーIDとパスワードのコレクションを保持する必要がありましたが、Facebook、Google、およびその他のさまざまなサービスからすばやく簡単にログインできるようになりました。.

しかし、これは賢明であり、より良い選択肢があります?

この投稿では、ユーザー認証の現在の状態と、ブロックチェーンテクノロジーによって現在利用可能ないくつかの興味深い代替案を見ていきます。.

ステータスクォーの問題

Webサイトでユーザーの制限領域を開発する場合は、ユーザーの識別、認証、および承認の独自のシステムを開発するか、既製のソリューションを使用するかを選択する必要があります。.

この既製のソリューションは、ユーザーがすでに何らかのプラットフォーム(Facebook、Yahoo、Google、Outlook、または単なる電子メール)でアカウントを持っていることを前提としています。この場合、適切なメカニズムを使用するだけです(ほとんどの場合、 OAuth2.0プロトコル)外部ユーザーIDを使用してサイトにログインしようとする人が同じユーザーであることを確認する.

ソーシャルログインオプション

多数のソーシャルアカウントログインオプション。ソース: NPM

このオプションは実装が簡単ですが、ユーザーにはリスクがあります。彼のメインアカウントに何かが起こった場合(たとえば、Facebookが理由もなくアカウントをブロックした場合)、彼はあなたのサイトの彼の情報にもアクセスできなくなります.

さらに、ユーザーとしてまだ信頼できないサイトにログインしたい場合、このサイトに自分の個人情報へのアクセスを許可する必要があります。これには、私の名前、電子メール、年齢などの個人情報が含まれます。サイトが外部アカウントでのログインのみをサポートしている場合、私は確かに非常に難しい選択に直面します.

サイトの使用を拒否するか、プライバシーを犠牲にします.

ほとんどのユーザーは通常、プライバシーと匿名性を犠牲にして、「悪いことは何も起こらない、隠すことは何もない」と考えてしまいます。残念ながら、金銭的損失に終わる準備の整っていないユーザーを標的とした攻撃の大部分は、次のような言葉で始まります。

「このSMSコードを銀行の従業員に送信するとどうなりますか?」または「これらのリクエストヘッダーをテクニカルサポートの従業員に送信するのは本当に悪いことですか?」

通常、手遅れになったときにそのような質問への答えを学びます.

イーサリアムがどのように役立つか

3つの主な問題があることはすでに理解しています。

  • ユーザーは、アクセスしたWebサイトを信頼する義務はなく、個人情報の漏洩を避けたいと考えています。
  • このサイトは、外部認証システムを使用して、ユーザーデータとそれに関連するセキュリティ費用の保存を回避したいと考えています。
  • ユーザーを認証する機能をサイトに提供する既存の外部システムには、検閲の危険性があります。アカウントは、理由を説明せずに、また多くの場合、回復の可能性なしに、いつでもブロックできます。

ただし、このタイプの認証を支援するために、イーサリアムなどの安全で分散型のネットワークを使用できますか?.

結局のところ、公開鍵がウォレットアドレスを表し、秘密鍵がネットワークを介して送信されることはない、暗号的に安全な鍵のペアです。さらに、それはその所有者だけに知られており、ユーザーを認証するために非対称暗号化を使用することが可能です.

最も単純なケースでは、EthereumウォレットアドレスをユーザーIDとして使用できます。ただし、ユーザーが自分のキーにアクセスできなくなると、システムにも永久にアクセスできなくなります。.

同様に、キーが何らかの形で侵害され、ハッカーがそれを入手できる場合、同じキーを使用して所有権を確認することはできなくなります。ハッカーは、サインアップしたすべてのサイトで自分自身になりすますことができます。.

EtherAuthの実装

によって提示された興味深い提案がありました MixBytes 最新のイーサリアムハッカソンの1つでチーム。これは彼らの EtherAuthスマートコントラクト エンジン.

EtherAuthは、分散型サイトのログインおよび認証プロトコルを作成する試みです。これは、おそらく慣れ親しんだ「Facebookでログイン」ボタンに似ています。これは、ユーザーIDとそれに関連するウォレットアドレスを保存するスマートコントラクトです

モスクワハッカソンMixbytes

モスクワハッカソンのMixbytesチームのメンバー。画像ソース: Bankex

ユーザーIDは、サイズが2〜32バイトのUTF-8文字列です。ユーザー自身がウォレットの開始時にそれを作成し、後でそれを使用してEtherAuthをサポートする任意のサイトにアクセスします.

文字列に含まれる可能性のある文字に制限を追加することも可能です。視覚的に類似したIDを作成する可能性を制限するために、ラテン文字とアラビア数字(7ビットASCIIエンコーディングのサブセット)に制限することができます。.

EtherAuthでアカウントを作成すると、キーのペアが作成されます。認証キー(authAddr)とアクセスを復元するためのキー(recoveryKey)を作成します。 「recoveryKey」という名前は、このアドレスが単に回復のためではなくアカウントを管理するために使用されるため、おそらく最良ではありません。.

作成されると、両方のアドレスは最初にトランザクションを行ったウォレットのアドレスと同じになります。セキュリティを気にするユーザーは、別のマスターキーを作成し、オンラインからアクセスできない場所に保存する必要があります.

これを一枚の紙に冷蔵保管するのがおそらく最も安全です。紙の保管は、いわゆる回収シードに依存しています。リカバリシードは、12のニーモニックワードのセットであり、使用するとウォレットのキーペアを再作成できます。.

認証にウォレットを使用する場合は、すべてのEtherを保持するアドレスとは別のアドレスを使用することもお勧めします。これを行うことで、ハッカーがAuthkeyをアセットでウォレットまで追跡するのを防ぐことができます。今のところ、アカウントを作成するときに個別のauthKeyとrecoveryKeyを作成することはできません。これは、スマートコントラクトの後の反復で更新される可能性があるものです。さらに身を守りたい場合は、 VPNサービス.

EtherAuthの使用

ユーザーがスマートコントラクトを操作することを目的とした専用のWebページがあります。そこでアカウントを作成したり、キーを変更したり、削除したりできます。それを操作するには、ユーザーはMetaMaskと呼ばれる有名なブラウザプラグインをインストールする必要があります.

もちろん、あなたがすでにイーサリアムネットワークのかなり熱心なユーザーであるなら、あなたはすでにメタマスクを使用していて、おそらくそれがネットワークとどのように相互作用するかについての考えを持っているでしょう.

EtherAuthを使用した全体的なユーザー認証プロセスは次のようになります。

  • サイト(バックエンド)はスマートコントラクトに接続し、ユーザーのイーサリアムアドレスを受け取ります
  • サイト(バックエンド)はメッセージを生成して記録し、authKeyアドレスを使用してこのメ​​ッセージに署名するようにユーザーに要求します
  • サイト(フロントエンド)にいるユーザーは、MetaMaskプラグインを使用してメッセージに署名し、バックエンドに送信します
  • サイト(バックエンド)は署名を検証し、すべてが正常であれば、ユーザーのセッションをアクティブにします

認証チェックは、ユーザーが制御できない環境で実行することが重要です。つまり、すべてのチェックは、ユーザーのブラウザではなくサーバーで完了する必要があります。.

問題の中には、フロントエンド部分での署名の検証があります。すべてのブラウザが楕円曲線をサポートしているわけではありません。スマートコントラクトに関数を追加することで解決できます。 「ecrecover」 メッセージの結果.

ユニークなオンラインアイデンティティ

Fotolia経由の画像

その結果、Ethereumに基づいて、MetaMaskプラグインで使用される分散型認証システムの実行可能な概念実証が得られます。このシステムでは、ユーザーの匿名性を提供できるようにするために、まだいくつかの変更が必要です。ユーザーには、主キーが失われた場合にアクセスを復元する機会があります(ただし、回復キーが失われた場合は復元できません)。.

分散型システムは、GoogleやFacebookなどの大規模なエンティティの検閲の対象ではありません。何かを検閲する必要がある場合は、各Webサイトが個別に実装する必要があります。ただし、これはユーザーとそのサイトとのやり取りにのみ影響し、他のサイトには影響しません。.

イーサリアムネットワークは現在、トランザクション速度がかなり遅いです(アカウントを作成するとき、ユーザーは数分待たなければならない場合があります)が、サイトはデータを取得してユーザーを非常に迅速に確認できます.

多くのデータノードがあり、誰でもいつでも別のノードを追加できるため、このソリューションは適切に拡張できます。サイト所有者向けにこのようなソリューションを実装する複雑さは、OAuth2.0を実装する複雑さよりも高くありません。.

結論

これはまだプロジェクトの初期段階であり、ハッカソンで最近提案されたばかりであることに注意することが重要です。.

さらに、一般的なイーサリアムと暗号通貨の採用率は、FacebookやGoogleなどを使用している人のほんの一部です。 FacebookアカウントよりもEtherアドレスを快適に使用できるようになるまでにはしばらく時間がかかります.

しかし、暗号通貨の採用率は確かに高まっており、Facebookでの最近のデータスキャンダルは多くの人々を疎外するのに役立っています。分散認証が実行可能な代替手段になり得るかどうかを確認することは興味深いでしょう.

Fotolia経由の注目の画像

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me