本サイトのHTTPS化に伴い、HTTPSの通信の仕組みについてご紹介しました。

この記事の中で「最新の技術はSSLではなくてTLS」とご紹介していました。
ただ、「SSLとTLSの違いは?」や「SSLとTLSの歴史」などを分かっていなかったので、今回調べてみました。
SSLとTLSの歴史
まず、SSLとTLSはほとんど同じです。なぜなら、TLSはSSLをもとに作られたからです。
違いをご説明する前に、まずはどのような流れでSSLやTLSが作られたかの歴史についてご紹介します。
SSLはNetscape社が開発
SSLはアメリカのNetscape社が開発したものです。Netscape社は「Netscape Navigator」というWebブラウザを開発した会社です。
一時期は「ブラウザと言えば、Netscape Navigator」というほど、普及していたブラウザです。
参考 ネットスケープナビゲータはそれからどうなったのか~20世紀末ブラウザ興亡史~
Netscape社はまず、SSL1.0を開発しました。しかし、製品を公表される前にSSL1.0の脆弱性が見つかったため、世の中にSSL1.0が出回ることはありませんでした。
その後、SSL1.0を改良したSSL2.0が1994年にリリースされてSSLが普及していきます。その後SSL3.0も開発され、1999年にはSSL3.0をもとにしたTLS1.0が開発されました。
ここで疑問が出てきます。普通ならSSL3.0の後にSSL4.0とすれば良いのものを「なぜSSLからTLSに名前が変わったか」ということです。
TLSはIETFが開発
実は、SSL3.0まではNetscape社が作っていましたが、TLS1.0はIETFという団体が開発しました。
IETF(Internet Engineering Task Force)とは、インターネット技術の標準化を推進する団体のことです。
IETFは、SSL3.0を標準化してバージョンアップさせることでTLS1.0を開発しました。そのため、TLS1.0は、IETFからインターネットの技術仕様「RFC2246」として公開されています。
SSLはもう使われていない技術
SSLとTLSの違いと聞かれると、SSLは古い技術であり、既に使われていません。現在、「https」などに使われている技術はTLSです。
SSLが使われていない理由は、脆弱性があるためです。SSLの最後のバージョンであるSSL3.0は2014年にGoogleの技術者によって、POODLEという脆弱性が発見されました。(リサーチペーパー)
POODLEとは、「暗号化に必要な鍵を知らない第三者が、大量通信や中間者攻撃によって、暗号化されたデータを解読してしまう」というものです。
そのため、FirefoxやChromeなど主要なブラウザではSSL3.0がデフォルトで無効となっています。
参考 Google、「Chrome 40」でSSL 3.0を完全無効化
呼び方はTLSではなく、SSLのまま
SSLは既に使われていない技術ですが、SSLという名前が世の中に普及しているため、TLSではなく、「SSL」や「SSL/TLS」と表記されることが多いです。
シマンテックのように、TLSの仕様に対応しているが「SSLサーバ証明書」という名前でサービスを展開している企業もあります。
急にSSLがTLSと呼ばれた場合の混乱なども考慮して、上記の対応としているそうです。
TLSの最新バージョン
2017年11月現在のTLSの最新バージョンは1.2です。ただ、TLS1.2が公開されたのは2008年のことであり、かなり昔に制定されています。(RFC4492)
現在TLS1.3が開発されており、Googleなどの企業が実験的に使用しているようです。ただ、うまく通信ができなくなってしまうなどの問題が生じているようです。
参考 日本最大級のHTTP/2移行、TLS 1.3、そしてQUICについてヤフーに聞いてみた!
参考 the register
まとめ
SSLとTLSの違いについてまとめると、以下となります。
- 技術的な違いはほとんどない(SSLに少し機能を付加したのがTLS)
- SSLは1会社が開発、TLSはIETFという標準団体が仕様制定
- SSLは既に使われていない技術
- SSLと呼ばれていても、使用されている技術はTLSという場合もある
SSLは既に古い技術であるため、いつかTLSの認知度が高まると、SSLという言葉がなくなり、TLSという表記に統一されるかもしれませんね。
コメント