今回は中間者攻撃 MITMについてのお話です。
わかりそうで分からないMITMを分かりやすく解説してみました。
中間者攻撃Man-in-the-middle attack(mitm)とは?
中間者攻撃Man-in-the-middle attackとは、別名:バケツリレー攻撃(バケツリレーこうげき、bucket-brigade attack)とも言われていて、通信の間に割り込んで暗号化通信を盗聴したり、改ざんしたりする攻撃手法の一つのことです。
この説明じゃなんのことだかわからないと思いますが、とりあえずは
通信を行う両者の間に入って情報を盗み見たり、改ざんすること
と理解すれば大丈夫です。
中間者攻撃の具体的な攻撃方法は?
では、具体的な中間者攻撃の手法をひもときます。
例えば、通信を行うAさんとBさんの間の経路上に攻撃者Cが入るとします。
Aさん ----- Bさん
↓ 攻撃者Cが間に入る
Aさん --- C ----Bさん
AさんとBさんの両者が公開鍵暗号方式を使って通信している場合、CはAさんから送られてきた公開鍵を取得し、BさんにはAさんの公開鍵の代わりにC自身の公開鍵をAさんのものとして送信します。
Aさん(Aさんの公開鍵) → C(Cの公開鍵) → Bさん
BさんはAさんの公開鍵が送られてきていると信じていますが、実際に届いているのはCの公開鍵です。でも、BさんはそのまあCの公開鍵でデータを暗号化してAさんに送信します。
Aさん --- C ← Bさん(Cの公開鍵で暗号化)
そうすると、Cはこれを傍受してC自身の秘密鍵で復号化して内容を盗み見ることが出来るわけです。
Aさん --- CはBさんから送られてきた内容を複号化 ーーー Bさん
ここまででCはBさんが送ってきた情報を盗み見ることができましたね。
さらに、CはAさんの公開鍵で傍受したBさんからのデータを暗号化してAさんに送付します。
※ここでCはデータ内容の改ざんなどなんでもできてしまいます。
Aさん ← C(Aさんの公開鍵で暗号化) ---Bさん
そして、Aさんは自らの秘密鍵でデータを復号化して内容を確認します。
中間者攻撃のどんなところが危険なのか?
で、この中間者攻撃が怖いところはどこなのか?というと、その怖さとは、この過程の中でCは送受信されるデータを盗み見たり改ざんしたりするような凄いことができてしまうわけですが、AさんもBさんも
そのことには気付くことが出来ない
ところなんです。
AさんとBさんは直接通信をしていると思い込んでいるので、まさか、通信内容が盗みられていたり、改ざんされていたりするなんて思いもしないわけです。
よって、被害にあっていることに気づけないので、被害が大きくなってしまうのです。
中間者攻撃を防ぐ方法はあるのか?
この攻撃手法は論理的にはどちらかからの公開鍵さえ入手できてしまえば、実現できてしまうわけです。
そこで、信頼された認証機関から発行されたデジタル証明書などを利用することで、公開情報(この例ではAさんの公開鍵)が正規のものかどうかを確認することで攻撃を防ぐことが出来ます。
例えばSSLであればBさんはCから送られた公開鍵が正規のものかどうかをブラウザにあらかじめインストールされているルート証明書によって認証することができます。
他にも
- 平文による通信は行わない
- 公衆無線LANは使わない
- アプリケーションに脆弱性がある場合はすぐにパッチをあてる
などによる注意、対策も有効です。
コメント