中間者攻撃
通信する2者の間に攻撃者が割り込み、両者になりすまして、通信を盗聴したり改ざんしたりする攻撃。
イマシルちゃんの解説
AさんとBさんが手紙のやり取りをしているとき、
郵便屋さんになりすました悪い人が、途中で手紙を開けて読んで、書き換えてから届けていたら……?
AさんもBさんも、相手と直接やり取りしていると思い込んでいるから、気づかないんだ。
これが中間者攻撃!
相手が本物かどうかを確かめる仕組みが、とっても大事なんだよ。
より深い解説
定義
中間者攻撃(MITM:Man-in-the-Middle攻撃)は、通信の当事者の間に攻撃者が入り込み、それぞれに対して通信相手になりすますことで、通信内容の盗聴や改ざんを行う攻撃である。当事者は、互いに直接通信していると思い込んでいる。
割り込む手段
| 手段 | 内容 |
|---|---|
| ARPスプーフィング | 偽のARP応答で、同じLAN上の通信を攻撃者の機器に向けさせる |
| 偽のアクセスポイント | 正規の無線LANと同じSSIDのアクセスポイントを設置して、接続させる(悪魔の双子:Evil Twin) |
| DNSの偽装 | DNSキャッシュポイズニングなどで、偽のサーバのIPアドレスを返す |
| 不正なDHCPサーバ | 攻撃者の機器をデフォルトゲートウェイやDNSサーバとして配布する |
暗号化通信への中間者攻撃
TLSで暗号化していても、相手の確認が不十分だと中間者攻撃が成立する。
- 攻撃者は、利用者に対してはサーバになりすまし、自分の証明書を提示してTLSを確立する
- 本物のサーバに対しては利用者になりすまして、別のTLSを確立する
- 攻撃者は、両方の通信を復号・再暗号化して中継しながら、内容を盗み見る
このとき攻撃者が提示する証明書は、信頼できる認証局が発行したものではないため、ブラウザが警告を表示する。利用者が警告を無視すると、攻撃が成立する。
対策
| 対策 | 内容 |
|---|---|
| サーバ証明書の検証 | 証明書が信頼できる認証局から発行され、接続先のドメイン名と一致することを確認する。警告を無視しない |
| HSTS | 一度HTTPSで接続したサイトには、以後HTTPでの接続をさせない |
| 相互認証 | クライアント証明書などで、サーバも利用者を確認する |
| 鍵交換の認証 | 公開鍵の正しさを確認せずに鍵交換をしない(認証なしのDiffie-Hellman鍵交換は中間者攻撃に弱い) |
| 安全なネットワークの利用 | 不審な公衆無線LANを使わない、VPNを使う |
Man-in-the-Browser攻撃との違い
| 中間者攻撃 | Man-in-the-Browser攻撃 | |
|---|---|---|
| 攻撃者の位置 | 通信経路の途中 | 利用者のブラウザの中 |
| TLSと証明書の検証 | 有効な対策になる | 暗号化の前に改ざんされるので効かない |
ほかの攻撃との区別
中間者攻撃は、通信経路に割り込む攻撃である。暗号化装置の消費電力を測るなど、装置の物理的な情報から内部の秘密を推定するサイドチャネル攻撃とは異なる。