2

より大きな Web アプリケーションの一部であるプロキシ sevlet を介してユーザーがアクセスできる Web アプリケーションがあります。ブラウザとより大きなアプリケーション間の通信は、ssl によって暗号化されます。組み込みアプリケーションから、ユーザーのセッションを示す安全な Cookie を設定したいと考えています。プロキシ サーブレットと Web アプリケーションの間の通信は暗号化されていないため、セッション ID Cookie を設定してもセキュア フラグがありません。私のアプリケーションは tomcat で実行されており、この tomcat からの応答はプロキシ サーブレットによってクライアントのブラウザにプロキシされます。

この Cookie は安全であると示されていませんが、安全であり、他人が乗っ取ることはできませんか? その状況で、ブラウザは安全でない接続でクッキーを送り返すことができますか?

編集:

明確にするために、そのソリューションのアーキテクチャをもう少し指定します。

2 つの Web アプリケーションがあり、それぞれに独自のセッションがあります。1) 1 つはユーザーが直接アクセスでき、アプリケーションとブラウザー間の通信は SSL によって暗号化されます。(アプリケーション X) 2) ユーザーは 2 番目にアクセスできませんが、アプリケーション X のサーブレットによってプロキシされます (アプリケーション Y) サーブレットは、http ヘッダーもプロキシします。

アーキテクチャは次の図のようになります。

クライアント ブラウザ| <-SSL-> |アプリケーション X (プロキシ サーブレット) | <-内部ネットワーク、SSL なし -> |アプリケーション Y

セッションを示すアプリケーション Y からクライアント ブラウザに Cookie を設定したいと考えています。Cookie ヘッダーはアプリケーション Y から X に取得され、クライアントのブラウザーに設定されますが、残念ながらこのヘッダーにはセキュア フラグがありません。安全な接続でブラウザから送り返されるかどうかはわかりません。

4

2 に答える 2

1

これは、Web アプリを保護するための良い方法ではありません。これは、通信の最も重要な領域 (ブラウザーとアプリにアクセスする方法との間) が暗号化されていないためです。それは、他人に詮索される可能性が最も高い領域です。SSL がないと Cookie を暗号化する方法がないため、SSL がないと Cookie は本質的に安全ではありません。それらは HTTP トランザクションの一部にすぎません (したがって、残りの部分と同じくらい安全です)。

HTTP トランザクションが SSL 経由で発生した場合、セッションは本質的に改ざんからほとんど安全です。Cookie には、サーブレット コンテナー内のユーザーの情報用にサーバー上のストレージ コンパートメントを指すかなり一意の ID コードしか含まれていないためです。 Cookie を傍受し、ブラウザにその Cookie を使用させることができます。繰り返しますが、SSL が最善の策です。

これで、ナンスのようなものを使用して、SSL の上に追加のセキュリティを追加できます。実際の例を見たい場合は、それらを使用するアプリがたくさんあります。

于 2012-07-31T13:16:56.130 に答える
1

ユーザーの Web ブラウザーが HTTPS 経由でリモートで Web プロキシ サーバーに接続し、Web プロキシ サーバーが HTTP 経由でローカルにアプリケーションに接続しているようです。

secureCookie のオプションを手動で設定するか、Cookie ヘッダーを手動で作成することにより、Cookie を安全なものとして設定できる場合があります。通常、Web/アプリケーション サーバーは送信 Cookie の設定を無視します。代わりに、通常、ルールを強制するのはブラウザー次第です。

オプションを指定して Cookie をブラウザに送信することが重要secureです。ブラウザは、HTTPS 経由でない限り Cookie を返送しないことを認識し、盗聴を防止します。httponlyCookieのオプションも含める必要があります。

ノンスを追加しても、被害者が暗号化されていないリクエストを送信することを確信できる場合、攻撃者は Cookie とナンスの両方を取得できるため、追加の保護は提供されません。

これは、HTTPS を介した場合でも、nonce だけではリプレイ攻撃を防ぐのに適していないと言っているわけではありませんが、セッション ハイジャックを防ぐことはできません。

于 2012-07-31T13:47:11.017 に答える