あなたが取得するとき
https://encrypted.google.com/search?q=%s
クエリは%s
暗号化されていますか? それとも反応だけ?そうでない場合、Google が公開コンテンツを暗号化して提供する必要があるのはなぜですか?
あなたが取得するとき
https://encrypted.google.com/search?q=%s
クエリは%s
暗号化されていますか? それとも反応だけ?そうでない場合、Google が公開コンテンツを暗号化して提供する必要があるのはなぜですか?
URL やコマンド ( GET
) を含め、要求全体が暗号化されます。プロキシ サーバーなどの仲介者が収集できる唯一のものは、宛先アドレスとポートです。
ただし、TLS ハンドシェイクの Client Hello パケットは、SNI拡張(@hafichuk に感謝) を介して完全修飾ドメイン名をプレーンテキストでアドバタイズできることに注意してください。これは、最新のすべての主流ブラウザーで使用されますが、一部は新しい OS でのみ使用されます。
編集: (これで「良い回答」バッジがついたので、質問全体に回答する必要があると思います…)
応答全体も暗号化されます。プロキシはその一部を傍受できません。
すべてが公開されているわけではないため、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リクエストの場合はそうではありません)。
接続は、リクエストが送信される前に暗号化されます。はい、クエリ文字列を含め、リクエストも暗号化されます。
HTTPS 経由で Web サイトに接続し、一連の GET パラメーターを渡しました。次に、wireshark を使用してネットワークを盗聴しました。HTTP を使用すると、URL は暗号化されずに送信されます。つまり、URL 内のすべての GET パラメーターを簡単に確認できます。HTTPS を使用すると、すべてが暗号化され、その内容はおろか、どのパケットが GET コマンドであるかさえわかりません。
はい、安全です。SSL はすべてを暗号化します。
POST リクエストからの抜粋:
POST /foo HTTP/1.1
... some other headers
GET リクエストからの抜粋:
GET /foo?a=b HTTP/1.1
... some other headers
どちらの場合も、ソケットで送信されるものはすべて暗号化されます。クライアントが 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 を使用する場合、GET 要求は暗号化されます。実際、これが、保護された Web サイトに一意の IP アドレスが必要な理由です。復号化されるまで、要求から目的のホスト名 (または仮想ディレクトリ) を取得する方法はありません。