あなたが取得するとき
https://encrypted.google.com/search?q=%s
%s
クエリは暗号化されていますか?または単に応答ですか?そうでない場合、Googleが公開コンテンツを暗号化して提供する必要があるのはなぜですか?
URLやコマンド(GET
)を含むリクエスト全体が暗号化されます。プロキシサーバーなどの介在者が収集できる唯一のものは、宛先アドレスとポートです。
ただし、TLSハンドシェイクのClient Helloパケットは、 [〜#〜] sni [〜#〜]拡張を介してプレーンテキストで完全修飾ドメイン名をアドバタイズできることに注意してください。 (@hafichukに感謝)。これはすべての最新のメインストリームブラウザで使用されていますが、一部は新しいOSでのみ使用されます。
EDIT:(これにより「Good Answer」バッジが取得されたので、質問全体に回答する必要があります...)
応答全体も暗号化されます。プロキシはその一部を傍受できません。
Googleは、すべてが公開されているわけではないため、https経由で検索やその他のコンテンツを提供します。また、公開コンテンツの一部を [〜#〜] mitm [〜#〜] 。いずれにしても、Google が自分で答える ことをお勧めします。
URL自体は暗号化されているため、クエリ文字列内のパラメーターは、単純にネットワーク上を移動しません。
ただし、GETデータを含むURLはWebサーバーによってログに記録されることが多いのに対し、POSTデータはめったに記録されません。したがって、/login/?username=john&password=doe
、そうしないでください。代わりにPOSTを使用してください。
HTTPS HTTPデータが転送される前に、基礎となるSSL接続を確立します。これにより、すべてのURLデータ(接続の確立に使用されるホスト名を除く)がこの暗号化された接続内でのみ運ばれ、HTTPSデータと同様に中間者攻撃から保護されます。
上記は、Google Answersの非常に包括的な回答の一部です。
http://answers.google.com/answers/threadview/id/758002.html#answer
ホスト名の後のURLの部分は安全に送信されます。
たとえば、 https://somewhere.com/index.php?NAME=FIELD
/index.php?NAME=FIELD
部分は暗号化されています。 somewhere.com
は違います。
すべてが暗号化されますが、クエリはサーバーのログに残り、さまざまなログアナライザーなどにアクセスできることを覚えておく必要があります(通常POST要求の場合はそうではありません)。
接続は、要求が送信される前に暗号化されます。はい、クエリ文字列を含め、リクエストも暗号化されます。
はい、安全です。 SSLはすべてを暗号化します。
POSTリクエストからの抜粋:
POST /foo HTTP/1.1
... some other headers
GETリクエストからの抜粋:
GET /foo?a=b HTTP/1.1
... some other headers
どちらの場合も、ソケットで送信されるものはすべて暗号化されます。クライアントsees GETリクエスト中にブラウザ内のパラメータが表示されるという事実は、真ん中の男性が同じものを見るという意味ではありません。
SSLはヘッダー解析の前に実行されます。つまり、次のことを意味します。
Client creates Request
Request gets encrypted
Encrypted request gets transmitted to the Server
Server decrypts the Request
Request gets parsed
リクエストは次のようになります(正確な構文は思い出せませんが、これは十分に近いはずです):
GET /search?q=qwerty HTTP/1.1
Host: www.google.de
これは、同じIP上の複数のホストに対して異なるSSL証明書を持つことが問題であり、要求されたホスト名は復号化されるまでわからない理由でもあります。
HTTPS経由でWebサイトに接続し、多数のGETパラメーターを渡しました。次に、wiresharkを使用してネットワークをスニッフィングしました。 HTTPを使用すると、URLは暗号化されずに送信されます。つまり、URLのすべてのGETパラメーターを簡単に確認できます。 HTTPSを使用すると、すべてが暗号化され、どのパケットがGETコマンドであるか、その内容はもちろん見当たりません!
HTTPSを使用する場合、GETリクエストは暗号化されます-実際、これがセキュリティで保護されたWebサイトに一意のIPアドレスが必要な理由です-リクエストが解読されるまで、リクエストから目的のホスト名(または仮想ディレクトリ)を取得する方法はありません。