如何使用隱寫術在 Ubuntu 上隱藏圖像中的機密文件

有時,我們需要對系統上高度機密的數據進行加密,使使用我們系統的其他人無法得知我們隱藏了任何信息。 一種方法是將文件和秘密消息隱藏在其他現有文件(如圖像和音頻)中。 當您想在不影響其安全性的情況下通過網絡向他人傳達私人信息或發送文件時,這也非常有用。 您可以簡單地嵌入機密數據以及密碼或密鑰,以便只有受信任的人才能打開該文件。 這種將一個文件安全地隱藏到另一個文件中的加密稱為 隱寫術.

為什麼是隱寫術?

隱寫術比密碼術更受歡迎,因為在後面,對手會知道某些東西隱藏在文本或文件中。 他們甚至可以通過付出一些努力來破解密碼並獲取信息。 然而,在隱寫術中,第三人甚至不會意識到一個看似無害的圖像或音頻文件攜帶秘密信息或嵌入其中的文件的事實。

在本文中,我們將討論通過 Ubuntu UI 和命令行將機密文件加密為圖像的三種方法。

我們已經在 Ubuntu 18.04 LTS 系統上運行了本文中提到的命令和過程。 由於我們使用 Ubuntu 命令行終端應用程序來安裝三個隱寫實用程序; 您可以通過系統 Dash 或 Ctrl+Alt+T 捷徑。

方法 1:通過 Steghide 實用程序(命令行)

Steghide 是一個命令行實用程序,可讓您將機密數據隱藏在各種圖像和音頻文件中。

Steghide 安裝

要安裝此工具的最新版本,請打開 Ubuntu 終端並首先通過以下命令更新您的存儲庫索引 sudo:

$ sudo apt update

現在通過以下命令安裝 steghide 實用程序:

$ sudo apt-get install steghide

系統將提示您一個 Y/n 選項以確認您是否要繼續安裝。 請輸入 Y 然後點擊 Enter 繼續,之後軟件將成功安裝到您的系統上。

使用 steghide 加密文件

為了加密機密文件,您需要擁有要加密的文件和要隱藏的圖像或音頻文件。 Steghide 支持加密為 AU、BMP、JPEG 和 WAV 文件類型。

這是您可以用來將文件嵌入 JPEG 文件的語法:

$ steghide 嵌入 -ef 機密文件.txt -cf 圖像.jpg

我們假設文件需要從當前文件夾加密到當前文件夾。 如果初始機密文件位於系統上的其他位置,則需要提供其完整路徑。 同樣,如果您的圖像文件位於其他位置,則需要通過此命令指定其完整路徑。

例子:

$ steghide embed -ef examplefile.txt -cf sample.jpg

系統會要求您輸入嵌入機密文件所需的密碼。 在提取或解密文件時需要提供此密碼。 您需要輸入此密碼兩次,或者您只需點擊 Enter 為了在沒有密碼的情況下加密。

在這 example,我們已將文本文件嵌入到 JPEG 文件中。 加密完成後,您可以刪除最初的機密文件,只保留稍後用於解密的圖像文件。

文件提取

使用以下語法從嵌入的圖像文件中提取原始機密文件:

$ steghide 提取物 –sf image.jpg

例子:

$ steghide extract -sf sample.jpg

系統會要求您提供密碼; 一旦您提供了正確的密碼,您的機密文件就會從圖像文件中提取出來。

刪除/卸載

每當您想從系統中卸載 Steghide 工具時,只需輸入以下命令作為 sudo:

$ sudo apt-get remove steghide

方法 2:通過 Outguess 實用程序(命令行)

Outguess 也是一個命令行隱寫實用程序,它允許將隱藏信息插入到數據源的冗餘位中。 該程序依賴於數據特定處理程序,這些處理程序將提取冗餘位並在修改後將它們寫回。 它目前支持的文件格式包括 JPEG、PPM 和 PNM,儘管它可以使用任何類型的數據,只要提供了處理程序。

Outgues 安裝

要安裝此工具的最新版本,請打開 Ubuntu 終端並首先通過以下命令更新您的存儲庫索引 sudo:

$ sudo apt update

現在通過以下命令安裝 Outguess 實用程序:

$ sudo apt-get install outguess

系統將提示您一個 Y/n 選項以確認您是否要繼續安裝。 請輸入 Y 然後點擊 Enter 繼續,之後軟件將成功安裝到您的系統上。

文件加密

為了加密機密文件,您需要擁有要加密的文件和要隱藏的圖像文件。

這是您可以用來將文件嵌入 JPEG 文件的語法:

$ outguess -d examplefile.txt image.jpg image-output.jpg

“image-output.jpg”文件是您的機密文件將嵌入其中的文件。

如果要指定在嵌入後提取文件時將使用的密鑰,請使用以下語法:

$ outguess -k “秘鑰” -d examplefile.txt image.jpg image-output.jpg

我們假設文件需要從當前文件夾加密到當前文件夾。 如果初始機密文件位於系統上的其他位置,則需要提供其完整路徑。 同樣,如果您的圖像文件位於其他位置,則需要通過此命令指定其完整路徑。

例子:

$ outguess -k "secret key" -d examplefile.txt sample.jpg sample-output.jpg

在我們的 example, 輸出 jpg 文件將寫入我們當前的文件夾中。 加密完成後,您可以刪除最初的機密文件,只保留稍後用於解密的輸出圖像文件。

文件提取

使用以下語法從嵌入的輸出圖像文件中提取原始機密文件:

$ outguess -r image-output.jpg secret.txt (當沒有提供秘鑰時)

$ outguess -k “secret key” -r image-output.jpg secret.txt(加密時指定了密鑰)

例子:

$ outguess -k “secret key”-r sample-output.jpg examplefile.txt

提取後,Outguess 工具還會驗證統計信息,以確保原始文件與加密前完全相同。

刪除/卸載

每當您想從系統中卸載 Outguess 工具時,只需輸入以下命令即可 sudo:

$ sudo apt-get remove outguess

方法 3:通過 Stegosuite 工具 (UI)

Stegosuite 是一個用 Java 編寫的圖形化、免費和開源的隱寫工具。 您可以輕鬆地使用它來隱藏圖像中的機密文件。 您可以通過 Ubuntu 軟件管理器或命令行安裝此工具。 它支持將多個文件和文本消息隱藏到 BMP、GIF 和 JPG 圖像文件中。

Stegosuite 安裝

為了通過命令行安裝這個工具的最新版本,打開 Ubuntu 終端,首先通過以下命令更新你的存儲庫索引: sudo:

$ sudo apt update

現在通過以下命令安裝 Stegosuite 實用程序:

$ sudo apt-get install stegosuite

系統將提示您一個 Y/n 選項以確認您是否要繼續安裝。 請輸入 Y 然後點擊 Enter 繼續,之後軟件將成功安裝到您的系統上。

啟動 Stegosuite

您可以通過命令行啟動 UI 工具,如下所示:

$ stegosuite

您還可以通過 Dash 搜索它或直接從應用程序列表訪問它,從而通過 Ubuntu UI 啟動它:

Stegosuite 實用程序將在以下視圖中打開:

文件加密

為了用機密文件加密圖像文件,首先需要通過文件菜單加載圖像文件。

從文件瀏覽器中選擇 BMP、GIF、JPG 或 PNG 格式的文件,然後單擊確定按鈕。 圖像文件將加載到 Stegosuite 主窗口中。

您可以通過此窗口執行以下三個任務:

  • Enter 帶有要嵌入的文件的秘密消息。
  • 右鍵單擊,然後在“嵌入文件”區域中添加機密文件。
  • Enter 稍後從圖像中提取嵌入文件和秘密消息時將使用的密碼。

執行完這些步驟後,單擊“嵌入”按鈕,將在您的系統上創建一個名為“filename_embed”的新圖像文件。 由於此名稱包含“嵌入”一詞,因此您可以將此文件的名稱更改為其他名稱以使其更加保密。 如果需要,您還可以從系統中刪除原始機密文件。

文件提取

在這 example,我的機密文件被嵌入到一個名為“sample_embed.jpg”的新 jpg 文件中,但我將名稱更改為“example.jpg”稍後用於隱私目的。 為了從嵌入的圖像文件中提取原始機密文件,您可以在文件瀏覽器中右鍵單擊圖像文件,然後從菜單中選擇“使用其他應用程序打開”,然後從選擇應用程序列表中選擇 Stegosuite 作為如下:

或者您可以打開 Stegosuite 應用程序並從文件菜單加載嵌入的圖像文件。 加載文件後,只需提供密碼並單擊“提取”按鈕,原始機密文件將被提取回您的系統。

刪除/卸載

每當您想從系統中卸載 Stegosuite 實用程序時,您都可以通過 Ubuntu 軟件管理器或簡單地輸入以下命令來執行此操作 sudo 在您的終端中:

$ sudo apt-get remove stegosuite

結論

通過本文,您學習了 Linux 中的隱寫技術,用於將您的機密文件和消息隱藏或嵌入到圖像和音頻文件中。 如果您更喜歡 UI 或者即使您是終端專家,您可以從我們在本文中描述的工具中選擇一個工具,並巧妙地將系統上的任何機密信息文件隱藏到看似無關的圖像文件中。