赤外線

Reading time: 12 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

赤外線の仕組み

赤外線は人間には見えません。IRの波長は0.7から1000ミクロンです。家庭用リモコンはデータ伝送にIR信号を使用し、波長範囲は0.75..1.4ミクロンです。リモコン内のマイクロコントローラーが特定の周波数で赤外線LEDを点滅させ、デジタル信号をIR信号に変換します。

IR信号を受信するためにフォトレシーバーが使用されます。これはIR光を電圧パルスに変換し、すでにデジタル信号です。通常、受信機内にはダークライトフィルターがあり、必要な波長のみを通過させ、ノイズをカットします。

IRプロトコルの多様性

IRプロトコルは3つの要素で異なります:

  • ビットエンコーディング
  • データ構造
  • キャリア周波数 — 通常36..38 kHzの範囲

ビットエンコーディングの方法

1. パルス間隔エンコーディング

ビットはパルス間の間隔の持続時間を変調することでエンコードされます。パルス自体の幅は一定です。

2. パルス幅エンコーディング

ビットはパルス幅の変調によってエンコードされます。パルスバースト後の間隔の幅は一定です。

3. 位相エンコーディング

これはマンチェスターエンコーディングとも呼ばれます。論理値はパルスバーストと間隔の間の遷移の極性によって定義されます。「間隔からパルスバースト」は論理「0」を示し、「パルスバーストから間隔」は論理「1」を示します。

4. 前述のものと他のエキゾチックな組み合わせ

tip

いくつかのデバイスのために普遍的になろうとしているIRプロトコルがあります。最も有名なものはRC5とNECです。残念ながら、最も有名であることは最も一般的であることを意味しません。私の環境では、NECリモコンを2つしか見かけず、RC5のものはありませんでした。

メーカーは、同じ範囲のデバイス内でも独自のユニークなIRプロトコルを使用するのが好きです(例えば、テレビボックス)。したがって、異なる会社のリモコンや、同じ会社の異なるモデルのリモコンは、同じタイプの他のデバイスと連携できないことがあります。

IR信号の探索

リモコンのIR信号がどのように見えるかを確認する最も信頼性の高い方法は、オシロスコープを使用することです。これは受信信号を復調したり反転したりせず、「そのまま」表示されます。これはテストやデバッグに役立ちます。NEC IRプロトコルの例で期待される信号を示します。

通常、エンコードされたパケットの最初にはプレアンブルがあります。これにより、受信機はゲインとバックグラウンドのレベルを決定できます。プレアンブルのないプロトコルもあります。例えば、シャープです。

次にデータが送信されます。構造、プレアンブル、およびビットエンコーディング方法は特定のプロトコルによって決まります。

NEC IRプロトコルは短いコマンドとリピートコードを含み、ボタンが押されている間に送信されます。コマンドとリピートコードの両方は、最初に同じプレアンブルを持っています。

NECのコマンドは、プレアンブルに加えて、デバイスが何を実行する必要があるかを理解するためのアドレスバイトとコマンド番号バイトで構成されています。アドレスとコマンド番号バイトは、伝送の整合性を確認するために逆の値で複製されます。コマンドの最後には追加のストップビットがあります。

リピートコードは、プレアンブルの後に「1」があり、これはストップビットです。

**論理「0」と「1」**のために、NECはパルス間隔エンコーディングを使用します:最初にパルスバーストが送信され、その後にビットの値を設定する長さの間隔があります。

エアコン

他のリモコンとは異なり、エアコンは押されたボタンのコードだけを送信しません。ボタンが押されると、すべての情報を送信して、エアコンとリモコンが同期していることを確認します
これにより、20ºCに設定された機械が1つのリモコンで21ºCに上昇し、次に温度が20ºCの別のリモコンを使用してさらに温度を上げると、21ºCに「上昇」する(21ºCにいると思って22ºCにはならない)ことを避けることができます。


攻撃と攻撃的研究

Flipper Zeroを使用して赤外線を攻撃できます:

FZ - Infrared

スマートTV / セットトップボックスの乗っ取り (EvilScreen)

最近の学術研究(EvilScreen, 2022)は、赤外線とBluetoothまたはWi-Fiを組み合わせたマルチチャネルリモコンが、現代のスマートTVを完全にハイジャックするために悪用される可能性があることを示しました。攻撃は高特権のIRサービスコードを認証されたBluetoothパケットと組み合わせ、チャネルの隔離をバイパスし、任意のアプリの起動、マイクのアクティベーション、または物理的アクセスなしでの工場出荷時リセットを可能にします。サムスンモデルを含む8つの主要なテレビが脆弱であることが確認されました。緩和策には、ベンダーのファームウェア修正または未使用のIR受信機の完全な無効化が必要です。

IR LEDを介したエアギャップデータの流出 (aIR-Jumperファミリー)

セキュリティカメラ、ルーター、または悪意のあるUSBスティックには、しばしばナイトビジョンIR LEDが含まれています。研究によると、マルウェアはこれらのLEDを変調(<10–20 kbit/sの単純なOOK)して、壁や窓を通じて秘密を外部カメラに流出させることができます。光は可視スペクトルの外にあるため、オペレーターはほとんど気づきません。対策:

  • 敏感なエリアでIR LEDを物理的に遮蔽または取り外す
  • カメラのLEDデューティサイクルとファームウェアの整合性を監視する
  • 窓や監視カメラにIRカットフィルターを展開する

攻撃者はまた、強力なIRプロジェクターを使用して、コマンドをネットワークに侵入させるためにデータを不正なカメラにフラッシュすることができます。

Flipper Zero 1.0による長距離ブルートフォースと拡張プロトコル

ファームウェア1.0(2024年9月)は、数十の追加IRプロトコルとオプションの外部アンプモジュールを追加しました。ユニバーサルリモートブルートフォースモードと組み合わせることで、Flipperは高出力ダイオードを使用して最大30mの距離からほとんどの公共のテレビ/エアコンを無効にしたり再構成したりできます。


ツールと実用例

ハードウェア

  • Flipper Zero – 学習、リプレイ、辞書ブルートフォースモードを備えたポータブルトランシーバー(上記参照)。
  • Arduino / ESP32 + IR LED / TSOP38xx受信機 – 安価なDIYアナライザー/トランスミッター。Arduino-IRremoteライブラリと組み合わせる(v4.xは>40プロトコルをサポート)。
  • ロジックアナライザー(Saleae/FX2) – プロトコルが不明な場合に生のタイミングをキャプチャ。
  • IRブラスターを搭載したスマートフォン(例:Xiaomi) – 短時間のフィールドテストですが、範囲は限られています。

ソフトウェア

  • Arduino-IRremote – アクティブにメンテナンスされているC++ライブラリ:
cpp
#include <IRremote.hpp>
IRsend sender;
void setup(){ sender.begin(); }
void loop(){
sender.sendNEC(0x20DF10EF, 32); // Samsung TV Power
delay(5000);
}
  • IRscrutinizer / AnalysIR – 生のキャプチャをインポートし、プロトコルを自動識別し、Pronto/Arduinoコードを生成するGUIデコーダー。
  • LIRC / ir-keytable (Linux) – コマンドラインからIRを受信および注入:
bash
sudo ir-keytable -p nec,rc5 -t   # live-dump decoded scancodes
irsend SEND_ONCE samsung KEY_POWER

防御策

  • 必要ない場合は公共の場に展開されたデバイスのIR受信機を無効にするか、覆う。
  • スマートTVとリモコン間でペアリングまたは暗号チェックを強制し、特権の「サービス」コードを隔離する。
  • 機密エリアの周囲にIRカットフィルターまたは連続波検出器を展開して、光学的な隠密チャネルを破る。
  • 制御可能なIR LEDを露出させるカメラ/IoT機器のファームウェアの整合性を監視する。

参考文献

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする