Comments
Description
Transcript
HTTPSに対する中間者攻撃の現状とその対策
神奈川大学理学部情報科学科 2014 年度学士論文要旨 指導教員:松尾和人 HTTPS に対する中間者攻撃の現状とその対策 瀬戸崎 喬 1 はじめに 近年、インターネット上での商品の売買や、電子決済 などの電子商取引の取引数は年々増加している。このよ うな取引を行う場合、個人情報や取引情報などの重要な 情報のやり取りを行うことになる。また、ウェブサイト にログインする際など、ユーザ認証のために ID やパス ワードをやりとりすることは日常的に行われている。こ のような状況では、HTTPS というプロトコルを利用す る。HTTPS とは、HTTP データを SSL/TLS 通信路を 通すことによって暗号化し、秘匿通信を行うプロトコル のことである。これにより、前述のような重要な情報を 第三者に盗聴・改ざんされないようにしている。しかし、 HTTPS による秘匿通信を破る、中間者攻撃という攻撃 方法が存在する。この攻撃には、攻撃者が自身の証明書 を利用する方法 [1] や、sslstrip [2] など様々な種類が存在 する。 そこで本研究では、このような中間者攻撃に対してブ ラウザが行っている対策と、今後行っていくべき対策に ついて調査する。そのため、まず中間者攻撃を行うため の環境を構築する。そして、HTTPS に対する中間者攻 撃が行われる場合、ブラウザがどのように動作するか調 査する。この調査結果から今後行っていくべき対策につ いて考察する。 2 2.2 Sslstrip [2] Sslstrip は、前述のような偽の証明書を利用しない中間 者攻撃である。この攻撃は、HTTP 接続をしている web ページ内にある HTTPS リンクを HTTP リンクに変更 する方法である。攻撃方法を図 2 に示す。 中間者攻撃 中間者攻撃とは盗聴・改ざん方法の 1 つである。攻撃 者が通信を行う二者間に割り込み、送信者と受信者の両 方になりすますことで、気づかれることなく通信内容の 中身を盗聴したりすり替えたりする手法である。この攻 撃が成功すると、二者間を往き来するデータを全て入手 することが可能となり、攻撃者は通信を完全に支配する ことになる。HTTPS に対する中間者攻撃は様々な種類 のものが存在するが、本研究では攻撃者自身の公開鍵証 明書を利用する方法と、証明書を利用しない sslstrip の 2 つに焦点を当てる。 2.1 者は自身の公開鍵証明書を作成しておく。次に、攻撃者 はユーザとサーバのやり取りを監視する。そして、サー バが HTTPS 接続をするためのサーバ証明書をユーザに 送信しようとした際に、そのサーバ証明書を自身の証明 書とすり替えてユーザに送信する。これにより、ユーザ と攻撃者の間、攻撃者とサーバの間の 2 つの HTTPS 接 続が構築される。ここで、攻撃者は 2 つの HTTPS 接続 に使用する鍵を所持しているため、どちらの暗号化され た通信も復号する事が可能である。したがって、攻撃者 はその通信内容を盗聴することが可能となる。 攻撃者が自身の証明書を利用する攻撃 [1] 攻撃者が自身の証明書を利用する中間者攻撃の大まか な流れを図 1 に示す。 図 1: 攻撃者が自身の証明書を利用する中間者攻撃の流れ この攻撃方法では、攻撃者が中間者としてユーザとサー バの間にいることを前提条件とする。まず、事前に攻撃 図 2: Sslstrip による HTTPS リンク変更攻撃の流れ この攻撃でも、攻撃者が中間者としてユーザとサーバ の間にいることを前提条件とする。ログイン機能などを 実装している web サイトは、ユーザが HTTP 通信によっ て取得するページ内に HTTPS リンクを用意している。 ユーザはこのリンクを利用して HTTPS 接続で別ページ へアクセスする。Sslstrip はこのリンクを書き換え、ユー ザに HTTP 接続によって別ページへアクセスさせる。こ れにより通信が暗号化されず、攻撃者はユーザの ID と パスワードのような重要な情報を盗むことができる。 3 実験環境の整備 本研究では始めに、HTTPS に対する中間者攻撃の実 験のために実験環境を構築した。今日のネットワークの 構成は、ユーザのコンピュータとインターネットの間に ルータがあり、それを介して通信することが一般的であ る。そこで実験環境はルータを中間者として中間者攻撃 を行う環境とした。 実験環境では、VMware Player 6.0.3 を使用して仮想 マシンを 3 台用意した。OS は CentOS 6.6 を使用する。 3 台の仮想マシンは、ユーザ用 (端末 A)、攻撃用 (端末 B)、Web サーバ用 (端末 C) とした。端末 A には、firefox (456 種類)、Internet Explorer (6 種類)、Chromium (78 種類)、SeaMonkey (204 種類)、w3m (18 種類)、lynx (58 種類) の 6 種類のブラウザを入手できる最古バージョンか ら最新バージョンまで全てを用意した。端末 B は、ユー 神奈川大学理学部情報科学科 2014 年度学士論文要旨 ザとサーバの通信を中継するルータとして動作するよう に設定した。また、squid 3.4.5 を導入しプロキシサーバ を構築することで、攻撃者が自身の証明書を利用する中 間者攻撃を再現した。Sslstrip を使用する場合は、squid の代わりに sslstrip を起動することで擬似環境を構築し た。端末 C には、Apache 2.2.15 を導入しサーバを構築 し、サーバは HTTPS 接続できるように設定した。 4 ブラウザによる対策の調査 HTTPS に対する中間者攻撃への対策を考察するため に、それぞれのブラウザの攻撃に対する対策状況を調査 した。 調査方法 4.1 あらかじめ端末 B 内の中間者攻撃に必要なものを作 動させておく。まず、ユーザが web サーバのあるペー ジ (http://192.168.0.2/welcome.html) にアクセスす る。そして、そのページ内のリンク (https://192.168. 0.2/test.html) をクリックし、HTTPS 接続を確立を試 みる。すると端末 B による中間者攻撃が行われる。この 時ブラウザがどのような動作をするか調査する。 調査結果 4.2 それぞれの攻撃方法ごとにブラウザの動作についての 調査結果をまとめていく。 4.2.1 攻撃者が自身の証明書を利用する中間者攻撃 この中間者攻撃をされている時のブラウザの動作ごと に、A∼D の 4 つのグループに分けた。 A グループは、攻撃をされているにもかかわらずブラ ウザが特別な動作を行わないグループである。B グルー プは、攻撃を受けているとブラウザが検知しポップアッ プで警告を出すグループである。この警告を無視して接 続をする簡単な方法も用意されている。C グループは、 ブラウザのウィンドウ全体で警告を出すグループである。 詳細の中に警告を無視して接続する方法が用意されてい る。D グループも、ブラウザのウィンドウ全体で警告を 出すグループである。C グループと違い、このグループ では警告を無視して接続する方法は用意されていない。 それぞれのブラウザの動作の変化とその時期をまとめ たものが表 1 である。 表 1: ブラウザの動作の変化と時期 (2015 年 1 月現在) 指導教員:松尾和人 5.1 ユーザ単独の対策 ユーザの単独の対策は、ブラウザがサーバからのレス ポンスであるページ内容をチェックし、HTTPS で接続す るべきサイトが HTTP で接続されていることを検知する ことや、何か設定をすることで特定のページには HTTPS で接続するようにするなどが考えられる。この対策とし て考えられるものは、(1) 取得したページのアドレスを チェック、(2) 取得したページのソースコード内をチェック、 (3) HTTPS Finder [3] の利用、(4) HTTPS Everywhere [4] の利用、(5) HTTPS サイトをブックマーク、以上 5 つ である。 5.2 サーバ単独の対策 サーバ単独の対策は、特定のページを HTTPS でしか 接続できないようにしたり、ページに細工をするなどが考 えられる。この対策として考えられるものは、(1) HSTS (HTTP Strict Transport Security) [5] の利用、(2) HSTS と HSTS Preload の利用、(3) .htaccess による https リ ダイレクトの利用、(4) Javascript をページに組み込み、 ブラウザがプロトコルを調査、(5) HTTPS 接続のための リンク URL を分解し送信、以上 5 つである。 5.3 ユーザとサーバの連携による対策 ユーザとサーバの連携では、特定のデータをやり取り することで対策を取ることになる。この対策方法として 考えられるものは、(1) 全てのページを HTTPS で接続、 (2) ハッシュ値による改ざん検知、(3) クライアント証明 書の利用、以上 3 つである。 5.4 対策の有効性 ここまで挙げてきた対策を将来も考慮した上で検討す ると、サーバ単独の対策である HSTS と HSTS Preload の利用、ユーザとサーバの連携による対策である全ての ページを HTTPS 接続とクライアント証明書の利用、以上 3 つが今後も対策として利用できるという結論となった。 6 まとめ HTTPS に対する中間者攻撃を行うための実験環境を 構築し、2 種類の中間者攻撃に対するブラウザの対策を 調査した。調査結果から、sslstrip はどのブラウザにおい ても対策が講じらていないことが判明した。そこで、本 研究では sslstrip に対する対策についても考察を行い、3 つの対策方法を提案した。しかし、ユーザのブラウザ側 でどのような状況でも利用できる対策を発見できなかっ た。この方法を検討し実装することが今後の課題である。 参考文献 [1] F. Callegati, W. Cerroni, M. Ramilli, Man-in-the-Middle Attack to the HTTPS Protocol, IEEE Security and Privacy Magazine 03/2009 4.2.2 Sslstrip この攻撃は全てのブラウザで警告を出すなどの特別な 動作をすることがなかった。 5 Sslstrip への対策の考察 前節から sslstrip に対する考察をする必要があること が分かった。そこで、この攻撃に対する対策を、ユーザ 単独、サーバ単独、ユーザとサーバの連携の 3 つの視点 から考察する。 [2] M. Marlinspike, New Tricks For Defeating SSL In Practice, https://www.blackhat. com/presentations/bh-dc-09/Marlinspike/ BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf, Black Hat DC 2009 [3] Kevin Jacobs, HTTPS Finder, https://code.google. com/p/https-finder/ [4] Electronic Frontier Foundation, HTTPS Everywhere, https://www.eff.org/https-everywhere [5] RFC 6797, HTTP Strict Transport Security, http:// tools.ietf.org/html/rfc6797 [6] Google Inc., HSTS Preload, https://hstspreload. appspot.com/