SSLとTLSの違いと脆弱性

SSL(Secure Sockets Layer)/TLS(Transport Layer Security)は、インターネット上でデータを暗号化して送受信できるトランスポート層のプロトコルのことです。例えばクライアントとウェブサーバ間のHTTPやFTPなどの通信において、個人情報やクレジットカード情報など機密性の高いデータを、SSL/TLSにより暗号化して安全にやりとりできます。

SSLプロトコルは、バージョンアップを重ねた後、SSL3.0を元にしたTLS(Transport Layer Security)1.0がRFC (*)として定められました。SSL3.0とTLS1.0は大枠の仕組みは同じですが、SSLという名称が既に普及しているため、RFCにおける最新バージョンはTLS1.2ですが、一般には「SSL」や「SSL/TLS」と表記することが多くなっています。

  • * RFC: 「Request For Comment」の略。インターネット関連技術の標準化団体IETFが発行する通し番号を付けた文書のこと。インターネットに関連するプロトコルや技術仕様を公開している。

OpenSSLは、SSL/TLSプロトコルの、オープンソースで開発・提供されるソフトウェアで、Unix系OSをはじめとする多くの環境でSSL/TLSを利用した暗号化通信を実装する上での、デファクトスタンダードになっています。
OpenSSLは、SSL/TLSを利用した暗号化通信を実装するソフトウェアです。オープンソースで開発・提供され、Unix系OSをはじめとする多くの環境で、デファクトスタンダードになっています。
2014年から2015年にかけて、OpenSSLおよびSSL/TLSプロトコルの脆弱性が幾つか発見されました。これらはSSLサーバ証明書の脆弱性ではありませんが、OpenSSLを利用するウェブサーバ管理者が、脆弱性対策のためにOpenSSLをアップグレードし、またSSLサーバ証明書を入れ替えしなければいけないケースも存在しました。

  • Heartbleed

    2014年4月7日、セキュリティ研究者チームはOpenSSL暗号ソフトウェアライブラリにおける深刻な脆弱性「Heartbleed Bug」を発見したことを発表しました。この脆弱性は、悪意を持った第三者(攻撃者)がOpenSSLソフトウェアの脆弱なバージョンで保護されたシステムメモリー上にある大量のデータを読み取り、暴露することを可能にします。
    対策としてはOpenSSLのバージョンを最新のバージョンまでアップグレードし、新しいCSRでSSLサーバ証明書を再発行する必要があります。

    参考: https://knowledge.symantec.com/jp/support/ssl-certificates-support/index?page=content&id=ALERT831

  • POODLE

    2014年10月にGoogle社からSSLバージョン3.0(以下「SSL3.0」)に関する深刻な脆弱性(CVE 2014-3566、通称『POODLE』)が報告されました。攻撃者がこの脆弱性を悪用し中間者攻撃(MITM)によって、エンドユーザのパスワードやクッキーにアクセスし、ブラウザとウェブサーバとの間でやりとりされるユーザの個人情報や機密情報を盗聴、漏えいさせることが可能になります。
    この脆弱性はSSLサーバ証明書やSSL関連製品に関する脆弱性ではありませんが、ウェブサーバ管理者がこの脆弱性を利用した攻撃への対策として、SSL3.0あるいはSSL3.0 CBCモードを利用できないよう設定変更する必要があります。

    参考: https://knowledge.symantec.com/jp/support/ssl-certificates-support/index?page=content&id=AD969

  • FREAK

    2015年3月にSSL/TLSプロトコルの複数のライブラリに脆弱性が存在し、通信内容を盗聴したり改ざんする中間者攻撃「Factoring attack on RSA-EXPORT Keys(通称『FREAK』)」が可能となることがわかりました。この脆弱性はSSL/TLSプロトコルのライブラリに関する脆弱性で、既存のSSLサーバ証明書やコードサイニング証明書への影響はありませんが、利用しているウェブサーバの種類(Apache、IIS、nginx等)に関わりなく、Export Cipherが使われている環境の脆弱性が指摘されているため、該当する場合は、ウェブサーバ側で無効化する設定を行い、ウェブサーバの再起動が必要になります。

    参考: https://knowledge.symantec.com/jp/support/ssl-certificates-support/index?page=content&id=ALERT1681