SSL と TLS のプロトコル レベルの違いは何ですか?

SSL と TLS のプロトコル レベルの違いは何ですか?

これは技術的な詳細ですこの概要質問がありました。

SSL と TLS のプロトコルの違いは何ですか?
名前の変更を正当化するほどの違いが本当にあるのでしょうか? (TLS の新しいバージョンを「SSLv4」または SSLv5 と呼ぶのではなく)

答え1

SSLv2 と SSLv3 は完全に異なります (現在、どちらも安全ではないと考えられています)。SSLv3 と TLSv1.0 は非常に似ていますが、いくつかの違いがあります。

TLSv1.0をSSLv3.1と考えることもできます(実際、交換されるレコード内ではそれが起こります)。TLSv1.0TLSv1.1そしてTLSv1.2これらはすべて IETF 内で編集されており、ほぼ同じ構造に従っているためです。SSLv3 は別の機関 (Netscape) によって編集されているため、違いを見つけるのが少し難しくなります。

違いはいくつかありますが、すべてを列挙するのは難しいと思います。

  • ClientHelloメッセージ (ハンドシェイクを開始するためにクライアントから送信される最初のメッセージ)では、バージョンは{3,0}SSLv3、{3,1}TLSv1.0、および{3,2}TLSv1.1 になります。
  • 異なりClientKeyExchangeます。
  • MAC/HMAC は異なります (TLS は HMAC を使用しますが、SSL は以前のバージョンの HMAC を使用します)。
  • キーの導出が異なります。
  • SSLv3 では、SSL/TLS メッセージを送信した直後にクライアント アプリケーション データを送信できますFinished。TLSv1 では、サーバーのFinishedメッセージを待つ必要があります。
  • 暗号スイートのリストが異なります (一部の暗号スイートは から に名前が変更されていますがSSL_*TLS_*ID 番号は同じです)。
  • 新しい再交渉延長

強くお勧めしますエリック・レスコーラの本 -SSL と TLS: 安全なシステムの設計と構築、アディソン・ウェスレー、2001年 ISBN 0-201-61598-3、もっと詳しく知りたい場合は、 を参照してください。私は上記の点のいくつかをこの本から学びました。著者は、SSL/TLS メッセージの一部を説明する際に、SSLv3 と TLS (この本が書かれた時点では v1.0 のみ) の違いについて時々言及していますが、理解するにはこれらのメッセージの背景説明が必要です (この本からコピー/貼り付けするのは適切ではありません)。

答え2

他の回答と同じことを繰り返しますが、おそらく少し重点が異なります。

Netscape が「所有」していたセキュア ソケット プロトコルがあり、SSL バージョン 2 と呼ばれていました。Netscape が「所有」していた、異なるレコード構造とセキュリティの改善が施された新しいバージョンがリリースされ、SSL バージョン 3 と呼ばれていました。プロトコル内のいくつかの場所にバイナリ バージョン番号フィールドがあります。SSL バージョン 3 の場合、このフィールドは 0x03 0x00、つまりバージョン 3.0 に設定されています。その後、IETF は独自の標準を作成することを決定しました。おそらく、SSL に関する知的財産の不確実性 (「SSL」が Netscape の商標であるかどうかなど) があったため、IETF がこのプロトコルの次のバージョンをリリースしたときに、独自の名前が付けられました。トランスポート層セキュリティ プロトコル、または TLS バージョン 1.0 です。レコード形式と全体的な構造は SSL v3 と同一で、一貫しています。バイナリ バージョン番号は 0x03 0x01 に引き上げられ、他の人が指摘したように、いくつかの小さな暗号の変更がありました。それ以来、TLS バージョン 1.1 と 1.2 が登場しており、その内部プロトコル番号は 0x03 0x02 と 0x03 0x03 です。

SSLv2 を無視すると、これは基本的に、セキュリティとパフォーマンスに関する人々の知識が深まるにつれて行われる通常のプロトコルの微調整に伴う単なる名前の変更でした。

答え3

基本的に、これはプロトコルの新しいバージョンの名前変更に過ぎません。その主な理由は、公式の IETF 標準トラック プロトコルになった後に、主に Netscape によって設計された古い非公式の標準と区別するためだったと思います。

以前の質問への回答で述べたように、これは SSLv3 と TLSv1.0 が互換性があることを意味するものではありません。RFC 2246 から引用します。

このプロトコルと SSL 3.0 の違いは劇的ではありませんが、TLS 1.0 と SSL 3.0 が相互運用できないほど大きくなっています。

プロトコルの正確な違いを本当に知りたいのであれば、標準を読んで自分で比較する必要があると思います。

Netscape の SSLv3 プロトコル ドラフト TLSv1.0 RFC 2246

答え4

違い:

  • TLS は標準プロトコルの上で動作します。TLS 接続は、標準サービスの暗号化されていないセッションのように始まりますが、ある時点で暗号化のネゴシエーションを開始します。このネゴシエーションには標準プロトコルの拡張が必要です。
  • 標準プロトコルは SSL 上で実行されます。SSL 接続は最初に暗号化をネゴシエートし、次にその上で基本プロトコルを実行します。

関連情報