忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【セキュリティ】盗んだデータをそのままオウム返し!「リプレイ攻撃」|情報処理問題1000本ノック

セキュリティの古典的かつ強力な脅威。パスワードが暗号化されていても、その暗号文ごと丸ごと盗み取って使い回す「リプレイ攻撃」の罠を攻略しましょう。

1. 【 問題 】:ネットワーク攻撃手法

【 問題 】 ネットワークセキュリティにおける攻撃手法のうち、正当な利用者がサーバーにログインする際に送信した認証情報(IDやパスワード、暗号化された認証トークンなど)を通信回線から盗聴などによって不正に取得し、それをそのままサーバーへ「再送信(リプレイ)」することによって、本人になりすまして不正ログインを試みる手口はどれでしょうか?

① ブルートフォース攻撃 (Brute Force Attack)
② リプレイ攻撃 (Replay Attack / 再送攻撃)
③ パスワードリスト攻撃 (Password List Attack)
④ セッションハイジャック (Session Hijacking)

2. 正解:

正解: ② リプレイ攻撃(再送攻撃)

3. 解説:中身が読めなくても「同じもの」を送れば通れてしまう

リプレイ攻撃の恐ろしいところは、「パスワードが高度に暗号化されていても通用してしまう」という点にあります。

【リプレイ攻撃の手口と防御策】

手口:犯人は通信を盗聴し、ユーザーが送信したログイン情報を手に入れます。たとえそのデータが「$2a$10...」のような意味不明な暗号文であっても、犯人は解読を諦めません。「この暗号文をサーバーに送りつければ、サーバーは扉を開けてくれる」ことを知っているため、そのデータをそっくりそのままサーバーへ再送(リプレイ)して不正ログインを成功させます。 ← ココが問題の正解!

防御策:この攻撃を防ぐには、毎回異なる使い捨ての値を認証に混ぜる「ワンタイムパスワード」や、ログインのたびにサーバーからランダムな使い捨て文字列を送り、それを使って暗号化させる「チャレンジレスポンス方式(タイムスタンプやノンズの利用)」が極めて有効です。これなら、過去に盗んだ暗号データを再利用してもサーバー側に「もう古い(使い回しだ)」と見破られて弾かれます。
[ 選択肢のひっかけポイント(すべてパスワード・認証を狙う攻撃) ]
★ ① ブルートフォース攻撃:パスワードの候補(「0000」から「9999」など)を、当たるまで片っ端から総当たりで入力して突破を試みる力技の攻撃です。
★ ③ パスワードリスト攻撃:他社から流出した「IDとパスワードのリスト」を使い、別のサイトで使い回しているユーザーを狙って自動でログインを試みる攻撃です。
★ ④ セッションハイジャック:ログインが『完了したリ後』にサーバーから発行される「セッションID(クッキーなど)」を盗み取り、ログイン状態の通信の波に乗っ取る攻撃です。

1. 理解のコツ: 「合言葉が必要な秘密の部屋」に例えてみましょう。
・本人が部屋の前で「山!」と叫んで扉が開くのを見た犯人が、後からやってきて同じように「山!」と叫んで部屋に入るのがリプレイ攻撃です。もし「山」という言葉が外国語(暗号)で意味が分からなかったとしても、発音をそのまま真似してオウム返し(リプレイ)すれば、扉は開いてしまいます
2. 試験対策の視点: 「ネットワークに送信されるログイン情報を取得」「再送信」「不正にログイン」という、データを横取りしてそのまま再利用する文脈があれば「リプレイ攻撃(再送攻撃)」が一択です。基本情報や応用情報の午前試験では、この攻撃の定義のほか、前述の「チャレンジレスポンス方式」という防御策の仕組みとセットで非常によく狙われる重要セキュリティテーマです。


4. まとめ

「盗聴した認証データを、中身を解読することなくそのままサーバーに送りつけて本人になりすます攻撃」。これがリプレイ攻撃です。通信の暗号化(SSL/TLSなど)だけでは防げない場合があるため、現代のシステムでは「一度使われた認証データは二度と受け付けない」というワンタイム(使い捨て)の概念を取り入れることで、この脅威をシャットアウトしています。


PR