ステガノグラフィーとは情報を埋め込んで存在を隠す技術のことである。たとえば画像の場合、ピクセルの色などを視認できないレベルで僅かに変化させることで情報を埋め込み、専用のツールのみで情報を復元できるようにする。
steghideはステガノグラフィー用のコマンドで、 jpegの他にはbmp、wav、auに対応している。開発が長らく止まっているため対応フォーマットが少なく、ステガノグラフィーの手法も古いが、今でもこの分野ではメジャーなツールらしい。
使い方
情報を埋め込む
steghide embed -cf example.jpg -ef secret.txt -p pass
-cfで画像ファイルを指定し、-efで埋め込む情報のファイルを指定、-pでパスフレーズを指定する。
画像に対して埋め込む情報が大きすぎると失敗する。
標準入力から埋め込む情報を読み込むなら、
echo secretinfo | steghide embed -cf example.jpg -ef - -p pass
このように-ef -と指定する。
また、画像はデフォルトでは上書きされる。上書きしたくないなら、
steghide embed -cf example.jpg -ef secret.txt -p pass -sf output.jpg
このように-sfで出力ファイル名を指定する。
情報を取り出す
steghide extract -sf example.jpg -p pass
-sfで画像ファイル、-pでパスフレーズを指定する。デフォルトでは、埋め込んだときと同じファイル名のファイルが作成される。
情報を標準出力に出力したいなら、
steghide extract -sf example.jpg -xf - -p pass
pngに対して使う
pngのような可逆圧縮フォーマットに対しては、いったんbmpに変換すれば一応使うことができる(bmpは無圧縮なので、pngから変換しても劣化しない)。ただし、透明度の情報が含まれている場合は変換時に消失する。埋め込む
変換にはImagemagickを使用した。convert example.png bmp3:example.bmp steghide embed -cf example.bmp -ef secret.txt -p pass convert example.bmp output.png
steghideはbmp4に対応していないので、変換時にbmp3:を指定する必要がある。
取り出す
convert output.png bmp3:output.bmp steghide extract -sf output.bmp -xf - -p pass