web-dev-qa-db-ja.com

パスワードの再利用が安全でないのにOpenIDが安全であると考えられるのはなぜですか?

OpenIDを使用すると、たとえばサードパーティのWebサイトにログインするためのGoogle/Facebook/Microsoftアカウント。 Stack Exchangeへのログインに使用できます。

パスワードの再利用が許可されていないのに、なぜこれは許容できるプラクティスと見なされるのですか?攻撃者が複数のユーザーアカウントにアクセスできるという点で、OpenIDアカウントが侵害された場合、同じことになりますか?

さらに、電子メールアカウントは他のすべてのオンラインアカウントのスケルトンキーであることが多いため(パスワードのリセットリンクからパスワードをリセットするための電子メールが送信されるため)、ユーザーに条件を入力するように条件付けることも危険ではありません。他のウェブページのGmailパスワードも?

16
JonnyWizz

TL; DR:OpenIDでパスフレーズを複数回使用していないが、他の当事者(Stack Exchangeなど)がIDプロバイダー(Googleなど)を信頼している)慎重に認証してください。パスフレーズ(または2要素認証、証明書などの他の認証スキーマ)のみがIDプロバイダーに公開されます。

実世界でのID認定

銀行口座の開設、電話契約のサインアップ、または本人確認を必要とするその他のアクションにも、同様の方法がよく使用されます。その会社に直接行きたくない場合は、公証人、郵便局、または銀行代理店を通じて本人確認を行うことができます。これにより、パスポートが確認されます(これはパスフレーズをGoogleに提示するようなものです)。パスポートのコピーを添付せずに、IDを確認したことを確認する証明書(または認証を要求するサードパーティに直ちに渡す)。

OpenID

OpenID(および同様のシングルサインオンテクノロジー)の考え方は、ターゲットサイトでパスフレーズを入力しないことです。たとえば、Googleを使用してStack Exchangeアカウントにログインする場合、Stack Exchangeがパスフレーズを取得することはありませんが、代わりにGoogleにリダイレクトされ、認証されます(おそらく、すでにGoogleにログインしているため、 Stack Exchangeの認証を受けてそこに送り返すかどうかを尋ねられるだけです)。

Stack Exchangeは、いつでもパスフレーズを取得しません。Googleパスフレーズを変更しても、気付かないこともあります。代わりに、Googleは一種の証明書をStack Exchangeに送信し、いくつかのID情報を渡します。これは単なる数値識別子である場合がありますが、メールアドレスなどの追加情報で強化することもできます。

ウィキペディアのワークフローを説明する素晴らしい画像があります:

OpenID vs. Pseudo-Authentication using OAuth

" OpenIDvs.Pseudo-AuthenticationusingOAuth " by Saqibali-自分の仕事。 Commonsを介してCC0でライセンス

OAuth

OAuthは、証明書を渡すのではなく、一種のアクセスキーを使用することで、少し異なります。 OAuthを通じてOpenIDの動作をシミュレートするために、IDプロバイダーは認証のみに使用できる単純なサービスを提供します。キーが「適合する」場合、ユーザーは正常に認証されました。

安全保障

いくつかのセキュリティ対策を講じれば、シナリオ全体が安全です。

  • 実際のものと似た偽の認証プロバイダー(たとえば、フィッシング攻撃の偽のGoogleページ)にパスフレーズを渡すべきではありません。これは、パスポートを偽の公証人に提供するようなもので、コピーを作成し、それで悪いことを行います。これは、サイトURIの注意深い検証(パスワードマネージャーと自動パスフレーズ検索RIごとにが非常に役立ちます!)と2要素認証などの追加のセキュリティ対策を使用することで軽減できます。
  • 証明書は一定期間のみ使用でき、有効なのはサイトごとのみです。たとえば、偽のStack Exchange Webサイトが証明書を取得する可能性があります。ただし、これは「偽のStack Exchange」に対してのみ有効であるため、攻撃者はこれを使用して実際のStack Exchangeまたは他のWebサイトに対する認証を行うことはできません。

    これの実際の実装は、すべてのシングルサインオンテクノロジー間で異なりますが、すべてが同様の方法を実装して、証明書をサードパーティにバインドします。

10
Jens Erat

OpenIdまたは他の同様のメカニズムのポイントは、資格情報を保持する単一の非常に信頼できる組織を選択できることです。彼らは何らかの方法であるという仮定がありますより安全です平均的なサイトよりも==。例えば:

  • 2要素認証を提供する必要があります
  • 優れたプロアクティブなアカウント誤用監視が必要です
  • ISO27001認定を受けている必要があります
  • 等。

パスワードを再利用する場合、再利用するすべてのサイトのアカウントは、最も弱いサイトと同じくらい安全です。あらゆるサイトの妥協はあなたのすべてのアカウントが危険にさらされていることを意味します。

そのため、一部は単純な確率です-資格情報を保持する場所が多いほど、それらが盗まれる可能性が高くなります。

そして、部分的には品質に関するものです。非常に信頼できるOpenIdプロバイダーを選択する必要があります。

他のサイトにメール認証情報を入力することに関して、OAuthなど)の考え方は、それを行わないことです。ログインしたサイトは、ブラウザーをIDプロバイダーサイトにリダイレクトし、確かに、これはやや微妙であり、多くのユーザーは何が起こっているのか気付かないかもしれませんが、それが原則です。

12
Mike Goodwin