8

最近、自分のWebサイトのアカウント作成ページでSSLを設定しました。私はこれを私のサイト全体にさらに拡大したいと思っています。

でも質問がありました。SSL暗号化は実際にどのように機能し、転送中のデータを保護しますか?さらに、HTTPを介してプレーンテキストで送信されたデータを傍受するためにハッカーが通常利用できる方法は何ですか?「スニッフィング」があることは知っていますが、それが常に唯一の方法であり、詳細な説明はありません。HTTPおよびHTTPSを介して送信されているデータを調べる方法はありますか?比較対照するには?

4

1 に答える 1

14

HTTPは暗号化されていません。HTTPクライアントとサーバー間のパケットをスニッフィングできるネットワークスニファ(ほとんどのネットワークアダプタは、この目的のためにプロミスキャスモードをサポートしています)は、HTTPデータを表示できます。

一方、HTTPSデータは、SSL/TLSで暗号化されたHTTPデータです。SSL / TLSは、アウトバウンドデータがネットワークに到達する前に暗号化し、インバウンドデータがネットワークを離れた後に復号化します。ネットワーク上にプレーンテキストがないため、パケットがサードパーティによってスニッフィングされているかどうかは関係ありません。暗号化キーがないと、盗聴されたデータはゴミになります。SSL / TLSハンドシェイク中に、クライアントとサーバーは、アプリケーションデータを交換する前に、暗号化キーや証明書などを相互にネゴシエートします。サーバーに送信されるデータはサーバーのキーを使用して暗号化され、クライアントに送信されるデータはクライアントのキーを使用して暗号化されます。これにより、クライアントから送信された暗号化データはサーバーでのみ復号化でき、その逆も可能です。

SSL / TLS暗号化接続からプレーンテキストを傍受して抽出する唯一の方法は、man-in-the-middle攻撃を使用することです。これは、SSLクライアントがMITMに接続し、次にMITMがSSLサーバーに接続し、それらの間でデータをファネルすることを意味します。MITMは、クライアントまたはサーバーが実行されているネットワークにアクセスする必要があり、クライアントの接続をサーバーではなくそれ自体に再ルーティングできる必要があります。ただし、それが可能な場合、MITMは、必要なすべての暗号化情報を保持できるように、両方の当事者と独自のSSL/TLS接続をネゴシエートできます。次に、SSLクライアントとネゴシエートした暗号化キーを使用してSSLクライアントの送信データを受信および復号化し、SSLサーバーとネゴシエートした暗号化キーを使用してそのデータを再暗号化してSSLサーバーに渡します。およびその逆。SSLクライアントとSSLサーバーは、証明書を使用してSSLクライアントとSSLサーバーが最初のハンドシェイク中に互いのIDを確認できるようにしない限り、相互にではなくMITMと通信していることを認識しません。SSL / TLSは証明書を必要としませんが、証明書を持っている場合は証明書を使用すると便利です。

于 2012-10-05T23:08:49.457 に答える