web-dev-qa-db-ja.com

HTTPS経由のCookieを介して実装されたセッション

Cookieを介して実装されたセッションについて質問があります。私はセキュリティについて学び始めたばかりであり、この質問が初歩的なものとして出くわしたことをお詫び申し上げます。

HTTPSを使用しているとしましょう。すべてのCookieデータは暗号化されており、サーバーのみがその秘密鍵でデータを復号化できます。しかし、それでも誰かが私のトラフィックを盗聴したり、すべてのリクエストのヘッダーにまったく同じ文字列が表示されたりするのを防ぐことはできません。したがって、トラフィックをスニッフィングした人は、すべてのリクエストヘッダーのこの定数文字列がセッションCookieである可能性があることを理解できます。攻撃者がリクエストの本文またはCookie内の文字を変更しようとすると、復号化中にサーバー上でジャンクとして表示されます。ただし、暗号化されていても、攻撃者は要求を再送信してリプレイ攻撃を実行できます。

SSL/TLSはCookieの改ざんを防止しますが、実際には盗んだり再生したりすることを防止しないと言ってもいいですか?

3
Anish Sujanani

TL; DR:HTTPSは、Cookieの改ざんを防止するだけでなく、途中で男がCookieを盗んで再生することも防止します。

まず、HTTPSはCookieだけでなく、トラフィック全体を暗号化します。また、暗号化の方法(ランダムIVとTLSセッションごとに異なる暗号化キー)により、同じプレーンデータを暗号化すると常に異なる暗号化データが生成されます。つまり、攻撃者は常に、Cookieが転送されるさまざまな暗号化データを見ることができます。また、暗号化されたデータを後で再生しても、解読エラーが発生するだけです。

サイドチャネル(圧縮データのサイズ)を利用してCookieを抽出する攻撃があることに注意してください。詳細は BREACHの現在の状態(GZIP SSL攻撃)? などを参照してください。

8
Steffen Ullrich