現在使用されているTLSプロトコルには、TLS 1.0、1.1、1.2の3つのバージョンがあります。
TLS 1.0は1999年にリリースされた、約20年前のプロトコルです。BEASTやPOODLEなどの攻撃に脆弱であることが、何年も前から知られており、また脆弱な暗号しかサポートしていないため、現在の通信を十分に安全に保つことができません。
TLS 1.1 は、忘れられた「真ん中の子」です。既知のプロトコルの脆弱性はありませんが、不正な暗号をサポートしています。ほとんどのソフトウェアで、TLS 1.2によってカバーされ、TLS 1.1が使われることはめったにありません。
これらのバージョンは、クライアントで使用されることはほとんどなく、多くのサイトで行われるHTTPS接続のうち、一桁台の割合です。それでもSSL Pulseがモニターしている 150,000 の HTTPS 対応サイトのうち、88% が TLS 1.0 を、85% が TLS 1.1 を有効にしています。
HTTPS を支えてきた古いバージョンのプロトコルの使用をやめる時期に来ていることは明らかですが、インターネット上では、死にかけているのと死んでいるのとでは大きな違いがあります。2018年に入って、(デジサートを含む)多くのウェブサイトやサービスが、ついにTLS 1.0および1.1のサポートを終了します。
この記事を読んでいるほとんどの人、そして実際、インターネット上のほとんどが、現在の最新バージョンであるTLS 1.2を使用しています(TLS 1.3が間もなく登場しますが、詳細は後述します)。これは、暗号学者が推奨し、"モダン "とみなされている唯一のバージョンのプロトコルです。
しかし、一部のユーザーは、古いソフトウェアが原因で、切り替えの準備ができていない可能性があります。2008年にリリースされたにもかかわらず、TLS 1.2のサポートは、しばらくの間、いくつかの主要なプラットフォームやブラウザでは行われていませんでした。インターネットエクスプローラーは、2013年にバージョン11がリリースされるまでTLS 1.2をサポートしていませんでした。また、5.0(2014年リリース)以前のAndroidバージョンは、TLS 1.0しかサポートしていませんでしたが、これは現在も使用されているAndroidデバイスの約18%に相当します。
インターネット上でのTLSプロトコルの使用状況を測定することは非常に困難ですが、ひとつの指標となるのがCloudflareのデータです。Cloudflareは世界最大級のCDNとして、インターネット全体で起きていることをよく把握しています。最近では、同社のネットワーク上のトラフィックの約11%がTLS 1.0を使用していることを発表しました(TLS 1.1を使用しているのはごく一部(0.38%)です)。
さらに判断が難しいのは、コンシューマー向けソフトウェアからのトラフィックが何パーセントあるか、そして、ウェブサーバやAPIエンドポイント、その他のソフトウェアを実行している他のコンピューターからのアクセスが何パーセントあるか、ということです。
TLS 1.0 と 1.1 がインターネット上に存在することは、主にセキュリティ上のリスクとして作用します。これらのプロトコルは、サーバでは、ほぼ全面的にサポートされていますが、クライアントではそうではありません。これらのバージョンを使用する必要があるクライアントは、その欠点に悩まされています。インターネットの一部では、ダウングレード攻撃(既知の脆弱性を利用して、ユーザーに弱いバージョンのTLSを強制的に使用させるもの)にさらされており、実用上のメリットはほとんどありません。これらのサーバのほとんどは、古いバージョンのTLSが「念のため」に残っているか、新しいバージョンを有効にしたときに、誰かが無効にするのを忘れている可能性があります。
TLS 1.0の廃止に拍車をかけている大きな変化は、PCI(Payment Card Industry)基準に対応すべき期限が迫っていることです。この基準は、クレジットカードの取り扱いに関するセキュリティ対策を対象としており、多くの企業に適用されます。2018年6月30日から、ウェブサイトがPCI準拠を維持するためには、TLS 1.0のサポートを停止する必要があります。
次のバージョン(TLS 1.1)は、マイナーな増分アップグレードと見られています。PCI基準では6月以降もTLS 1.1が認められていますが、歴史的にこのバージョンの採用率が低いことから、多くのウェブサイトが両方を同時に廃止することを選択しています。
(補足:2020年上半期に主要ブラウザはTLS 1.0/1.1の対応を終了しています)
これは、一般のブラウザユーザーにとってどのような意味を持つのでしょうか?この変更は、ほとんどの場合、彼らには見えないでしょう。大多数のウェブサイトはすでにTLS 1.2をサポートしており、十分にモダンなブラウザ(過去5年間にリリースされたほとんどのブラウザ)もTLS 1.2をサポートしており、サポートされている最新バージョンを使用することを選択しています。
このことは、主に非ブラウザソフトウェア、API、およびその他のインターネットインフラに影響を与えます。TLS 1.2をサポートしていない古いバージョンの開発ツール(curlなど)は、開発者が直接使用したり、他のソフトウェアにバンドルされている依存関係にあったりして、いまだに広く使用されています。Githubは、TLS 1.0および1.1を無効にした 最初の主要サービスの1つです。彼らは、2月にこの変更を行ったところ、開発者用ツールに多くの不具合があることが判明したそうです。
デジサートは、4月1日よりウェブサイトやAPIを含むすべてのサービスでTLS 1.0および1.1を無効にしました。
多くの主要なウェブサイトやサービスも、2018年中にサポートを終了することを発表しています。KeyCDNは、Cloud.govと同様、3月30日にTLS 1.0および1.1のサポートを終了します。Fastlyは、5月8日にTLS 1.0および1.1のサポートを終了します。クラウドフレアは、6月4日にAPIのTLS 1.0および1.1サポートを無効にします。マイクロソフトのOffice 365は、10月31日からTLS 1.2のみをサポートします。これらは代表的な例に過ぎません。
インターネット上では、TLS 1.0のサポートがようやく終了し、次世代の安全なプロトコルが最終的に決定されようとしています。TLS 1.3は、インターネットエンジニアリングタスクフォースでかなり前から、ドラフト版が作られており、最近ロンドンで開催されたIETF 101ミーティングで承認されました。最終的な審査には数カ月かかると思われますが、その後、クライアントやサーバーのソフトウェアがサポートを追加していく中で、徐々に普及していくことでしょう。
TLS 1.3では、ハンドシェイクの高速化による接続の高速化や、サポートする暗号の簡素化によるプロトコルの複雑さの軽減、安全性の低い暗号の削除など、多くの主要な改良が施されています。
TLS 1.3のドラフト版は、ChromeブラウザやCloudflareなど、主要プロバイダの一部では、かなり前からサポートされています。最近、Cloudflare社は、同社のネットワーク上の接続の2%がすでにTLS 1.3を使用していると発表しました。TLS 1.3が正式なRFCになると、OpenSSLのような主要なソフトウェアパッケージがサポートを追加するため、この新しいバージョンのプロトコルの採用が急増すると思われます。