公開日:2015/05/12 最終更新日:2015/05/12

JVNTA#98308086
End-to-End 通信の保護

概要

プライバシー保護や一部の中間者攻撃を防ぐためには、End-to-End の通信を保護することが重要です。中間者 (man-in-the-middle) 攻撃によって通信データ中にコードを挿入され、世界中の、セキュリティが十分でないウェブブラウザが、ユーザの気づかないうちに DDoS 攻撃の踏み台にされる事例が報告されています。また、同じ手法で、特定の脆弱性を使用した攻撃や、それ以外の任意の動作を指示される可能性もあるとのことです。

影響を受けるシステム

詳細情報

中間者攻撃では、クライアントとサーバの間の通信を第三者が中継します。この攻撃手法自体は目新しいものではなく、ARP スプーフィングのような古典的な攻撃では、通信経路を変更することがその目的になります。ネットワーク環境が攻撃者の制御下におかれた場合、中間者攻撃に対して脆弱であることは明らかですが、技術の進化に伴って中間者攻撃の手法も進化しています。

現時点では、全ての中間者攻撃を防ぐような万能な技術や構成というものはありません。しかし多層防御を実践することによって攻撃者のコストを増加させることはできます。攻撃者の時間的、労力的、金銭的なコストを増加させることは、攻撃に対する有効な抑止力となります。

一般に暗号化やデジタル署名は、通信の機密性と完全性を担保することにより、中間者攻撃に対する効果的な保護手段となります。そのため、最近の中間者攻撃では、ウェブブラウザの証明書ストアや認証局といった仕組みの弱点、さらに暗号化アルゴリズムや通信プロトコル自身の弱点が狙われています。

想定される影響

中間者攻撃により、機密情報漏えいや通信データ改ざんを含む様々な影響を受ける可能性があります。

対策方法

ネットワークレイヤでの対策やブラウザでの対策など、複数の防御手法を組み合わせて対策を行ってください。
中間者攻撃の影響を軽減するため、US-CERT では次のような対策の検討を推奨します。

TLS 1.1 以降を使う
ネットワーク通信では TLS 1.1 以降を使用し、必要のない限り TLS 1.0 や SSL1、2、3.x での通信を無効にしてください。TLS 1.0 クライアントは SSL 3.0 にフォールバックさせることができるため、Cypher-Block Chaining (CBC) モードのブロック暗号を使用している場合 Padding Oracle On Downgraded Legacy Encryption (POODLE) 攻撃の影響を受けます。影響を受ける TLS 実装は、製品開発者が提供するパッチの適用によって対策が可能です。影響を受ける製品およびその開発者の情報については JVNVU#98283300CERT/CC Vulnerability Note VU#577193CVE-2014-3566 を確認してください。POODLE 攻撃については US-CERT Alert (TA14-290A) も参照してください。

Certificate Pinning 機能を使う
Certificate Pinning とは、公開鍵とその X.509 証明書を特定の CA やルート CA と紐づける手法です。通常、証明書を確認する場合には、その証明書から信頼するルート CA 証明書につながる証明書チェーンを検証します。Certificate Pinning では、この検証手順の代わりに、ユーザが指定した単一の証明書またはその証明書で署名された証明書のみを信頼します。Certificate Pinning を有効にする方法については次を参照してください。

Microsoft Certificate Trust
Microsoft Enhanced Mitigation Experience Toolkit (EMET) 5.2 では、中間者攻撃対策として、"Certificate Trust" という機能が実装されています。この機能を使うには、保護したいウェブサイトのリストとそれらに対する certificate pining rule を設定します。GUI の Certificate Trust Configuration 機能から設定するか、あるいは Configuration Wizard を使って推奨設定を適用することも可能です。

ウェブブラウザに実装された Certificate Pinning
Google Chrome や Mozilla Firefox などのウェブブラウザでは、HTTP Strict Transport Security (HSTS) を使用した Certificate Pinning 機能を実装しています。この機能では、あらかじめ公開鍵のハッシュ値を保持しておき、これらの公開鍵で署名された証明書のみを信頼します。Chrome では、Verisign、Google Internet Authority、Equifax、GeoTrust などの公開鍵リストを持っており、Google サービスでアクセスするサーバ証明書はこれらの公開鍵リストを使って検証されます。

Firefox では、デスクトップ版の Firefox 32 以降 (Android 版の Firefox 34 以降) で Certificate Pinning 機能を実装しています。また、ドメインと公開鍵の対応を設定することも可能です。Firefox の Certificate Pinning 機能の詳細については mozilla wiki の SecurityEngineering/Public Key Pinning をご確認ください。

DNS-based Authentication of Named Entities (DANE) を使う
DANE は Domain Name System Security Extensions (DNSSEC) を使用して、有効な証明書に関する情報を提供するプロトコルです。The Internet Engineering Task Force (IETF) の DANE ワーキンググループでは、DANE のための新たな DNS レコードを規定しています。Google Chrome や Mozilla Firefox で DANE をサポートするアドオンが存在します。

Network notary server を使用する
Network notary server は、認証局に依存することなく通信のセキュリティを向上させることを目的としています。各 Network notary server (あるいはサーバ群)は公開されており、公共機関や一般企業だけでなく個人で運用することもできます。これらのサーバは、定期的にウェブサイトを巡回し、各ウェブサイトの証明書データの履歴を記録します。notary アドオンをインストールしたウェブブラウザでは、ウェブサイトにアクセスして証明書情報を取得すると、ユーザの指定した network notary server からそのウェブサイトの証明書データの履歴を取得します。ウェブサイトが提示した証明書情報が network notary server から得られた履歴と矛盾する場合、中間者攻撃が仕掛けられている可能性があるとわかります。

ベンダ情報

参考情報

  1. Japan Vulnerability Notes JVNVU#98283300
    SSLv3 プロトコルに暗号化データを解読される脆弱性(POODLE 攻撃)
  2. CERT/CC Vulnerability Note VU#577193
    POODLE vulnerability in SSL 3.0
  3. National Vulnerability Database
    Vulnerability Summary for CVE-2014-3566
  4. US-CERT Alert (TA14-290A)
    SSL 3.0 Protocol Vulnerability and POODLE Attack
  5. Internet Society Deploy360 Programme
    How To Add DNSSEC Support To Google Chrome
  6. CZ.NIC, z.s.p.o.
    DNSSEC/TLSA Validator add-on for Web Browsers

JPCERT/CCからの補足情報

JPCERT/CCによる脆弱性分析結果

謝辞

関連文書

JPCERT 緊急報告
JPCERT REPORT
CERT Advisory US-CERT Alert (TA15-120A)
Securing End-to-End Communications
CPNI Advisory
TRnotes
CVE
JVN iPedia