サイバー脅威 / 対策

中間者攻撃 (MITM)

約 4 分で読めます

中間者攻撃とは

中間者攻撃 (Man-in-the-Middle Attack、MITM) とは、通信を行う 2 者の間に攻撃者が割り込み、通信内容の傍受・改ざんを行う攻撃手法です。被害者は正規の相手と直接通信していると認識しているため、攻撃に気づきにくい点が特徴です。

この攻撃が成立するには、攻撃者が通信経路上に自身を挿入する必要があります。公衆 Wi-Fi、ARP スプーフィング、DNS 偽装など、さまざまな手法で通信の中継点を奪取します。TLS/SSL による暗号化が広く使われるようになってからは、経路に割り込んだだけでは通信内容を読めません。それでも成立の余地が残るのは、暗号化されない経路が残っている場合、アプリケーションが証明書の検証を省いている場合、そして利用者が証明書の警告を無視して接続を続けてしまう場合です。

主な攻撃手法

中間者攻撃にはいくつかの代表的な手法があります。

  • ARP スプーフィング: ローカルネットワーク上で偽の ARP (Address Resolution Protocol) パケットを送信し、通信相手の MAC アドレスを攻撃者のものに書き換える。ARP には応答の送信元が正しいかを確かめる仕組みがなく (RFC 826・1982 年の仕様)、キャッシュを書き換えられた端末の通信が攻撃者を経由するようになる
  • DNS スプーフィング: DNS の応答を偽装し、正規のドメイン名を攻撃者のサーバーの IP アドレスに解決させる。ユーザーは正しい URL にアクセスしているつもりで、偽サイトに誘導される
  • SSL ストリッピング: HTTPS 接続を HTTP にダウングレードさせる手法。攻撃者はクライアントとの間を HTTP で、サーバーとの間を HTTPS で通信し、暗号化されていない通信内容を傍受する。ブラウザに HSTS のプリロード情報が組み込まれているドメインでは初回接続から HTTPS が強制されるため、この手口は成立しにくくなる
  • 偽の Wi-Fi アクセスポイント: カフェや空港などで正規のアクセスポイントに似た名前の偽 AP を設置し、接続したユーザーの通信を自分の機器経由にする。Evil Twin 攻撃とも呼ばれる。HTTPS で保護された通信の中身は読めないが、接続先ドメインなどのメタデータの観測や、暗号化されない通信・偽サイトへの誘導の足場になる
  • BGP ハイジャック: インターネットの経路制御プロトコル (BGP) を悪用し、特定の IP アドレス宛のトラフィックを攻撃者のネットワークに迂回させる。BGP には受け取った経路広告の出自を検証する仕組みが元々なく、意図的な迂回だけでなく設定ミスによる同種の経路逸脱も起こる。対策として RPKI による経路の出自検証 (RFC 6480・RFC 6811) が整備されてきた

防御策と暗号化の重要性

中間者攻撃への防御は、通信の暗号化と相手の認証を両方そろえることが軸になります。

通信の暗号化

  • TLS 1.3 の使用: TLS 1.3 (2018 年の RFC 8446 で標準化され、2026 年 7 月の RFC 9846 が改訂版) はハンドシェイクの改善により、ダウングレード攻撃への耐性が高い。TLS 1.0 と TLS 1.1 は RFC 8996 (2021 年) が使用を禁じており、無効化が前提となる
  • HSTS (HTTP Strict Transport Security): RFC 6797 (2012 年) で定義され、ブラウザに対して以後は常に HTTPS で接続するよう指示する。SSL ストリッピングを防ぐが、指示を受け取る前の初回接続は保護されないため、ブラウザに組み込まれたプリロードリストへの登録で穴を埋める
  • VPN の利用: 公衆 Wi-Fi など信頼できないネットワークでは、VPN で通信全体を暗号化トンネルで保護する。ただし守られるのは VPN 事業者までの区間で、信頼する相手をネットワークの管理者から VPN 事業者へ移す選択でもある

認証と検証

  • 証明書ピンニング: アプリケーションが特定の証明書または公開鍵のみを信頼するよう設定し、偽の証明書による中間者攻撃を防ぐ。ブラウザ向けの HPKP (RFC 7469・2015 年) は設定を誤ると自サイトを到達不能にする危険があり、Chrome では 72 (2019 年 1 月) で削除された。ピンニングが現実的なのは、配布物と接続先を同じ開発者が管理するモバイルアプリのような場面に限られる
  • 公開鍵暗号による相互認証: サーバーだけでなくクライアントも証明書で認証する相互 TLS (mTLS) を導入し、双方向の認証を実現する
  • DNSSEC の導入: RFC 4033 以降で定義された仕組みで、DNS 応答にデジタル署名を付与し、応答の出自と改ざんの有無を検証できるようにする。DNS の内容を暗号化するものではなく、ゾーン側の署名と問い合わせ側の検証がそろって初めて偽の応答を弾ける

ネットワークレベルの対策

  • Dynamic ARP Inspection (DAI): スイッチ製品が備える機能で、ARP パケットの正当性を検証し ARP スプーフィングを防止する
  • 802.1X 認証: ネットワーク接続時にデバイスの認証を要求し、不正なデバイスの接続を防ぐ

公衆 Wi-Fi での実践的な自衛策

公衆 Wi-Fi は、誰でも同じネットワークに入れて、経路上の機器を第三者が用意できるため、中間者攻撃の足場になりやすい環境です。HTTPS が既定になってからは、通信の中身がそのまま読み取られる場面は限られます。それでも接続先のドメインなどのメタデータは経路上から見え、暗号化されない通信、証明書の警告を通してしまう操作、偽ドメインへの誘導は穴として残ります。何が守られ、何が残るかを踏まえて次の対策を習慣化すると、残った穴に触れる場面を減らせます。

  • VPN を常時有効にする: VPN で通信を暗号化すれば、経路上の機器から見えるのは暗号化されたトンネルだけになり、偽のアクセスポイントに接続しても通信内容や接続先を読み取られない
  • 自動接続を無効にする: スマートフォンやノート PC の Wi-Fi 自動接続機能を無効にし、意図しないネットワークへの接続を防ぐ
  • 証明書の警告で必ず止まる: 警告は経路上に別の主体が割り込んでいる可能性を直接示す合図なので、例外を追加して先へ進まない。逆に、アドレスバーに鍵が表示されていても、それは通信が暗号化されている印であって、そのドメインが本物である保証にはならない
  • 偽ドメインでは通らない認証方式を使う: 中間者攻撃の応用として、攻撃者が正規サイトとの間にリバースプロキシを置き、入力された認証情報とセッション Cookie をその場で中継する中間者フィッシング (AiTM) がある。ワンタイムパスワードは中継されてしまうため、鍵が正規サイトのドメインに紐づくパスキー (FIDO2) のように、偽ドメインでは署名が成立しない方式が有効になる
  • 機密性の高い操作を避ける: オンラインバンキングや重要なアカウントへのログインは、信頼できるネットワーク環境で行う
  • DNS リークに注意する: VPN 使用時でも DNS クエリが暗号化されていない経路で送信される場合がある。DNS リークテストで確認する

中間者攻撃は、通信相手が本物であることを確かめないまま通信を続けたときに成立します。暗号化で中身を守り、証明書で相手を確かめ、警告が出たら止まる。この 3 つがそろっているかどうかが分かれ目です。

よくある誤解

HTTPS を使っていれば中間者攻撃は不可能
HTTPS は正しく実装されていれば強力な防御だが、証明書の検証を無視するアプリケーション、古い TLS バージョンの使用、ユーザーが証明書警告を無視する行為などにより、HTTPS 環境でも中間者攻撃が成功する場合がある。
中間者攻撃は同じ Wi-Fi にいないと実行できない
ARP スプーフィングはローカルネットワーク内の攻撃だが、DNS スプーフィングや BGP ハイジャックはリモートから実行可能。ISP レベルでの通信傍受や、マルウェアによるプロキシ設定の改ざんなど、物理的な近接を必要としない手法も多数存在する。
共有する

関連用語

関連記事