信号のキャプチャとリプレイ
RF送信を傍受し、再生します。
「信号のキャプチャとリプレイ」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
リプレイ攻撃の概念
リプレイ攻撃は、RFにおける最も単純で一般的な弱点です。正当な送信を取得し、後で再送信して同じ効果を再現します。受信側が同じ信号を2回受け入れる場合、復号は必要ありません。
これは、コマンドが固定された静的な送信であるデバイスに対して有効です:
- 安価なガレージドアオープナー
- ローリングコードを使用しない基本的な自動車キーフォブ
- ワイヤレスドアベル、警報センサー、リモートコンセント
- クレーンやゲート用の一部の産業用リモートコントロール
取得した信号が数分後や数日後にも機能するなら、そのシステムは設計上脆弱です。
対象周波数の特定
取得する前に、デバイスがどこで送信しているかを特定します。一般消費者向けのリモコンの多くはISMバンドを使用しています。315 MHz(北米)、433.92 MHz(欧州および世界の多くの地域)、868 MHz、915 MHzなどです。
RTL-SDRをこれらの帯域にわたってチューニングし、リモコンを押して、ウォーターフォールにエネルギーのバーストが現れるか確認します。デバイスに印刷されたFCC IDから、公開されている規制当局への提出書類を通じて、正確な動作周波数が分かることもよくあります。
# Browse the 433 MHz band live and watch the waterfall
gqrx
# Or auto-identify known devices on the air
rtl_433 -f 433.92M -A送信の取得
周波数が分かったら、デバイスの送信中に生のI/Qサンプルを記録します。信号を分析して再生しやすいように、ノイズの少ない孤立したバーストを取得してください。
取得には受信専用のRTL-SDRで十分ですが、後で送信するにはHackRFなどが必要です。再生時には一致するパラメーターが必要になるため、使用した正確な中心周波数とサンプルレートを必ず記録してください。
# Capture raw I/Q at 433.92 MHz, 2 Msps
rtl_sdr -f 433.92M -s 2048000 -n 4096000 remote.iq
# Capture with HackRF for later transmit on the same hardware
hackrf_transfer -r remote.iq -f 433920000 -s 2000000送信機による再生
再生するには、HackRFのような送信対応ハードウェアを使い、取得したI/Qファイルを同じ周波数とサンプルレートで送信します。
受信側は生の波形と照合するため、正確に再送信すれば元のコマンドを再現できます。明示的な認可と送信に関する法的許可がない限り、必ずシールドされた容器内で再生してください。
# Replay the captured file with HackRF
hackrf_transfer -t remote.iq -f 433920000 -s 2000000 -x 40
# -x sets TX gain; keep it minimal and use proper antennas無差別な再生ではなくデコードする
無差別な再生でも機能しますが、信号をデコードすれば、より多くのことを学べ、より巧妙な攻撃が可能になります。Universal Radio Hacker (URH)のようなツールを使うと、バーストを復調し、ビットストリームを復元して、構造を特定できます。
- プリアンブルと同期ワードを見つけます。
- シンボルレートとエンコーディング(多くの場合、ManchesterまたはPWM)を特定します。
- 静的なコマンドペイロードの位置を特定します。
デコードできれば、新しい送信を作成したり、フィールドをファジングしたり、ボタンを押すたびにメッセージの一部が変化するかどうかを確認したりできます。
ローリングコードとリプレイが失敗する理由
最新のキーフォブは、ローリングコード(ホッピングコード)によって単純なリプレイ攻撃を防ぎます。ボタンを押すたびに、共有された秘密と増加するカウンターから新しいコードが生成されます。
- 送信機と受信機は、カウンターによって同期を維持します。
- 受信機が先に進むと、取得済みのコードは無効になります。
- 古いコードを再生しても、単純に拒否されます。
KeeLoqなどのシステムが、この方式を広く普及させました。ローリングコードによって攻撃の難度は大幅に上がりますが、次の場面で示すように、実装上の欠陥が依然として侵入口を生み出します。
ローリングコードの突破:RollJam
ローリングコードも、キャプチャー・アンド・ジャミングという手法によって破られることがあります。その代表例がRollJamです:
- 攻撃者は受信機をジャミングしながら、ジャマーがカバーしない狭い帯域で、対象者が最初にキーフォブを押したときの信号を同時に取得します。
- キーフォブが機能しなかったため、ユーザーはもう一度押します。攻撃者は2つ目のコードを取得し、1つ目のコードを再生します。
- 攻撃者は、未使用でまだ有効な将来のコードを1つ保持することになります。
受信機は最初のコードを受信していないため、そのコードは有効なままです。これは暗号を破るのではなく、プロトコルが許容するウィンドウを悪用する攻撃です。
ローリングコードのカウンター再同期の悪用
一部のローリングコード受信機は、範囲外で誤ってボタンが押された場合に備えて、再同期ウィンドウ内のコードを受け入れます。このウィンドウが大きすぎたり、適切に制限されていなかったりすると、攻撃者は連続した複数のコードを取得して、再同期を予測または強制できる可能性があります。
古いKeeLoqの実装には、メーカーキーの復元という問題もありました。1つのキーフォブからマスターキーを抽出すれば、製品シリーズ全体をクローンできました。これらはローリングコードという考え方自体の失敗ではなく、実装上の欠陥です。
ジャミングとサービス拒否
ジャミングは周波数をノイズで埋め尽くし、正当な受信機が有効な送信を聞き取れないようにします。これはRollJamの構成要素であると同時に、それ自体がサービス拒否の脅威です。
- ワイヤレス警報センサーをジャミングすると、ドアが開いたことを示すイベントがパネルに届かなくなります。
- キーレスエントリーやリモートコントロールを無効化できます。
ジャミングは、テスト目的であっても、ほぼすべての法域で違法です。実演する場合は、明示的な認可を得たうえで、シールドされたラボ内だけで行ってください。ここで重要なのは、攻撃者がジャミングと信号取得をどのように組み合わせるか、そしてシステムが信号の喪失を検知しなければならない理由を理解することです。
ツールのまとめ
実用的な取得・再生ワークフローでは、コンパクトなツールセットを使用します:
- RTL-SDR — 周波数の調査と取得(受信専用)
- HackRF One — 再生テスト用の取得と送信
- URH — 信号の復調、デコード、作成
- rtl_433 — 既知のデバイスをすばやく特定
- Flipper Zero — 単純なサブGHz信号の現場での取得と再生に便利
Flipperは固定コード方式のリモコンに対するリプレイ攻撃の実演で人気がありますが、適切に実装されたローリングコードには阻止されます。まさにこの点をクライアントに理解してもらう必要があります。
リプレイ攻撃への対策
リプレイ攻撃の評価では、次のような対策を推奨します:
- 固定コードを、認証付きローリングコードまたはチャレンジレスポンスに置き換えます。
- 厳格で制限された再同期ウィンドウと、デバイスごとに一意の暗号キーを使用し、共有マスターキーは決して使用しません。
- タイムスタンプまたはノンスを追加し、各コマンドを一度だけ、かつ短時間だけ有効にします。
- ジャミング検知を実装します。警報パネルは、センサー信号の突然の喪失を改ざんイベントとして扱う必要があります。
- 受信機が各コマンドを確認する双方向プロトコルを優先します。
核心となる原則は、記録して同じ形で再生できるコマンドは破られているということです。認証されたすべての操作は、暗号学的に一意でなければなりません。
理解度チェック
ローリングコードに対するリプレイ攻撃についての理解度を確認します。
まとめ
これで、RF信号をキャプチャー、解析、リプレイし、その防御策について考えられるようになりました。
- リプレイ攻撃は、キャプチャーした静的なコマンドを再送信する攻撃で、固定コード方式のリモコンに対して有効です。
- 手順は、ISMバンドで周波数を見つけ、RTL-SDRでI/Qデータをキャプチャーし、HackRFでリプレイして、URHでデコードします。
- ローリングコードは単純なリプレイ攻撃を防ぎますが、RollJam(キャプチャーとジャミング)や、脆弱な再同期ウィンドウ、共有されたマスターキーによって、再び攻撃の余地が生まれます。
- ジャミングは、電波遮蔽された許可済みのラボ以外では違法であり、サービス拒否攻撃やRollJam攻撃の基盤となります。
- 防御には、認証付きの一回限りのコマンド、制限された再同期、デバイスごとのキー、ジャミング検出が必要です。
これでRFとワイヤレスハッキングのコースは完了です。SDRの基礎から、Bluetooth、非接触通信、信号のリプレイまで学びました。
AI チューターと学ぶ Cyber Security Academy — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 76
- レッスン
- 303
よくある質問
「信号のキャプチャとリプレイ」レッスンは無料ですか?
はい。「信号のキャプチャとリプレイ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「信号のキャプチャとリプレイ」で何を学びますか?
RF送信を傍受し、再生します。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「信号のキャプチャとリプレイ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- RFとSDRの基礎
- BluetoothとBLEへの攻撃
- RFIDとNFCのセキュリティ
- 信号のキャプチャとリプレイ