ステガノグラフィでは、普通のテキストファイルの情報が画像または音声のファイルに埋め込まれる。情報が埋め込まれたファイルは、見聞きする分には元の画像または音声ファイルと同じだが、ファイルサイズだけがわずかに変化する。セキュリティの度合いをさらに高めるために、埋め込む前のテキストファイルを暗号化しておくことも可能だ。
本稿では、機密情報をオブジェクトの内部に隠したりそこから取り出したりするための便利なツールをいくつか紹介する。こうしたプログラムやツールのほとんどは、各種Linuxディストリビューションのパッケージリポジトリから入手できる。
OutGuess
OutGuessは、画像オブジェクトの内部に情報を隠すことができるコンソールベースの一般的なステガノグラフィ・ツールだ。最新のバージョン0.2は、2001年後半にリリースされたもので、PPM、PNM、JPEGの各画像フォーマットへの埋め込みに対応している。OutGuessは、Linux、*BSD、Solaris、AIX、HP-UX、Mac OS X、Windowsで利用できる。
ここでは、プロダクションサーバのrootパスワードを安全な形で同僚に送信することを考える。最初にこのパスワードをpass.txtというファイルに記入してから、そのファイルを秘密鍵("summer" ― 誰にも口外しないこと)で暗号化し、暗号化されたファイルをgrill.jpgという画像ファイルに埋め込む。OutGuessでは、こうした操作が次のコマンド1つで実行できる。
~$ outguess -k summer -d pass.txt grill.jpg summer-grill.jpg
秘密鍵による機密データの暗号化が不要なら、-kオプションは外して構わない。ただし、このオプションを外してしまうと、この画像にファイルが埋め込まれていることを知っている者なら誰でもその出力ファイルを抽出できることになる。
上記コマンドにより、サーバのrootパスワードが埋め込まれたsummer-grill.jpgという画像ファイルができるので、あとはこのファイルをメールで同僚に送ればよい。この画像を見たところで誰もおかしな点に気付くことはないだろう。画像オブジェクトに埋め込まれたデータは人間の目には見えないからだ。
この画像ファイルを受け取った同僚は、そこからパスワードの情報を取り出す必要がある。暗号化に使われた秘密鍵を知っていれば、彼は次のコマンドを実行することができる。
~$ outguess -k summer -r summer-grill.jpg pass.txt
ここで-kオプションと秘密鍵を指定しない場合は、OutGuessによってpass.txtファイルが抽出されるもののそのファイルを読むことはできない。
