SSLには主に6つのバージョンが存在します。
古いものから順にここでは見ていくものとします。
SSLの最初のバージョンとして設計されていたものでしたが、設計レヴューの段階でプロトコル自体に大きな脆弱性が発見されて、破棄されました。
SSL1.0の問題を修正して再設計し、1994年に発表されました。
また、ウェブブラウザNetscapeNavigator1.1において実装さえました。
その後、いくつかの脆弱性が発見されました。
そのため、SSL3.0が普及した現在では、初期状態でSSL2.0を無効にしているブラウザが多いです。
また、SSL2.0にはチューン証明書が存在しないため、ルートCAから発行したSSLサーバ証明書しか使うことができません。
SSL2.0の問題を修正するとともに機能追加を行い、1995年に発表されました。
NetscapeNavigator2.0において実装されました。
インターネット技術タスクフォースのTLSワーキンググループは1999年にRFC2246としてTLS1.0を公表しました。
TLS1.0が提供する機能はSSL3.0のそれと大差ありません。
しかし、アルゴリズムやルートCAの自己署名証明書の取り扱いなどの仕様が変更されたことの他に、これまで実装されていなかった選択肢のいくつかが必須と定められました。
TLS1.1は2006年にRFC4346として制定されました。
TLS1.0からの変更点は、新しく発見された攻撃手法に対する耐性の強化が中心です。
AES暗号が選択肢に加わったのも、このバージョンです。
2008年にRFC5246として制定されました。
CBC攻撃の耐性を上げるため、初期化ベクトルをあからさまに指定することにし、さらに埋め草の処理が改善されました。
また、予期せぬ回線クローズ後に、セッションを再開できるようになりました。