SSLとTLSは、どちらもインターネット上でのウェブブラウザとウェブサーバ間でのデータ通信を暗号化し送受信させる仕組みのことですが、 表記の違いやSSL/TLSと表記されるようになったのには理由があります。このページでわかりやすく説明します。
TLSとは? 「SSL/TLS」と表記される理由
TLS(Transport Layer Security)は、SSL(Secure Sockets Layer)と同じくインターネット上のウェブブラウザとウェブサーバ間でのデータの通信を暗号化し、送受信させる仕組みで、SSLの進化バージョンにあたります。現在「SSL/TLS」と表記されることが多いですが、その理由はこの2つのプロトコルが開発され、発展してきた経緯によるものです。
SSLは米Netscape社が開発しましたが、SSL1.0は脆弱性が発見されたため、製品に実装されることはありませんでした。
1994年に、SSL1.0を改良した「SSL2.0」がリリースされた際、高機能ウェブブラウザ「Netscape Navigator 1.1」に実装され、SSLが広く一般に知れ渡るようになりました。
その後、SSLはバージョン3.0までが開発されましたが、1999年にはSSL3.0を元にした「TLS(Transport Layer Security)1.0」が定められ、現在は「TLS1.3」までリリースされています。
SSL3.0とTLS1.0は、仕様の違いもごくわずかで仕組みがほぼ同じですが、TLSが登場した段階では既にSSLという名称が広く使われていたために、現在では「TLSのことも含めてSSLと呼ぶ」または「SSL/TLS」「TLS/SSL」のような併記で使われる事が多いです。
SSL/TLS これまでの歩み
SSL1.0 | リリース前に脆弱性が発見され公開されず |
---|---|
SSL2.0 | 1994年リリース |
SSL3.0 | 1995年リリース |
TLS1.0 | 1999年リリース |
TLS1.1 | 2006年リリース |
TLS1.2 | 2008年リリース |
TLS1.3 | 2018年リリース |
古いSSL/TLSバージョンが抱える脆弱性の問題
初めて開発された「SSL1.0」は、リリース前に脆弱性が発見され公開に至りませんでした。
その後開発された「SSL2.0」では、製品に実装された後に脆弱性が発見され、多くのウェブブラウザでSSL2.0を無効とする初期設定が行われました。
ごく最近まで広く使用されていた「SSL3.0」は、2014年に重大な脆弱性である「POODLE(CVE-2014-3566)」が発見されました。このため、現在ではサーバでのSSL3.0の利用は非推奨とされ、また多くの主要ブラウザで「SSL3.0」が無効となりました。
また「POODLE」においては、実装が不十分な「TLS1.0/1.1」の場合もサーバとの通信において脆弱性があることが確認され、TLS1.0/1.1の利用は非推奨となっております。
この他、2014年と2015年に発覚したOpenSSLの脆弱性「Heartbleed」「FREAK」など、場合によってはOpenSSLのアップグレードやSSLサーバ証明書の入れ替えが必要になるケースもありました。
Heartbleed(2014年4月) | OpenSSLの暗号ソフトウェアライブラリ上で発見された脆弱性 |
---|---|
POODLE(2014年10月) | SSL3.0と一部のTLS1.0/1.1の脆弱性 |
FREAK(2015年3月) | OpenSSL(0.9.8zd未満・1.0.0p未満の1.0.0バージョン・1.0.1k未満の1.0.1バージョン)と、AppleのSSL/TLS通信における脆弱性 |
TLS1.2やTLS1.3への移行の必要性
2008年にリリースされた「TLS1.2」から、ハッシュアルゴリズムにSHA-256(SHA-2)※が追加されておりますが、SHA-1ハッシュアルゴリズムについては、2017年3月にGoogleから衝突に成功したことが報告されました。以前からリスクが指摘されていたSHA-1が、ついに安全ではなくなったことが証明されました。
※SHA(Secure Hash Algorithm)とは、改ざん検出に用いるハッシュ関数の種類の一つ。ハッシュ値は、数値が大きい方がセキュリティ的な強度が高いとされており、SHA-1が160ビットなのに対し、SHA-2は224ビット・256ビット・384ビット・512ビット(SHA-2で現在普及しているのが256ビット)。
このようなことから、古いSSL/TLSバージョンを使い続けるより、よりセキュアなハッシュアルゴリズムをサポートした「TLS1.2」への移行が必要とされています。
有名ウェブサイトが順次TLS1.1以前のバージョンのサポートを停止
ユーザがウェブサイトを安全に利用できるよう、使用中のOSやブラウザが古くてTLS1.1以前のバージョンを有効にしている場合は、ウェブサイトの表示ができなくなったり一部のサービスの利用を不可にして、最新のOSやブラウザにアップデートを促すなどの処置が実施されています。
iOS9とOS X 10.11以降はTLS1.2が必須
Appleでは、iOS9とOS X 10.11以降、アプリとウェブサービスとの間でセキュアな接続のために利用する機能「App Transport Security」がリリースされましたが、この機能を利用する為には「TLS1.2」が必須です。サーバの設定で「TLS1.2」を有効にしていない場合、iPhoneとiPad、Macに繋がらなくなります。
ブログ記事「TLS1.2への移行の必要性~TLS1.2への有効化が始まる現状の動きとは」
TLS1.3
TLS1.2のリリースから10年の歳月が経過した2018年8月に、「TLS1.3」が最新バージョンとしてリリースされました。
上記の脆弱性問題の反省から、TLS1.2以前のバージョンに存在した古い暗号アルゴリズムが削除され、ハンドシェイク(暗号方式や鍵交換などのセキュリティパラメータの取り決め)の途中から暗号化される仕組みが導入されました。また、通信パフォーマンスに関するさまざまなアップデートが行われました。
脆弱性の有無の確認方法と最新情報
Qualys SSL Labs社が提供している「SSL Server Test」を利用して、SSLサーバ証明書の設定状況の確認、安全性の診断などを行うことができます。
診断結果はA+ 、A……Fまでの8段階のグレードで表示され、「B以下」と診断された場合には、(既存の)脆弱性が見つかったことが分かります。
脆弱性問題のあるサイトの場合
SSL3.0が有効となっている場合、「INSECURE (安全でない)」と表示され、またTLS1.2に対応していない場合は、オレンジ色で「No」と表示されます。
なお、この診断結果はあくまで「既存の」脆弱性について診断するものです。まだ発見・言及されていない脆弱性については診断ができませんので、繰り返しチェックを行うことが必要です。
脆弱性問題に関する最新情報
日本国内においては、「IPA(独立行政法人 情報処理推進機構)」などが脆弱性に関する情報を提供しております。 また、弊社をはじめとする各認証局や各機器・ソフトウェアなどの発売元でも、最新情報や対処法などをウェブサイトやメール等で公開しています。
さらに、これまで発生したSSL/TLS関連の脆弱性問題をテーマにした弊社ブログ記事を、以下で公開しておりますのでぜひご一読ください。
SSL/TLSの脆弱性問題に関するブログ記事