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


40

これは、この概要の質問が行われた後の技術的な詳細です。

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


3
本当に詳細な理解が必要な場合は、仕様を読み始める必要があると思います。チェックアウトwikiページを。RFCおよび仕様へのリンクが含まれています。
ゾレダチェ

7
@Zoredache、「wiki」を「Wikipedia」の略語として使用しないでください。
Spiff

回答:


36

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

TLSv1.0をSSLv3.1と考えることができます(実際、これは交換されたレコード内で発生します)。これは、比較することだけで簡単ですTLSv1.0をしてTLSv1.1TLSv1.2彼らはすべてのIETF内で編集し、多かれ少なかれ同じ構造に従ってきたので。SSLv3は別の機関(Netscape)で編集されているため、違いを見つけるのが少し難しくなります。

ここにいくつかの違いがありますが、それらをすべてリストできるとは思えません。

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

さらに詳細が必要な場合は、Eric Rescorlaの本-SSL and TLS:Designing and Building Secure Systems、Addison-Wesley、2001 ISBN 0-201-61598-3を強くお勧めします。この本から、上記のポイントのいくつかについて学びました。著者は、SSL / TLSメッセージの一部を説明する際に、SSLv3とTLS(本の執筆時点でのみv1.0)の違いに言及することがありますが、理解するためにはこれらのメッセージに関する背景説明が必要です(この本からコピー/貼り付けするのは適切ではありません)。


TLS ExtensionsはSSLではなくTLSにの​​み適用されるようです。したがって、たとえば、TLSクライアントは拡張された「ClientHello」レコードを送信できますが、SSL3のみのクライアントは元の「ClientHello」のみを送信します。
culix

@culix、一般的に言えば、それは確かに正しい(主にTLS拡張がIETFのフレームワークで定義されているため)。SSLv3は、ClientHelloレコードに追加データを含めることもできました(TLS 1.0および1.1と同じ)。(draft302.txt前方互換性のために...」を探し、TLS仕様のセクション7.4.1.2と比較してください)。これをサポートしていないスタックに対処するために、再ネゴシエーション拡張機能のSCSV擬似暗号スイートなどの回避策もあります。
ブルーノ14

@ブルーノ、ブックリンクダウン.....
Pacerier

4

私は他の答えをエコーし​​ますが、おそらくわずかに異なる重点を置いています。

SSLバージョン2と呼ばれるNetscapeによって「所有」されたセキュアソケットプロトコルがありました。Netscapeによって「所有」された異なるレコード構造とセキュリティ改善を備えた新しいバージョンがリリースされ、SSLバージョン3と呼ばれました。 placesはバイナリバージョン番号フィールドです。SSLバージョン3の場合、このフィールドは0x03 0x00、つまりバージョン3.0に設定されます。その後、IETFは独自の標準を作成することを決定しました。「SSL」がNetscapeの商標であるかどうかなど、SSLに関する知的財産の不確実性があったためか、IETFがこのプロトコルの次のバージョンをリリースしたとき、独自の名前を付けました:Transport Layer Securityプロトコル、または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 TLSv1.0 RFC 2246のSSLv3プロトコルドラフト


@SvenW私は自分で比較したいと思いますが、それは私が引き受けたいかどうかわからない大きな挑戦です。その標準は、10年前から存在しています。私のような人が理解できるように、誰かがすでにかなりのグラフィックですでに比較を行っていることは確かです。
goodguys_activate

@ MakerOfThings7残念ながら、この質問は円グラフに要約できるものではありません。チャートに表示できるのは、暗号化ビットレートまたは(ここで拡大している)付与されるセキュリティレベル(SSLv3が「-」でTLSが「= ...」)だけです。実際に仕様を読むか、少なくともWikipediaページ(前の質問で提供しました)を取得することで獲得できます。
gWaldo10年

@SvenW両方の仕様を読んで理解しましたか?
goodguys_activate

いいえ。なぜ私がすべきですか?私は、この仕様に対してソフトウェアを作成する開発者ではありません。これは、考えられる唯一の理由です。SSL / TLSを使用する必要がある場合は、OpenSSLなどのドキュメントをお読みください。ユーザーと管理者にとっては十分です。
スヴェン

@SvenW違反はありませんが、仕様を読んで理解した人から応答が返ってくるまで、これを開いたままにします。
goodguys_activate

0

暗号化プロトコルSSLの名前はTLSになり、同じプロトコルの名前が2つになりました。現在のソフトウェアは、TLSバージョン1またはSSLバージョン3を自動的にネゴシエートします。一方、人間は、より明確なSSL用語を使用するか、公式のTLS指定を使用するかを決定する必要があります。

SSLはTLSの前身です。

TLSおよびSSLは、アプリケーション層でネットワーク接続のセグメントを暗号化して、トランスポート層でのエンドツーエンドの安全な転送を確保します。


名前の変更ですか?それでおしまい?
goodguys_activate

はいTLSは新しいバージョンです。TLSは必要に応じてSSL3に変換できます。
aleroot

3
いいえ、名前の変更ではありません。TLSv1はSSLv3と相互運用可能です(フォールバックします)が、必ずしもそうではありません。TLSv1はSSLv4に似ています。注:TLSには複数のバージョンもあります。
フィリップレイノルズ

-2

違い:

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

:それはあなたがSSL / TLSで始まり、STARTTLSのようなコマンドを介しプロトコル内でTLSに切り替えるとの差の話をしている、正しくないのですstackoverflow.com/questions/3660798/...
ブルーノ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.