如何使用隐写术在 Ubuntu 上隐藏图像中的机密文件
有时,我们需要对系统上高度机密的数据进行加密,以使使用我们系统的其他人无法得知我们隐藏了任何信息。实现此目的的一种方法是将文件和秘密消息隐藏在其他现有文件(例如图像和音频)中。当您想要通过网络传达私人消息或将文件发送给另一个人而不损害其安全性时,这也非常有用。您可以简单地嵌入机密数据以及密码或密钥,以便只有受信任的人才能打开该文件。这种将一个文件安全地隐藏到另一个文件中的加密称为隐写术。
为什么是隐写术?
隐写术比密码学更受青睐,因为在后者中,对手会知道文本或文件中隐藏着某些内容。他们甚至可以通过付出一些努力来破解密码并获取信息。然而,在隐写术中,第三人甚至不会意识到看似无害的图像或音频文件携带着秘密消息或嵌入其中的文件这一事实。
在本文中,我们将讨论三种方法,您可以通过 Ubuntu UI 和命令行将机密文件加密为映像。
我们已在 Ubuntu 18.04 LTS 系统上运行本文中提到的命令和过程。由于我们使用 Ubuntu 命令行、终端应用程序来安装三个隐写实用程序;您可以通过系统 Dash 或 Ctrl+Alt+T 快捷键打开它。
方法 1:通过 Steghide 实用程序(命令行)
Steghide 是一个命令行实用程序,可让您将机密数据隐藏在各种图像和音频文件中。
斯特格海德安装
为了安装该工具的最新版本,请打开 Ubuntu 终端并首先通过 sudo 命令更新您的存储库索引:
sudo apt update
现在通过以下命令安装 Steghide 实用程序:
sudo apt-get install steghide
系统将提示您选择是/否,以确认是否要继续安装。请输入 Y,然后按 Enter 继续,之后软件将成功安装到您的系统上。
使用steghide进行文件加密
为了加密机密文件,您需要有要加密的文件以及要隐藏它的图像或音频文件。Stegide 支持加密为 AU、BMP、JPEG 和 WAV 文件类型。
您可以使用以下语法将文件嵌入到 JPEG 文件中:
$steghide embed -efconfidentialfile.txt -cf image.jpg
我们假设需要将文件从当前文件夹加密到当前文件夹。如果初始机密文件位于系统上的其他位置,您需要提供其完整路径。同样,如果您的图像文件位于其他位置,则需要通过此命令指定其完整路径。
例子 :
steghide embed -ef examplefile.txt -cf sample.jpg
系统将要求您提供嵌入机密文件所需的密码。提取或解密文件时需要提供此密码。您需要输入该密码两次,或者只需按 Enter 键即可在没有密码的情况下进行加密。
在此示例中,我们将文本文件嵌入到 JPEG 文件中。加密完成后,您可以删除最初的机密文件,只保留稍后用于解密的图像文件。
文件提取
使用以下语法从嵌入的图像文件中提取原始机密文件:
$steghide提取-sf image.jpg
例子 :
steghide extract -sf sample.jpg
系统会要求您提供密码;一旦您提供正确的密码,您的机密文件将从图像文件中提取。
删除/卸载
每当您想从系统中卸载 Steghide 工具时,只需输入以下命令作为 sudo 即可:
sudo apt-get remove steghide
方法 2:通过 Outguess 实用程序(命令行)
Outguess 也是一个命令行隐写实用程序,可以将隐藏信息插入到数据源的冗余位中。该程序依赖于数据特定的处理程序,该处理程序将提取冗余位并在修改后将其写回。它当前支持的文件格式包括 JPEG、PPM 和 PNM,尽管它可以使用任何类型的数据,只要提供处理程序即可。
猜测安装
为了安装该工具的最新版本,请打开 Ubuntu 终端并首先通过 sudo 命令更新您的存储库索引:
sudo apt update
现在通过以下命令安装 Outguess 实用程序:
sudo apt-get install outguess
系统将提示您选择是/否,以确认是否要继续安装。请输入 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
在我们的示例中,输出 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,然后按 Enter 继续,之后软件将成功安装到您的系统上。
启动 Stegosuite
您可以通过命令行启动 UI 工具,如下所示:
stegosuite
您还可以通过 Ubuntu UI 通过 Dash 搜索它来启动它,或者直接从应用程序列表中访问它:
Stegosuite 实用程序将在以下视图中打开:
文件加密
为了使用机密文件加密图像文件,首先需要通过“文件”菜单加载图像文件。
从文件浏览器中选择 BMP、GIF、JPG 或 PNG 格式的文件,然后单击“确定”按钮。图像文件将加载到 Stegosuite 主窗口中。
您可以通过此窗口执行以下三项任务:
- 输入秘密消息以及您要嵌入的文件。
- 右键单击,然后在“嵌入文件”区域添加机密文件。
- 输入稍后从图像中提取嵌入文件和秘密消息时将使用的密码。
执行这些步骤后,单击“嵌入”按钮,将在您的系统上创建一个名为“filename_embed”的新图像文件。由于此名称包含单词“embed”,您可以将此文件的名称更改为其他名称以使其更加保密。如果需要,您还可以从系统中删除原始机密文件。
文件提取
在此示例中,我的机密文件嵌入到名为“sample_embed.jpg”的新 jpg 文件中,但出于隐私目的,我后来将名称更改为“example.jpg”。为了从嵌入的图像文件中提取原始机密文件,您可以从文件浏览器中右键单击图像文件,然后从菜单中选择“使用其他应用程序打开”,然后从选择应用程序列表中选择 Stegosuite 作为如下:
或者,您可以打开 Stegosuite 应用程序并从“文件”菜单加载嵌入的图像文件。文件加载后,只需提供密码并单击“提取”按钮,原始机密文件就会被提取回您的系统。
删除/卸载
每当您想要从系统中卸载 Stegosuite 实用程序时,您可以通过 Ubuntu 软件管理器或只需在终端中以 sudo 形式输入以下命令来执行此操作:
sudo apt-get remove stegosuite
结论
通过本文,您了解了 Linux 中的隐写术技能,用于将机密文件和消息隐藏或嵌入到图像和音频文件中。如果您更喜欢 UI,或者即使您是一位精通终端的人,您也可以从我们在本文中描述的工具中选择一个工具,并巧妙地将系统上的任何机密信息文件隐藏到看似无关的图像文件中。