SSLとは
SSL(Secure Sockets Layer)とは、安全に通信をするためのセキュリティプロトコルです。このセキュリティプロトコルが開発された背景には、インターネット利用者の拡大があります。
インターネットができた当初は、セキュリティに対する配慮はほとんどありませんでした。特に、通信の根幹となるプロトコルは、知識のある第三者が覗こうと思えばと覗けてしまったり、改ざんできてしまったりしました。(根幹となるプロトコルは変わっていないので、実は現在も安全ではありません)
これはインターネットに関わる人々や装置が、すべて紳士のように誠実に振る舞うことが前提の性善説の上に成り立っていたからです。しかし、主に大学や研究機関が使用していた1990年台初期までであれば問題になりませんでしたが、現在のような不特定多数の人々が誰でもインターネットに接続できる状況では、セキュリティにも配慮する必要が出てきました。そのため、セキュリティを必要とする通信のために作られたのがSSL、すなわちSecure Sockets Layerになります。
SSLという言葉をインターネットで検索すると、SSL/TLS という言葉が検索結果として表示されるかと思います。これらは本質的には同じプロトコルではあるものの、2つの名前がついているのにはきちんとした理由があります。
SSLとTLSの歴史
SSLの誕生
SSLは1990年代中頃、当時の主要なブラウザ Netscape Navigator を制作していたNetscape社で開発されました。SSLプロトコルの最初のバージョンである「SSL 1.0」は、プロトコル自体に重大な欠陥があったため、公開されることはありませんでした。
次のバージョンである「SSL 2.0」が1994年11月にリリースされ、実際にブラウザへ実装されたのが 1995年3月にリリースされた Netscape Navigator 1.1でした。しかし、この「SSL 2.0」は外部のセキュリティアドバイザーに全く相談せずに開発されたため、のちに重大な脆弱性が発見されてしまいます。そのために、Netscape社は次の新たなプロトコル開発をしなければなりませんでした。
1995年11月に「SSL 3.0」がリリースされました。名前こそSSLとなっていますが、その設計は根本から見直され、これがのちに紹介する現在のTLSプロトコルの基本設計となります。しかし、「SSL 3.0」も2014年9月に仕様上の脆弱性(POODLE)が発見され、根本的な対処法としては「SSL 3.0」を無効化するしか方法がありませんでした。そのため、2015年6月にはIETF(インターネット技術タスクフォース)※によって「SSL 3.0」の使用は禁止されました。
- ※インターネットで利用される技術の標準化を策定する組織
SSLを引き継いだTLSとは
1996年5月、SSLをNetscape社からIETFへ移管するために、TLSワーキンググループが結成されました。これは当時のブラウザにおいて、Netscape社のNetscape NavigatorとMicrosoft社のInternet Explorerの激しいシェア争いが行われる中、安全なインターネット通信を実現するためにセキュリティプロトコルとして広く使われ始めたSSLを、セキュリティ専門家を交えた第三者機関で開発するための措置でした。
1999年1月、TLS(Transport Layer Security)という名称で「TLS 1.0」がリリースされ、実質SSLからTLSへと移行しました。「SSL 3.0」との違いはわずかですが、両バージョンの互換性はありません。
2006年4月にはTLSの改良として「TLS 1.1」がリリースされ、それまでに発見された攻撃手法に対応することを目的としたセキュリティの強化が行われました。
2008年8月には現時点で最新の「TLS 1.2」がリリースされ、脆弱性のある古い仕組みの排除や、最新の暗号化に対応するなど、安全性を高める改良が行われています。
2017年12月現在、次のバージョンとなる「TLS 1.3」がドラフトとして提案されています。まだ正式な決定がなされていないため、細かな仕様変更が含まれる可能性はありますが、すでに一部のブラウザやWebサーバにて利用が可能となっています。古い脆弱な暗号化が大幅に無効化される予定となっており、安全性をさらに高める改良が行われるようです。
SSLとTLSの違いは?
上記で歴史を振り返ったとおり、TLSはSSLの次世代規格です。現在一般的に「SSL」と呼んでいるものは実質「TLS」を指していることも多く、場合によってはその両方をふまえて「SSL/TLS」と表記されることもあります。厳密に考えると別物ですが、いずれも安全に通信をするためのセキュリティプロトコルだと覚えておくといいかもしれません。
こちらの記事もあわせておすすめ!
本記事ではSSL/TLSの言葉の違いについて紹介しています。実際の利用シーンにおけるSSLの役割や暗号化通信の仕組みについて知りたい場合は『SSLって何?意味や仕組みをわかりやすく解説!』の記事をご覧ください。
また、SSL証明書の役割を分かりやすく説明した『SSL証明書の必要性』の記事や、古いTLSバージョンの無効化について解説した『ついにTLS 1.0/1.1の無効化が決定!影響や確認・対応方法とは?』もおすすめです。