
ソフトウェア無線プラットフォームを使用したリモートビデオ盗聴
このプロジェクトは、ソフトウェア無線(SDR)受信機を使用してビデオモニターを遠隔から盗聴するためのソフトウェアツールキットです。ビデオ信号を伝送するケーブルからの漏洩電磁波(コンパイティング・エマネーション)を利用します。
ラスタービデオは通常、画素を1ラインずつ、変化する電流として符号化して送信されます。これにより電磁波が発生し、SDR受信機で受信できます。このソフトウェアは、受信した画素の電界強度をリアルタイムでグレースケールの濃淡にマッピングします。これにより、元のビデオ信号の疑似的なカラー推定が形成されます。
このツールキットは、未改造の既製品ハードウェアを使用するため、既存のソリューションと比較してコストが低く、機動性が向上します。また、追加の後処理が可能で、信号対雑音比を改善します。攻撃者は対象のビデオディスプレイについて事前の知識を持つ必要はありません。解像度やリフレッシュレートなどのすべてのパラメータは、ソフトウェアの助けを借りて推定されます。
ソフトウェアは、Cで書かれたライブラリ、さまざまなソフトウェア無線(SDR)フロントエンド用のプラグイン群、およびJavaベースのグラフィカルユーザーインターフェース(GUI)で構成されています。マルチプラットフォーム対応のアプリケーションであり、すべてのネイティブライブラリはプリコンパイルされ、単一のJava JARファイルにパッケージされています。
JTempestSDR.jarファイルをダブルクリックして起動します。起動に失敗した場合は、プロジェクトを再コンパイルする必要があります。
これはJavaラッパーでありGUIです。Java GUI自体を含むすべてのプロジェクトとサポートされているプラグインをビルドします。JavaGUIフォルダーに移動し、次のように入力します。
make all
「jni.h」が見つからない場合は、次のいずれかのコマンドを実行してください。
make all JAVA_HOME=path_to_jdk_installation
Windows 8 x64の場合、次のようになります。
make all JAVA_HOME=C:/PROGRA~2/Java/jdk1.7.0_45
X64またはX32用のコンパイルを強制するには(コンパイラがサポートしている場合)、次のようにします。
make all JAVA_HOME=C:/PROGRA~2/Java/jdk1.7.0_45 ARCHNAME=X64
Ubuntuでopenjdkを使用する場合、次のようになります。
make all JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
注:これによりプラグインもコンパイルされます。一部のプラグインは追加のライブラリを必要とします。JavaSDRのMakefileを編集すると、プラグインのコンパイルを無効にできます。
MinGWをインストールしておく必要があります。
Windowsでは、FlexiTV™ MSi3101 SDR USBドングル用のMirics SDRプラグインもビルドされます。最初に http://www.mirics.com/ からSDRドライバーをインストールする必要があります。
プラグインをコンパイルするには、プラグインフォルダーに移動して次のように入力します。
make all MIRICS_HOME=path_to_mirics_installation
Windows 8 x64の場合、次のようになります。
make all MIRICS_HOME=C:/PROGRA~1/MiricsSDR
Miricsプラグインを実行する場合は、mir_sdr_api.dllがライブラリパス(または実行ファイルと同じディレクトリ)にあることを確認してください。dllは、アーキテクチャに応じて C:/Program Files/MiricsSDR/API/x86 または C:/Program Files/MiricsSDR/API/x64 にあります。
Miricsドングルを使用する予定がない場合は、JavaGUIディレクトリのMakefileを編集してこの手順を省略できます。89行目からTSDRPlugin_Miricsを削除し、次の行から
PLUGINS += TSDRPlugin_Mirics TSDRPlugin_ExtIO
を次のように変更します。
PLUGINS += TSDRPlugin_ExtIO
LinuxおよびOS Xでは、GUIのコンパイル時にUHDドライバーもコンパイルされるため、UHDと対応するboostライブラリをインストールしておく必要があります(UHDが自動的にインストールします)。UHDドライバーが不要な場合は、JavaGUIディレクトリのMakefileから、Linuxでは91行目、OS Xでは93行目を削除してコンパイルをスキップできます。デフォルトでは、これらの行は次のようになっています。
PLUGINS += TSDRPlugin_UHD
すべてのプロジェクトは、Eclipseとmakeの両方でビルドできます。
フォルダーに移動して次のように入力します。
make all
これによりライブラリが生成され、binサブディレクトリにあります。インターフェースに必要なヘッダーはsrc/includeにあります。
プラグインディレクトリに移動して次のように入力します。
make all
これは、プラグイン自体に固有の設定がない限り機能します。その場合はREADMEを参照してください。
さまざまなフォルダーには、さまざまなサブプロジェクトが含まれています。TempestSDRフォルダーには、メインのCライブラリが含まれています。このプロジェクトは、さまざまなフォルダーでSDRフロントエンドのプラグインをサポートし、クロスプラットフォームを目指しています。
このプロジェクトは、CDTプラグインを備えたEclipseでビルドされます(ただし必須ではありません)。現在、Windows、Linux、OS Xをサポートしています。一部のフロントエンドプラグインはクロスプラットフォームではない場合があります。また、Java Development Kit(JDK)をインストールしておく必要があります。
MinGWをインストールし、gccコマンドとmakeコマンドをPATHに含める必要があります。また、javacとjavahもPATHに含める必要があります。
近日公開予定。