誰でも簡単!SSLのセキュリティホールのチェック方法




SSLの利用者の立場として共通して言えることは「SSLは(業者に依存して)わからない」というところではないでしょうか。インスペクション方法を覚えておくとSSLの悩みがだいぶ減ると思います。

この記事ではSSLのセキュリティホール、セキュリティレベルのチェック方法を紹介いたします。紹介するツールは誰でも簡単に利用でき、しかも無料です。

1. SSLのセキュリティ

いうまでもなく、SSLはインターネットのセキュリティ対策に用いるものです。ホームページの通信データを暗号化して、安全にページを表示してくれるものであることは、この記事を読んでいる方ならご存知でしょう。

でも、シマンテックに対するGoogleの警告問題を見聞きすると、SSLサーバ証明書を選ぶときは悩みどころですね。あとレンタルサーバなど設置業者やサーバによって設定レベルはまちまちです。高価なSSLサーバ証明書も設置方法によって致命的なセキュリティホールができて台無しになる場合もあります。

SSLのセキュリティを考える利用者の立場として、共通して言えることは「SSLのセキュリティはわからない」というところではないでしょうか。いま私たちが求めているものは何でしょうか。そう、SSLのセキュリティのチェック方法です。

誰でも簡単に行えて、しかも無料で行えるSSLのセキュリティホール、セキュリティレベルのチェック方法を覚えて、SSLの悩みを減らしましょう。

知識の捕捉)SSLとは

SSLはHTTPやFTP、SMTPなどの通信の保護を行う通信プロトコルです。SSLは1990年代中頃に開発され、バージョンはSSL1.0、SSL2.0、SSL3.0、TLS1.0(SSL3.1)、TLS1.1(SSL3.2)、TLS1.2(SSL3.3)、TLS 1.3(SSL3.4)と上がっています。

TLSはSSLの新しいバージョンの名前ですが、記事ではSSLとTLSを区別せずにSSLと呼ぶことにします。SSLサーバ証明書はSSLの通信でサーバを証明する証明書です。SSLサーバ証明書のことをSSLと呼ぶこともありますが、記事ではSSLサーバ証明書はSSLサーバ証明書と呼ぶことにします。

2. SSL Labs

本記事で紹介するSSLのセキュリティチェックで使用するツールは米国のセキュリティ企業Qualys社が提供する「SSL Labs」です。SSL LabsはSSLのセキュリティを考える利用者にとって、強力なツールです。

URL)https://www.ssllabs.com/ssltest/

「Hostname:」チェック対象のホームページのURLを入力して、「Submit」ボタンを押せばチェックが行えます。

ツールを使って、結果を調べることでSSLの知識も補えます。はじめは難解なところも多いと思いますので、SSLのセキュリティレベルのチェック、SSLのセキュリティホールのチェックの解説を行いながら基礎知識を捕捉していきます。

知識の捕捉)SSLの必要性

SSLはセキュリティ対策に必要不可欠です。またセキュリティ対策以外の理由でも必要といわれるようになってきています。SSLはホームページ以外にも利用されますが、ここではホームページでのSSLの必要性をあげてみます。

SSLはホームページのセキュリティ対策に必要

ホームページを表示するデータはブラウザとサーバ間をhttpで通信してデータのやり取りをします。通信経路ではいくつかの機器を経由して通信します。

httpでは暗号化や改ざん検出の機能がないため、通信経路で盗聴や改ざんに無防備で安全な通信ではありません。いつ被害に遭うかわからないだけでなく、被害に遭ってもわからないです。SSLで通信を保護する必要があります。

SSLはセキュリティ以外の懸念解消

ホームページの集客を考えるうえで検索エンジンからの流入は大きなテーマです。2014年、検索エンジン大手のGoogleが「SSL導入サイトを優遇する」と発表しました。また最近ではGoogle ChromeなどのブラウザがSSL化されていないページを「安全ではないサイト」と表示するようになっています。セキュリティ面以外に集客面でも必要といわれるようになってきています。

3. SSLのセキュリティレベルのチェック

SSL Labsの「SSL Server Test」では、総合評価として「A+」「A」「A-」「B」・・・「F」のようにSSLのセキュリティレベルを表示してくれます。

これはわかりやすいですね。ちょっと詳細は難解ですけれど、ひとまずSSLのセキュリティレベルは誰でも把握できてしまいます。

クレジットカードを利用する前にサイトのチェックが行えますね。またレンタルサーバを選ぶときはサービスのホームページをチェックすればどこがどのくらいの設定をしてくれるかおおよそかわかると思います。社内担当や外注業者に設置してもらった後、即座にツールにかけて問題があることを指摘できます。

知識の捕捉)SSLのセキュリティ上の役割

SSLの役割は、認証、暗号化、改ざん検知です。

実在証明

通信経路での攻撃により不正サイトにすり替えられては困ります。正しいサーバかどうか証明することが必要です。

SSLサーバ証明書はサーバの実在証明に使われ、クライアントを証明する必要がある場合はクライアント証明書も使われます。信頼性を確保するため証明書は認証局が発行したものを使います。

通信データの暗号化による盗聴と改ざんの防止

SSLでは通信データを暗号化します。また改ざんがあった場合にエラーとなる仕組みもあります。

4. SSLのセキュリティホールのチェック

SSL Labsの指摘をみて学習していけるよう、実際にSSL Labsで表示されたSSLのセキュリティホールについて捕捉しながらツールの知識を補っていきます。

SSLのセキュリティホールの分類

SSL Labsの評価項目は以下です。0~100で採点され、合計80点以上がAとなります。

  • Certificate・・・証明書
  • Protocol Support・・・サポートされているプロトコル
  • Key Exchange・・・鍵交換
  • Cipher Strength・・・暗号強度

SSLのセキュリティの問題(セキュリティホール)はこれらの項目に分類されます。

証明書の項目がありますので、思い悩んでいたSSLサーバ証明書はどれにするか?の問題の参考にもなります。以前シマンテックグループのGoogleの指摘の問題もSSL Labsが指摘してくれました。

また評価項目にも表れていますが、SSLのセキュリティはどの証明書を使用するかだけではありません。簡単に言うと証明書の項目は4つあるうちの1つ、その他は証明書選び以外のサーバや設定の問題となります。

Certificate(証明書)のセキュリティホール

Certificate(証明書)に関連したセキュリティホールについてみていきます。

上のイメージは上述したシマンテックグループに対するGoogleの警告問題の指摘例です。高価な証明書を購入しても認証局の内部プロセスに問題があるとセキュリティホールになってしまう恐れがあります。

どの認証局も内部についてはわからないですが、無料のLet’s Encryptが採用するACMEプロトコルは内部プロセスが公開されているのでその部分で少々安心かもしれません。

Protocol Support(サポートされているプロトコル)

Protocol Support(サポートされているプロトコル)に関連したセキュリティホールについてみていきます。

上のイメージはOpenSSLの脆弱性(CVE-2014-0224)がある場合の例です。SSLを利用するサーバのソフトウェアもSSLのセキュリティホールの要因になってきます。

Key Exchange(鍵交換)

Key Exchange(鍵交換)に関連したセキュリティホールについてみていきます。

上のイメージは「Forward secrecy」実施されていない場合の例です。SSL Labsでは「This server does not support Forward Secrecy with the reference browsers. Grade capped to B.」のように表示されます。

秘密鍵の交換のときにその鍵が読まれてしまったらデータが守れません。Forward securityは長期鍵の安全性が破れたとしてもセッションキーの安全性が保たれるという、1つの鍵が破られたとしても被害が他に及ばないようにする設定です。

Apache2.4x以降、Nginx 1.0.6+以降で設定できるようになりました。パッチを当てればそれ以前でも設定できるかもしれません。つまり、この問題は、ソフトウェアのバージョンが古い、SSLの設定の不備があるとセキュリティホールになってしまいます。

Cipher Strength(暗号強度)

Cipher Strength(暗号強度)に関連したセキュリティホールについてみていきます。

上のイメージは強度の弱いcipher suitesを設定している例です。SSLの設定の不備があるとセキュリティホールになってしまいます。

知識の捕捉)SSLサーバ証明書の認証の違い

信頼性を確保するため証明書は認証局が発行したものを使います。サーバの実在証明に使われるSSLサーバ証明書にはその審査方法により3種類あります。

ドメイン認証:DV(Domain Validation)

SSLサーバ証明書を発行する際にドメインの使用権を確認してサーバ証明書が発行されます。認証には対象ドメインが有効なホームページにファイルアップロードや、対象ドメインのメールが確認されます。

企業認証:OV(Organization Validation)

ドメインだけではなく、運営する企業の実在性を確認して発行されるサーバ証明書です。以下の確認が行われます。

  • ドメイン名登録名義
  • 「登記事項証明書」または「第三者データベース」
  • 電話による申請者の在籍と申請意思
  • EV SSL証明書

    企業認証のプロセスに加えて、所在地などの確認も行われます。ブラウザのアドレスバーが緑になり、Webサイトの運営組織が表示されます。

    まとめ

    この記事では知識を捕捉しながら、SSL Labsというツールを紹介いたしました。

    SSLのセキュリティを考えるうえで、〇〇社のDVがいいかEVがいいかなど、どのSSLサーバ証明書にするかに目が向いてしまいがちです。

    しかし、1/4しか考慮できていないことが実感できたと思います。SSLサーバ証明書だけでなく、サーバのソフトウェアやSSLの設定方法によっても変わってきます。

    ただSSLサーバ証明書やマネージドサーバなどソフトウェアもSSLの設定も外部任せになります。SSLの利用者の立場として共通して言えることは「SSLはわからない」というところではないでしょうか。

    そう考えると今回取り上げたSSL Labsは誰でも簡単に無料で使える強力なツールではないかと思います。ぜひ活用してみてください。