HTTPSに疑問があります。私の先輩の一人は、Httpsは実際にはSSL / TLSを使用せず、暗号化アルゴリズムのみを使用していると私に言いました。彼は、証明書を使用したハンドシェイクプロセスはトランスポート層で行われるが、実際のペイロードのセキュリティキー暗号化はアプリケーション層で行われると述べています。また、Httpsは実際にはプレゼンテーション層プロトコルと見なすことができるとも述べました。
彼は正しいですか?
HTTPSはRFC2818で指定されています:「HTTPOverTLS」。
仕様はTLSに関するものですが(IETF仕様であり、IETFは「TLS」のみを使用するため)、実際には、使用するSSL / TLSのバージョンに応じてSSLまたはTLSに関するものです(SSLとTLSの違いを参照)。
そうです、HTTPSはSSL/TLSを使用します。RFCが言うように:
概念的には、HTTP/TLSは非常に単純です。HTTP over TCPを使用するのとまったく同じように、HTTPoverTLSを使用するだけです。
基本的に、暗号化キーはSSL / TLSハンドシェイク中にネゴシエートされ、HTTP交換はそれらのキーを認識しません。
確信が持てない場合は、Wiresharkを使用してブラウザトラフィックを確認してください。表示されるのは、SSL / TLSトラフィック(交換されたHTTPが暗号化されている)だけです。
一部のトラフィックを分析する場合は、独自のサーバーをセットアップし、その秘密鍵を使用して、Wireshark SSLページで説明されているように、Wiresharkを使用したSSL/TLS上での通常のHTTP交換を確認できます。(EDH暗号スイートは完全転送秘密を提供するため、無効にする必要があります。これにより、サーバーの秘密鍵を持っている場合でも、盗聴されたトラフィックを解読できなくなります。)このページには、ダウンロードして確認できるHTTPSデータの例もいくつかあります。 Wireshark、独自のサーバーをインストールする必要はありません。
ブラウザの観点からは、HTTPSを使用しているときに開発者ツール(Firebugなど)によって報告されたトラフィックを確認することもできます。SSL/ TLSレイヤーはによって処理されるため、プレーンなHTTPトラフィックのみが表示されます。その下のSSL/TLSライブラリ。
一般的に、OSI層についてはあまり強調しません。これらは理論上のネットワーキングクラスでは見栄えがしますが、実際にはTCP / IPスタックに適用するのは困難です(比較と「有害と見なされる階層化」を参照)。特に、SSL/TLSを挿入する場合は特に見えません。アプリケーション層に関する限り、層(SSL / TLSは通常TCPの上にある他のアプリケーションプロトコルと同様にTCPの上にありますが、保護するアプリケーションプロトコルの下にあります)。
あなたの先輩はあなたの後輩でなければなりません。彼は自分が何について話しているのかわかりません。将来彼を避けてください。HTTPSは単にHTTPoverSSLであり、証明書のホスト名が接続先のサイトと一致していることを確認するためのホスト名チェックがわずかに追加されています。
具体的には:
私の先輩の一人は、Httpsは実際にはSSL / TLSを使用せず、暗号化アルゴリズムのみを使用していると私に言いました
間違い。
彼は、証明書を使用したハンドシェイクプロセスはトランスポート層で行われると述べています
SSLとHTTPSの両方が間違っています。これは、アプリケーションによって、通常はOpenSSLやJSSEなどのライブラリで実行されます。トランスポート層はTCP部分のみを実行し、SSL部分は実行しません。
ただし、実際のペイロードのセキュリティキーの暗号化は、アプリケーション層で行われます。
間違っています。ペイロードの暗号化は、SSLとHTTPSの両方のアプリケーション層で行われます。
また、Httpsは実際にはプレゼンテーション層プロトコルと見なすことができるとも述べました。
これは、アプリケーション層プロトコルです。プレゼンテーション層プロトコルの例はほとんどありません(XDRとTN3270が思い浮かびます)。これはそれらの1つではありません。しかし、私はブルーノに同意します。OSI層は、独自の層モデルを持つTCP / IPには適用できません。また、OSIプロトコルの取り組みが途方に暮れてしまったため、他のどの層にも適用できません。
ウィキペディアから:
HTTPは、OSIモデルの最上位層であるアプリケーション層で動作します。ただし、セキュリティプロトコルは下位のサブレイヤーで動作し、送信前にHTTPメッセージを暗号化し、到着時にメッセージを復号化します。