以前にSSLをグーグルで検索したことがあるなら、おそらくTLSという用語も見たことがあるでしょう。SSLとTLSは非常に密接に関連しているため、同じ意味で使われることがあります。実際、TLSはSSLのアップグレード版と考えることができます。どちらのプロトコルも同じレベルで情報を暗号化しますが、他の技術と同様に、時間とともに進化していきます。

SSL(Secure Sockets Layer)とTLS(Transportセキュリティ Layer)は、どちらもウェブサーバとユーザーのウェブブラウザ間の通信を暗号化するためのプロトコルです。SSLもTLSも、公開鍵と秘密鍵を交換することでこれらの通信を暗号化し、安全なセッションを構築します。TLSは、秘密鍵のMAC関数生成に若干異なる暗号アルゴリズムを使用し、その前身であるSSLよりも多くの警告コードを含んでいます。

SSL 2.0

SSLの最初の実用バージョンであるSSL 2.0は、Netscape社によって設計され、1995年にリリースされました。しかし、SSL2.0には脆弱性が見つかったため、Netscape社はより優れた安全なバージョンを設計する必要がありました。SSL 3.0はその1年後にリリースされました。2014年秋にGoogleのセキュリティチームによって重大なセキュリティ脆弱性が発見されるまで、SSL3.0は広く使われていました。

SSLからTLSへの移行

TLSは、1999年にSSL 3.0のプロトコルをアップグレードする形で設計されました。この違いは劇的なものではありませんが、SSL 3.0とTLS 1.0が相互運用できないほどの大きな違いです。SSL 3.0はTLSよりも安全性が低いとされています。

TLS 1.1は2006年に作成され、TLS 1.2は2008年にリリースされました。TLS 1.2は、現在使用されているバージョンです。TLS 1.3は、2015年1月現在、ドラフト版が公開されていますが、まだリリースされていません(追記:2018年8月にリリースされました)。他のプロトコルのアップグレードと同様に、TLSは、それぞれのバージョンで悪用を阻止し、脆弱性を緩和するための対策が追加されているためSSL 3.0よりも安全性が高いと考えられています。

POODLE およびその他の SSL 脆弱性

SSL 3.0が廃止されようとしている理由の一つは、既知の脆弱性が多数存在することです。Googleのあるチームが2014年に「POODLE」という大きな問題を発見しました。

POODLEの脆弱性は、クライアントやサーバに組み込まれたSSL 3.0のフォールバックを利用しています。基本的に、この攻撃はSSL 3.0の使用を強制し、これを使用してセッションコンテンツの一部を復号化します。これを1バイトずつ行うことで、サーバとクライアントの接続の大部分が明らかになります。POODLE攻撃は、cipher-blocking chaining(CBC)モードの暗号とSSL 3.0をサポートするすべてのシステムで使用することができます。

POODLE以前にも、BEASTやBREACHのようなSSLプロトコルの脆弱性がありました。 2002年に発見されたBEASTは、TLS 1.0およびそれ以前のプロトコルにおけるCBCの脆弱性を浮き彫りにしましたが、2011年になるまで実用化されなかったため、MicrosoftやApple、ブラウザは回避策を講じることになりました。

BREACHは、HTTP圧縮を利用してHTTPSを悪用するもので、2013年に発表されました。クライアントとサーバは、クロスサイトリクエストフォージェリの保護機能を使って脆弱性を回避する必要がありました。

SSLとTLS:違いは何ですか?

これまで見てきたように、SSL3.0には長年にわたりセキュリティ上の問題があり、より安全なソリューションが必要でした。他の技術のアップデートと同様に、各バージョンには違いがありますが、最終的な製品はエンドユーザーにとっては同じです。SSLやTLSという言葉は、プロトコルの異なるバージョンを指しているのでなければ、通常は同じことを言っています。

プロトコルとしては、情報を同じ方法で暗号化し、最も基本的なレベルでは同じことを行うため、SSLとTLSという用語は同じ意味で使用されます。TLSは、SSLのシンプルでアップグレードされた、より安全なバージョンです。TLSは、今日ウェブ全体で広く使用されており、トランザクションセキュリティの最上位の選択肢です。サーバ上で、すべてのバージョンのSSLとTLSを同時に有効にすることができます。

すべてのデジサート証明書は、SSLおよびTLSプロトコルに対応しています。しかし、SSL 3.0~TLS1.1には顕著な脆弱性があるため、まだTLS1.1以下を無効にしていない場合は、サーバ上でTLS1.1以下を完全に無効にすることをお勧めします。古いプロトコルを無効にしてTLS1.2以上を有効にすることで、管理者は脆弱性のない同レベルの暗号化を受けることができます。どのSSL/TLSバージョンを有効にしているかわからない場合は、「Certificate Inspector」を使用して、脆弱性スキャンや分析などを行うことができます。

UP NEXT
セキュリティ 101

このサイトで買うべきでしょうか?ウェブサイトが安全かどうかを確認する方法

5 Min

特集記事

証明書ライフサイクル管理の自動化に向けた 3 つの鍵

03-06-2024

S/MIME の導入を阻むハードルを乗り越える

S/MIME ソリューションに求める 3 つの重要な要素、および S/MIME ソリューションが必要な理由

Entrust社の証明書誤発行問題から分かること