いまさら聞けない【情シス知識】SSLとTLSって何?
Google検索におけるページランクのアルゴリズムやChromeの安全性を高めるための手段として、「サイト内の混合コンテンツを段階的にブロックする」と発表がされたことで、注目を集めています。
そもそも、SSL/TLSって何?
SSL/TLSを一言で表すなら、「インターネット上で通信を暗号化する技術」になるでしょうか。「安全に通信をするためのセキュリティプロトコル」と言えば、ちょっとかじった感がでるでしょうか。
インターネット上では、住所、氏名、電話番号、メールアドレスなどの個人情報はもちろんのこと、クレジットカード番号、各種パスワードといった重要な情報が毎日頻繁に送受信されています。
一方で、このような重要情報を狙った通信データ盗聴などのインターネット犯罪は絶えません。
このことからもウェブサイトの「安全性」は備えるべき必須条件の1つとなっています。
そこで求められるのが、世界標準のセキュリティ技術であり、今回解説するSSL(エスエスエル:Secure Socket Layer)とTLS(ティーエルエス:Transport Layer Security)なのです。
そもそもこの二つのプロトコル、一体どんなものなのでしょうか。
SSL/TLSの歴史
登場の背景
セキュリティプロトコルが開発された背景には、インターネット利用者の拡大があります。
インターネットができた当初は、セキュリティに対する配慮はほとんどありませんでした。 それはインターネットの利用が性善説の上に成り立っていたからです。通信の根幹となるプロトコルは、(知識のある)第三者による盗聴や改ざんが可能でした。(根幹となるプロトコルは変わっていないので、実は現在も安全とは言い切れない側面もあります)
主に大学や研究機関が使用していた1990年台初期までは問題になりませんでしたが、インターネットの商用利用の拡大と共に、不特定多数が利用するような状況となり、セキュリティにも配慮する必要が出てきました。
このために、セキュリティを必要とする通信のために作られたのがSSL、すなわちSecure Sockets Layerなのです。
SSLとTLS、これらは本質的には同じプロトコルではあるものの、2つの名前がついているのにはきちんとした理由があるのです。
違いはその生い立ちを見ていくとわかりやすいかもしれません。
SSLの誕生
SSLは1990年代中頃、当時の主要なブラウザであるNetscape Navigatorを制作していたNetscape社で開発されます。SSLプロトコルの最初のバージョンである「SSL 1.0」は、プロトコル自体に重大な欠陥があったため、公開されることはありませんでした。
SSL 1.0に改良を加えた「SSL 2.0」が1994年11月にリリースされ、Netscape Navigator 1.1に実装されました。SSLが認知されるきっかけともいえます。
しかしながら、この「SSL 2.0」にも重大な脆弱性が発見され、そのために、Netscape社は次の新たなプロトコル開発に着手をします。
そして1995年11月に「SSL 3.0」がリリースされます。実は名前こそSSLがついていますが、設計思想は大きく見直され、のちに紹介するTLSプロトコルの基本設計となります。
その後、約10年の時を経た2014年9月、「SSL 3.0」にもに仕様上の脆弱性が発見されました。その対処法はなく、「SSL 3.0」を無効化することしか解決できませんでした。そのため、2015年6月にはIETF(インターネット技術タスクフォース:インターネットで利用される技術の標準化を策定する組織)によって「SSL 3.0」の使用は禁止されています。
SSLからTLSへ
SSL 3.0のリリース後、業界には大きな変化がありました。1996年5月、SSLの開発はNetscape社からIETF(TLSワーキンググループ)へ移管されました。安全なインターネット通信を実現するためのセキュリティプロトコルとして広く使われ始めたSSLですが、中立性を保ち、セキュリティの専門家を交えた第三者機関で開発するためです。当時は、Netscape社のNetscape NavigatorとMicrosoft社のInternet Explorerでブラウザにおける激しいシェア争いが行われていたことが、その大きな理由です。
そうして1999年1月、「TLS 1.0」がリリースされ、SSLからTLSへと移行しました。実際、「SSL 3.0」との違いはわずかでしたが、両バージョンに互換性はありません。
また、2006年4月にはTLSの改良として「TLS 1.1」がリリースされ、過去の攻撃手法に対応することを目的としたセキュリティ強化が行われています。
2008年8月には「TLS 1.2」がリリース。ハッシュのアルゴリズムにSHA-256が追加されるなど、脆弱性のある古い仕組みの排除だけでなく、最新の暗号化に対応するなど、更なる安全性を求めた改良が行われました。
2018年8月、現時点での最新版として「TLS 1.3」がリリースされています。TLS 1.2からの変更点としては、データ圧縮の非サポート、forward secrecyではないcipher suite(RSAのみを用いたもの)及び認証付き暗号ではないcipher suite(CBCモードのブロック暗号やRC4を用いたもの)の廃止が挙げられます。余談ではありますが、TLS 1.3への変更に際し、名称の変更も検討され、TLS 2.0やTLS 4等の候補があったようですが、最終的にTLS 1.3に落ち着いたそうです。
おさらい:SSLとTLSの違い
前述の歴史をご理解いただければ、SSLとTLSの違いはすでにお分かりになっていることでしょう。”TLSはSSLの次世代規格”と覚えておくのが良いと思います。そして現在は”技術としてのSSL”は存在しておらず、「インターネット上で安全に通信をするためのセキュリティプロトコル」にはTLSが用いられているのです。
しかしながら、今でも「SSL」という言葉は使われています。これは「インターネット上で安全に通信をするためのセキュリティプロトコル」であったSSLが、唯一無二の存在だったために普通名称化してしまったからと考えられます。
例えば、ソニーが商標登録している”Walkman(ウォークマン)”という商品名は、その存在がマーケットを作り出したことから、ポータブルカセットプレーヤーとは呼ばれずに”Walkman”と呼ばれることが多く、いくつかの国では普通名称として認定されています。(他にはエスカレータやクリネックス、魔法瓶など)
少し話がそれてしまいましたが、現在「SSL」と呼んでいるものは、実質「TLS」のことであり、場合によってはその両方をふまえて「SSL/TLS」と表記されることもあります。しかしながら、技術的には別物ですので、そこは各自がわきまえて使いましょう。
【執筆:編集Gp ハラダケンジ】
<参考文献>
■フリー百科事典『ウィキペディア(Wikipedia)』:Transport Layer Security
■さくらのSSLコラム:SSLとTLSの違いとは