web-dev-qa-db-ja.com

Webサイトからサインアウトすると、誰もCookieハッキングを行えなくなりますか?

Webサイトのサインアウトリンクをクリックした場合、誰かが私のCookieをハイジャックしてサインインすることができないということですか?

ログインしているときに、自分のコンピューターのハードドライブにアクセスできるユーザーがCookieを取得してサインインすることは可能ですか?

上記のシナリオのいずれかでGmailの2要素認証のようなものが役立ちますか?

16
codecompleting

ここでの答えは、WebサイトがCookie管理を処理する方法によって異なります。それらが正しく動作している場合、サインアウトリンクをたどると、サーバー側のCookieが無効になり、クライアントからも削除されます。

そのため、攻撃者がその後PCにアクセスした場合、たとえCookieにアクセスできたとしても、Cookieを悪用することはできません。

ブラウザをシャットダウンせずに、まだログインしてPCから離れている場合、攻撃者がブラウザを使用するだけでCookieを取得する可能性があります。彼らがあなたのハードドライブに(例えば、ネットワークを介して)しかアクセスできない場合、彼らはクッキーファイルにアクセスすることができるかもしれませんが、それは悪用するのが少し難しいかもしれません。

2要素認証は、ログイン中に誰かがCookieを盗むシナリオで役立つ場合がありますが、セッションの進行中は、アクセスを提供するマシンにCookieが存在する可能性があります。

最も安全な方法は、コンピューターを離れる前にすべてのセッションからログアウトし、ブラウザーを閉じることです(ブラウザーを閉じると、多くのセッションCookieがクライアントから削除されます)。

13
Rory McCune

一般的に言えば、これは実際にサーバーがCookieベースの認証を実装する方法に依存します。

  • サーバーがCookieをサーバーデータベースへのインデックスキーとして使用し、サーバーがすべてのセッション情報を回復するために使用する場合、「サインアウト」はserverセッションのことはすべて忘れます-その時点でCookieは既存のセッションを参照しないため、攻撃者にとって価値がなくなります。その場合、サインアウトすると、Cookieのハイジャックから保護されます。

  • サーバーがセッション情報を内部に保存する場合、Cookie自体(できれば暗号化され、 [〜#〜] mac [〜#〜] ユーザーが自分で「発明」したりセッションを微調整したりできないようにするため)、「ログアウト」とはブラウザにブラウザを忘れさせることでcookieを忘れることを意味します。サーバー側では何も変更されません。攻撃者が消去の前にCookieのコピーを取得した場合(または消去があまり効果的でなかった場合、たとえば攻撃者がハードディスクをコピーして消去されたファイルを回復した場合)、攻撃者はそれを使用してセッションに再び入ることができます。

ハードディスクからクッキーを取得することは、通常は簡単です。たとえば、私のマシンでは、私のWebブラウザ(chromium)が SQLite データベースとしてCookieをローカルに保存しているようです。つまり、まったく保護されていない単一のファイルです。

認証は、セッションの作成時に行われるものです。そのため、現在の議論にはほとんど関係ありません。サーバーは、以前と同じIPアドレスから送信されたものでない場合、Cookieを拒否するなどの追加の保護を追加できます(これにより、一部の攻撃者を部分的に阻止しますが、動的IPを持っている正直なユーザーにとっても不便になる場合があります)。

10
Thomas Pornin

Webアプリケーション内でログアウトすると、Cookieの有効期限が過去に設定され、ブラウザによって削除されます。したがって、本質的にログアウトするとCookieが削除されます。

それはすべて、サイトがCookieをどのように使用するかによって異なります。優れたシステムは、認証トークンを格納するだけで、システムに対してチェックされ、有効であることを確認します。認証トークンは、ユーザーのブラウザやIPアドレスなどの要素をアカウントに取り込むことができるため、攻撃者がCookieを取得した場合でも、認証に成功するためには、Cookieを偽装する必要があります。悪質なシステムは、ユーザーのパスワードをプレーンテキストで、またはハッシュとしてユーザーのパスワードをCookieに保存するだけで、非常に悪質で、攻撃者が詳細を利用する可能性があります。

2
Mark Davidson