ステガノグラフィ 別のファイル内にファイル、画像、ビデオ、テキストを隠すプロセスです。ウィキペディアで言及されているように、ステガノグラフィは2つのギリシャ語の組み合わせです。 steganos これは、「覆われている、隠されている、または保護されている」ことを意味し、 graphein それは「書く」という意味です。情報筋によると、この方法の後にはヒスティアイオスが最初に続きました。 、古代ギリシャの王、紀元前440年にさかのぼります。彼は最も信頼できる使用人の頭を剃り、秘密のメッセージを頭に刻みました。髪の毛が再成長した後、彼はその家臣を家臣の1人に送り、ギリシャへの次の攻撃に関する情報を含むメッセージを伝えました。現在、現代では、ステガノグラフィは進化し、大幅に改善され、デジタルシークレットメッセージを別のファイルに隠して送受信するために広く使用されています。ステガノグラフィの詳細については、このリンクを参照してください。 。 Linuxで画像内のファイルを非表示にする方法を見てみましょう。
免責事項:
ステガノグラフィは広大なトピックです。このチュートリアルでは、ステガノグラフィのコアコンセプトである画像内のファイルを非表示にする方法についてのみ説明します。セキュリティの専門家がこれを破ることができないと思い込まないでください。ここで説明する方法は非常に基本的なものであるため、中級のセキュリティ専門家でも数時間で簡単に破ることができます。以下で説明するこの手順は、純粋に教育目的です。いかなる種類の誤用についても責任を負いません。
Linuxで画像内のファイルを非表示にする
さまざまな方法で画像内のファイルを非表示にすることができます。ここでは5つの方法を示しました。
方法1
この方法では、追加のソフトウェアは必要ありません。 Linuxの基本的なコマンドラインの知識だけで十分です。
image.jpgという画像ファイルが1つあります およびskというディレクトリ 。このディレクトリ内には、 secret.txtというファイルがあります。 秘密のメッセージがあります。これは、image.jpgファイルに埋め込むファイルです。非表示にするファイルは、このディレクトリ内にいくつでも配置できます。次に、ディレクトリを圧縮します sk secret.zipとして保存します 単一のファイルとして作成します。最後に、 cat を使用してzipファイル(secret.zip)と画像ファイル(image.jpg)を連結します。 コマンドを実行し、 ostechnix.jpgとして保存します 。
物事をより明確にするために
- image.jpg -ランダムな画像ファイル。
- sk -すべての秘密ファイルを含むディレクトリ。
- secret.zip - skのアーカイブ ディレクトリ。
- ostechnix.jpg -secret.zipとimage.jpgの両方を含む出力画像ファイル。
ステップ1: 画像ファイルとディレクトリをフォルダに入れます。両方をドキュメントに入れました フォルダ。
ステップ2: 非表示にするすべてのファイルをフォルダ「sk」内に移動します。次に、このフォルダを圧縮して "secret.zip"として保存します 。フォルダを圧縮するには、フォルダを右クリックして、圧縮を選択します。 。
ステップ3: 次に、ターミナルを開きます。 zipファイルと画像ファイルを保存した場所に移動します(この場合はドキュメントです) )。最後に、 secret.zipを連結します およびtest.jpg ファイルを作成し、 catを使用してostechnix.jpgとして保存します コマンド。
$ cd Documents
$ cat image.jpg secret.zip > ostechnix.jpg
以上です。 ostechnix.jpg内の機密ファイルを非表示にしました 。重要なファイルです。 ostechnix.jpgを除く他のすべてのファイルを削除するだけです 。
ostechnix.jpg 通常の画像ファイルのように見え、誰でも任意の画像ビューアアプリケーションを使用して表示できます。ただし、このファイルに機密ファイルが含まれていることを知らない可能性があります。
画像ファイル内の隠しファイルを表示するには ostechnix.jpg 、次のコマンドを使用して解凍します:
$ unzip ostechnix.jpg
または、
$ unzip -t ostechnix.jpg
出力例:
Archive: ostechnix.jpg warning [ostechnix.jpg]: 712139 extra bytes at beginning or within zipfile (attempting to process anyway) creating: sk/ inflating: sk/secret.txt

画像ファイルを解凍する
上記の出力にあるように、ディレクトリ sk 内部に秘密のファイルがあるものが抽出されました。ここで、フォルダに戻って内容を確認します。そこにすべてのファイルが表示されます。
この方法の欠点の1つは、画像ファイルにパスフレーズを追加できないことです。心配ない!次の方法では、出力ファイルにパスフレーズを追加できます。
方法2-Steghideを使用する
ステグハイド は、画像または音声ファイル内の機密データを非表示にするのに役立つコマンドラインユーティリティです。 JPEG、BMP、WAV、AUファイルをサポートしています。
Steghideは、多くのLinuxディストリビューションのデフォルトのリポジトリで利用できます。
Arch Linuxとそのバリアントでは、次のコマンドを使用してインストールできます:
$ sudo pacman -S steghide
Debian、Ubuntuの場合:
$ sudo apt install steghide
これで、以下のように画像または音声の中に機密ファイルを隠すことができます。暗号化する機密ファイルと画像または音声ファイルを同じフォルダに置いていると思います。それらを別のフォルダに配置する場合は、次のコマンドでフルパスを指定する必要があります。
$ steghide embed -ef secret.txt -cf ostechnix.jpg
パスフレーズの入力を求められます。
Enter passphrase: Re-Enter passphrase: embedding "secret.txt" in "ostechnix.jpg"... done

Steghideを使用してファイルを画像に非表示にする
上記の例では、 secret.txtという名前のテキストファイルを埋め込みました。 ostechnix.jpgという名前の画像ファイルに 。これで、元のsecret.txtファイルを削除できます。なぜなら、画像ファイルの中に埋め込んだだけだからです。複数のファイルを埋め込む場合は、それらを1つのフォルダーに入れて圧縮し、上記のように非表示にします。
画像からシークレットファイルを抽出するには、次のコマンドを実行します。
$ steghide extract -sf ostechnix.jpg
パスフレーズを入力して抽出します:
Enter passphrase: wrote extracted data to "secret.txt".

steghideを使用して画像からファイルを抽出する
詳細については、manページを参照してください。
$ man steghide
方法3-Outguessを使用する
推測 は、画像内の機密ファイルを非表示にするためのさらに別のコマンドラインステグノグラフィックツールです。現在、PPM、PNM、およびJPEG画像形式をサポートしています。
Debian、Ubuntu、その他のDEBベースのシステムにインストールするには、次のコマンドを実行します。
$ sudo apt install outguess
インストールしたら、シークレットファイルとイメージを保存した場所に移動し、次のコマンドを使用してシークレットファイルをイメージに埋め込みます。
$ outguess -d secret.txt ostechnix.jpg output.jpg
出力例:
Reading ostechnix.jpg.... JPEG compression quality set to 75 Extracting usable bits: 158203 bits Correctable message size: 77641 bits, 49.08% Encoded 'secret.txt': 160 bits, 20 bytes Finding best embedding... 0: 88(45.8%)[55.0%], bias -17(-0.19), saved: -1, total: 0.06% 1: 90(46.9%)[56.2%], bias -27(-0.30), saved: -1, total: 0.06% 12: 85(44.3%)[53.1%], bias -36(-0.42), saved: 0, total: 0.05% 26: 91(47.4%)[56.9%], bias -45(-0.49), saved: -1, total: 0.06% 174: 87(45.8%)[54.4%], bias -48(-0.55), saved: 0, total: 0.05% 174, 39: Embedding data: 160 in 158203 Bits embedded: 190, changed: 87(45.8%)[54.4%], bias: -48, tot: 158844, skip: 158654 Foiling statistics: corrections: 77, failed: 6, offset: 864.696970 +- 310.577032 Total bits changed: 39 (change 87 + bias -48) Storing bitmap into data... Writing output.jpg....
ここでは、 output.jpg ファイルは私たちの機密データファイルを持っているものです。安全に保管し、他のすべてを削除してください。
以下のように、出力ファイルにパスフレーズを追加することもできます。
$ outguess -k "my secret key" -d secret.txt ostechnix.jpg output.jpg
「私の秘密鍵」を自分のパスフレーズに置き換えてください。
ファイルを抽出するには、次のようにします。
$ outguess -r output.jpg secret.txt
出力例:
Reading output.jpg.... Extracting usable bits: 158203 bits Steg retrieve: seed: 174, len: 20
パスフレーズを使用したことがある場合は、代わりに次のコマンドを使用してください。
$ outguess -k "my secret key" -r output.jpg secret.txt
詳細については、manページを参照してください。
$ man outguess
画像または音声内のファイルを非表示にする3つのコマンドラインユーティリティを見てきました。コマンドラインの方法が気に入らない場合は、ここに2つのグラフィカルなステガノグラフィツールがあります。
方法4-Stegosuiteを使用する
ステゴスイート 画像内のファイルを非表示にするグラフィカルなステガノグラフィツールです。これは、 Javaで記述された無料のオープンソースステガノグラフィツールです。 。 AESを使用します データを埋め込むための暗号化方式。 BMP、GIF、JPGの画像形式をサポートしています。
Debian、Ubuntu、その他のDEBベースのシステムにインストールするには、次のコマンドを実行します。
$ sudo apt install stegosuite
インストールしたら、DashまたはMenuからStegosuiteを起動します。

Stegosuiteインターフェース
ファイル->開くをクリックします メニューバーから、ファイルを非表示にするために使用する画像を選択します。次に、最初の列にメッセージを入力します。 2番目の列を右クリックして、[ファイルの追加..]を選択します。最後に、3番目の列にパスフレーズを入力します。

stegosuiteにファイルを追加する
最後に、[埋め込み]をクリックします Stegosuiteインターフェースの下部にあるボタン。

stegosuiteを使用してファイルを埋め込む
これで、画像を選択したのと同じフォルダ自体に、「filename_embed」という名前の新しい画像ファイルが作成されます。たとえば、Documentsフォルダから「image.jpg」という画像を選択した場合、Documentsフォルダ自体に「image_embed.jpg」という名前の新しい画像ファイルが作成されます。
画像からシークレットファイルを抽出するには、Stegosuiteインターフェースでもう一度開き、パスフレーズを入力して、[抽出]をクリックします。 ボタン。

stegosuiteを使用してファイルを抽出する
すべてのファイルは同じフォルダ自体に抽出されます。
詳細については、StegosuiteのWebサイトを参照してください。 。
方法5-Stegを使用
ステグ は、 C ++ を使用して記述された、シンプルなクロスプラットフォームのグラフィカルステガノグラフィツールです。 プログラミング言語。ポータブルソフトウェアなので、ダウンロードしてどこにでも持ち運び、使用しているオペレーティングシステムに関係なく、すぐに使い始めることができます。 Stegは、JPEG、JPG、TIFF、PNG、およびBMP画像形式をサポートしています。ステガノグラフィと暗号化の手法を使用して、圧縮または非圧縮の画像内のデータを非表示にします。
使用法
このリンクをクリック Stegアプリケーションをダウンロードします。 32ビットアーキテクチャと64ビットアーキテクチャの両方で利用できます。
または、使用するアーキテクチャに応じて、次のコマンドを使用してダウンロードします。
64ビットの場合:
$ wget https://googledrive.com/host/0B-_yxJMDtRxyUExLZzZ3S2VDbjQ/steg-v1.0.0.2-linux64.tgz
32ビットの場合:
$ wget https://googledrive.com/host/0B-_yxJMDtRxyRDNGNk1YcXR0UTg/steg-v1.0.0.2-linux32.tgz
ダウンロード後、コマンドを使用して解凍します:
$ tar -xvzf steg-v1.0.0.2-linux64.tgz
Stegディレクトリに移動:
$ cd steg-v1.0.0.2-linux64/
そして、次のコマンドを入力して実行します。
$ ./steg.sh
はいをクリックします 使用許諾契約に同意します。
[OK]をクリックして続行します。
これは、Stegアプリケーションのデフォルトのインターフェースがどのように見えるかです。
では、画像内のデータを非表示にしましょう。
これを行うには、ファイル->一般的な画像を開くに移動します またはJPEG画像を開く 。 大きなサイズの画像を選択していることを確認してください より多くのデータをその中に保存します。選択する画像が大きいほど、画像内に保存できる量が多くなります。
画像を開くと、元の画像と変更された画像(出力画像)がそれぞれ左側と右側のパネルに表示されます。また、右下隅の画像内にデータを保存するために使用可能なサイズが表示されます。

Stegを使用してLinuxの画像内のファイルを非表示にする
次に、非表示->データの非表示に移動します トップメニューバーから。非表示にするファイルを選択します。選択したファイルが、変更されたイメージの使用可能なスペースよりも小さいことを確認してください。データを追加すると、データが正常に非表示になりましたという確認ダイアログボックスが表示されます。 。
ここに重要な部分があります。さまざまな暗号化モードを選択できます。
- 自動: データは暗号化されますが、PassPhraseがないか、データを抽出するためにキーが必要になります。
- 対称: データを暗号化するにはPassPhraseを指定する必要があり、受信者はデータを抽出するために同じPassPhraseが必要になります。
- 非対称の署名なし: データを非表示にする場合(あなたが送信者)、受信者の公開鍵のみが必要です。データを抽出する場合(あなたが受信者である場合)、必要なのは秘密鍵のみです。
- 非対称署名: データを非表示にする場合(あなたが送信者)、受信者の公開鍵と秘密鍵が必要です。データを抽出する場合(あなたが受信者である場合)、秘密鍵のみが必要ですが、送信者の公開鍵が要求されます。送信者の公開鍵を提供しない場合、抽出プロセスの最後に、送信者のIDが検証されないことが警告されます。送信者の公開鍵を提供すると、署名の検証が成功した場合に通知されます。
任意の暗号化方法を選択できます。
特定の暗号化方式を選択するには、編集->構成に移動します メニューバーから。デフォルトの暗号化方式は自動です 。また、必要に応じて、ファイルにいくつかのメッセージを埋め込むことができます。
すべて問題がなければ、保存をクリックします ツールバーのボタンをクリックして、好きな場所に保存します。
完了です。画像データは画像内で暗号化されます。この画像は通常の画像のように見えます。任意の画像ビューアアプリケーションを使用して表示できます。
非表示のデータを抽出するには、Stegアプリケーションで暗号化された画像を開くだけです。これを行うには、抽出->データの抽出に移動します メニューバーから。
データを保存する場所を選択します。完了しました!
以上です。これで、データを表示できるようになります。
ご覧のとおり、これは非常に簡単に実行でき、特別なスキルは必要ありません。画像を開き、機密データを非表示にして、それを渡すだけです。
Stegの詳細については、公式ウェブサイトを確認してください。 。