中間者攻撃とリプレイ攻撃(man-in-the-middle attack / replay attack)
通信の間に割り込んで盗み見たり書き換えたりするのが中間者攻撃。盗み取ったやり取りをそのまま送り直すのがリプレイ攻撃。
もう少し詳しい説明
2つの違い
| 中間者攻撃 | リプレイ攻撃 | |
|---|---|---|
| していること | 通信の間に割り込む | 盗み取ったものを送り直す |
| 攻撃する時点 | やり取りの最中 | やり取りのあと |
| 中身を読む必要 | ある | 無い(そのまま送るだけ) |
| 英語 | man-in-the-middle | replay(再生) |
中間者攻撃
通信をしている2者の間に割り込み、双方に気づかれないまま中継する攻撃です。
利用者 →(割り込んだ側)→ 本物のサーバ
← ←
| できること | 中身 |
|---|---|
| 盗み見る | やり取りの中身を読む |
| 書き換える | 送金先や金額を差し替える |
| なりすます | 双方に対して、相手のふりをする |
備えは、暗号化と相手の確認の両方です。
| 手立て | 効く理由 |
|---|---|
| TLSで暗号化する | 割り込まれても中身が読めない |
| サーバ証明書を確かめる | 割り込んだ側を本物と取り違えない |
| 証明書の警告を無視しない | 割り込みが起きていると、名前が合わない |
暗号化だけでは足りません。 偽のサーバと暗号化して通信してしまえば、割り込んだ側には中身が見えます。相手が本物かを確かめる部分が、ここで効きます。
リプレイ攻撃
盗み取った認証のやり取りを、そのまま送り直す攻撃です。
| 成り立つ場面 | 中身 |
|---|---|
| 同じ値を何度でも使える認証 | 送り直すだけで通ってしまう |
| 時刻の確認が無い | いつ送られたものかを見ていない |
中身を解読できなくても成り立ちます。 「同じものをもう一度送る」だけで済むためです。
備えは、同じものが二度通らないようにすることです。
| 手立て | 効く理由 |
|---|---|
| ワンタイムパスワード | 1回使うと、その値は使えなくなる |
| チャレンジレスポンス | サーバが毎回違う値を出し、それを使って応答させる |
| 時刻を含める | 古いものを受け付けない |
| 通し番号を含める | 同じ番号の2回目を受け付けない |
チャレンジレスポンス
| 手順 | すること |
|---|---|
| 1 | サーバが毎回違う値(チャレンジ)を送る |
| 2 | 利用者側が、その値とパスワードから計算した答えを返す |
| 3 | サーバが同じ計算をして、合えば認証する |
パスワードそのものが流れません。 しかも値が毎回変わるので、前回の答えを送り直しても合いません。
試験で並ぶ攻撃との区別
| 攻撃 | していること |
|---|---|
| 中間者攻撃 | 間に割り込む |
| リプレイ攻撃 | 同じものを送り直す |
| ブルートフォース攻撃 | パスワードを片端から試す |
| 辞書攻撃 | よく使われる語を試す |
| パスワードスプレー攻撃 | ありがちなパスワードを、多数のIDに少しずつ試す |
前の2つは通信そのものを狙い、後の3つはパスワードを狙います。 狙う対象が違います。
試験ではこう出る
科目A(旧・午前)では、攻撃の名前と中身の対応が問われます。割り込むのが中間者、送り直すのがリプレイです。
備えとの組合せも出ます。中間者攻撃には相手の確認、リプレイ攻撃にはワンタイムパスワードやチャレンジレスポンスです。
午後や応用情報では、選択肢に並ぶ攻撃の1つとして出てきます。本文に書かれた状況から、どの攻撃が行われたかを選ぶ形です。
関連する用語
- TLSとHTTPS
- 暗号化と相手の確認。中間者攻撃への備えになる
- ブルートフォース攻撃
- パスワードを試す攻撃。並べて出題される
- デジタル署名
- 書き換えられていないことを確かめる仕組み
- ワンタイムパスワード
- 1回だけ使える認証。送り直しが効かなくなる
ミニクイズ
リプレイ攻撃の説明として、最も適切なものはどれか。
正解は 4番:盗み取った認証のやり取りを、そのまま送り直して正規の利用者になりすます
リプレイ攻撃は、盗み取ったやり取りの内容をそのまま送り直す攻撃です。中身を解読できなくても、同じものを再び送れば認証が通ってしまう場合に成り立ちます。割り込んで中継するのは中間者攻撃、パスワードを固定してIDを変えるのはリバースブルートフォース攻撃、SQLの断片を入れるのはSQLインジェクションです。
この分野をまとめて解く → セキュリティのミニテスト(全47問)
最終更新:2026-11-09