私はWebセキュリティクラスを受講しており、今日のほとんどのWebサイトは認証にhttpsを使用し、ユーザーの追跡にプレーンテキストのCookie(認証トークン)を使用することを講師から教えられました。
これを確認したかった。たとえば、Amazon.comを使用している場合、以前にログインした場合、Amazonは私の履歴に関連する何かを表示します。このため、彼らはクッキーを使用している必要があります。しかし、「アカウント」をクリックすると、httpsページが開きます。アカウントの詳細を表示している場合、AmazonがCookie(認証トークンとして機能)をプレーンテキストで送信するのはなぜですか?回線を介して聞くことができる場合、クッキーを盗んで誰かのセッションをハイジャックすることはできませんか?
私の仮説は、AmazonのようなWebサイトには複数のCookieがあり、一部はHTTPSを必要としないページ(ホームページなど)のものであり、それでもユーザーの履歴を追跡したいというものです。その他は、ユーザーが以前に認証された場合(ユーザーがパスワードを再度入力する必要がない場合)を追跡するためのものであり、このタイプのCookieは常にhttps経由で送信する必要があります。
誰かが私の仮説を確認できますか? (インストラクターは完全に正確ではないかもしれません)
これは、2つのCookieを使用して比較的安全な方法で実現できます。
1つは Secure Flag が設定されており、HTTPSセッションの詳細が含まれており、購入時にチェックアウトプロセス全体で使用されます。 Secure Flag は、ブラウザがSSL/TLSで保護された接続(つまりHTTPSプロトコルを使用)経由でのみCookieを送信するようにします。
もう一方にはこのフラグが設定されておらず、HTTPセッションの詳細が格納されます。サーバー側に保存されているセッションの詳細は、表示されたアイテムである可能性があります。以前にログインしたことがある場合は、セッションをアカウントに関連付けることができます。これは、ログインせずに戻ったときにサイトがWelcome Johnと言ったときに使用されます。
これが機能するためには、安全でないセッションCookieの値を安全なセッションCookieの値から決定する方法がないはずです。
安全でないCookieは、チェックアウトページまたはアカウントの詳細ページに入るまで使用できます。その場合、HTTPS経由のログインが必要となり、そこで安全なセッションCookieが設定されます。これは MITM攻撃 によるCookieの取得を阻止します。まるで攻撃者が安全でないCookieを盗んだとしても、ユーザーの閲覧履歴を変更したり、バスケットにアイテムを追加/削除したりする可能性があります。この方法で実装された場合、ユーザーは、安全なセッションにコピーされたバスケットアイテムが、チェックアウトを完了する前に実際に注文したいものであることを確認する(または、確認メールを読んで後でアイテムをキャンセルする)と想定されます。
インストラクターがプレーンテキストCookieの送信を、上記のような良い習慣を使用して注意深く言及しているか、それを行わない方法の悪い例として言及しているかは、質問から明らかではありません。後者の場合、多くのWebサイトは実際にはログインページやカード詳細ページなどの特定のページのみをHTTPSで保護しますが、HTTPページ上で同じ認証またはセッションCookieを使用し続け、このCookie値がCookieで送信されることを認識しません明確で、適切に配置された攻撃者が読み取ることができます。
実際、サイトが完全にHTTPSの場合、サイト全体が暗号化されます(ヘッダー、Cookieなど)。 SSLの詳細については、 こちら をご覧ください。
Amazonでは、基本的に、安全なプライベートデータ(ログインしたセッション)と安全でない 'private'データ(IPアドレス)を組み合わせて使用します。
最初にAmazon.comにアクセスしたときに非SSLホームページにアクセスすると、「魔法のように」一連の推奨アイテムが表示されるように、サイトがあなたが説明したように「追跡」する2つの基本的な方法があります。
Amazonの例ではsecureプレーンテキストCookieを送信しないため、あなたが と記述したもののリスクはあまりありませんMiTM攻撃 、これらのタイプの攻撃は発生する可能性があります-特に、「 secure flag 」がcookieで設定されていない場合。
注:Wiresharkのようなパケットスニファや、Firebugのようなブラウザデバッガを使用することで、これらすべてを自分でチェックアウトできます(http/https要求の表示、Cookieの表示など)。
Cookieは、セッション管理とユーザー行動の追跡の両方に使用できます。
多くのCookieを1つのWebサイトに配置して、それぞれに異なる機能を提供することができます。 Cookieの使用方法は実装によって異なります。安全なHTTPonlyタグを使用して配置できるものもあります。
ソーシャルサイトや他のウェブサイトは、ユーザーの行動を追跡する広告がeコマースサイトとの関連性も示していることを示しています。
したがって、私によると、一部のCookieは広告用にセキュリティで保護されていないか、多くは例のように異なるドメイン間で共有されています。Facebookは前回Amazonで見た広告を表示します。または、一部の製品のグーグル検索が他のいくつかのサイトで表示されていますが、一部はユーザー認証、支払い、ユーザー個人情報、銀行情報などに対して安全です。