進む常時SSL化とその落とし穴

7回目-1

WebサイトのすべてのページをSSL暗号化する「常時SSL化」が急速に進んでいます。Webページとクライアント間の通信をSSL暗号化することで、通信を盗聴しても内容がわからないようにできます。そのため、これまではショッピングサイトの決済ページや企業の採用応募ページ、記名式の問い合わせページなど、個人情報やクレジットカード情報などを入力するページがSSL暗号化されていました。

常時SSL化が進んでいる背景には、それを推進するGoogleがSEOにおいてSSL暗号化サイトをより評価すると発表したことや、SSLサーバ証明書の種類が増えて、より安価な証明書を使用できるようになったこと、さらには「Let’s Encrypt プロジェクト」など無料SSLプロジェクトの台頭などが挙げられます。もちろん、モバイル端末の増加や国家に対する盗聴の不安といった背景も考えられます。

また暗号化の観点では、2016年から2017年にかけてアルゴリズムが「SHA-1」から「SHA-2」へ移行するという大きな動きがあります。CPUの高速化などによって、SHA-1アルゴリズムの暗号は容易に解読されてしまうようになったため、より強固なSHA-2を最低限の暗号化アルゴリズムにするというものです。例えばマイクロソフトでは、SHA-1を2017年以降は使用しないとしていますし、さらなる前倒しも検討しています。

マイクロソフトのセキュリティアドバイザリ

マイクロソフトのセキュリティアドバイザリ
https://technet.microsoft.com/ja-jp/library/security/2880823.aspx

マイクロソフトの動きに合わせ、さまざまなCA(認証局)もSHA-2移行を表明しており、またブラウザベンダーもSHA-2移行を奨励しています。例えばGoogleでは、「Chrome」におけるアドレスバーの警告表示を強化し、SHA-1で暗号化されているページの場合は「×印」や「斜線」が表示されるようになります。これはMozillaの「Firefox」でも同様です。

SSLサーバ証明書だけでなく、2016年はコードサイニング証明書でも大きな動きがあります。コードサイニング証明書とはアプリケーションファイルの発行元を証明するもので、ファイルが改ざんされていないことも証明します。しかしコードサイニング証明書にも厳格な認証を行わないものがあり、マルウェアを埋め込むなど攻撃者に悪用されるケースがあります。

このためマイクロソフトは、「Internet Explorer 9」以降(OSでは「Windows8」以降)にSmartScreen機能を搭載し、同社の持つ動的なリストなどを照合するようになりました。特に厳格な認証が行われるEVコードサイニング証明書では、インストール時に警告が表示されることがありません。一方でドライバソフトの場合、「Windows 10」以降のOSではマイクロソフトのドライバ署名(WHQL署名)がないと原則的にインストールできません。

SSL通信の増加によりセキュリティ機器の負荷増大も

暗号化が進んでいる一方で、ここ最近はSSLの脆弱性が立て続けに発見されています。特に「OpenSSL」に発見された「Heartbleed」の脆弱性は攻撃も数多く行われ、大きな話題になりました。SSLの脆弱性は、古くは「BEAST」や「BREACH」、最近では「POODLE」「FREAK」「DRAWN」などの脆弱性および攻撃が発覚しています。

現在のところ、もっとも安全な暗号化は「TLS 1.2」ですが、これのみとすると一部のいわゆるガラパゴス携帯でサイトを閲覧できなくなるケースもあり、悩ましい状況になっています。

なお、「QUALYS SSL LABS」(https://www.ssllabs.com/ssltest/)というサイトでは、URLを入力することでSSLの安全性をチェックすることができます。

「QUALYS SSL LABS」でFacebookをチェックした結果

「QUALYS SSL LABS」でFacebookをチェックした結果
https://www.ssllabs.com/ssltest/

さらに、最近話題となっているのがSSL通信の増加によるセキュリティ機器の負荷の増大です。IPSやファイアウォールなどといった一般的なセキュリティ機器は、SSL通信を一度復号化しないとチェックすることができません。この復号化にCPUリソースが大きく消費されてしまい、パフォーマンスが大幅に低下します。その割合は「次世代IPS」と呼ばれる製品であっても処理能力が4分の1に低下するといいます。

この状況に対応するには、処理能力の高いセキュリティ機器を導入するか、SSLの終端後に機器を設置するといった対策が必要になります。また仮想化環境でのSSLオフライン化や、DMZでの処理なども提案されています。

常時SSL化はセキュリティの面では非常に有効ですし、新たなプロトコル「HTTP/2」では従来の「HTTPS」よりも高速な処理が可能になると言われています。これからはSSL通信への対策も重要になりそうです。