如何使用隐写术在 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

安装 steghide

系统将通过 Y/n 选项提示您确认是否要继续安装。 请输入 Y 然后点击 Enter 继续,之后该软件将成功安装在您的系统上。

使用 steghide 进行文件加密

为了加密机密文件,您需要拥有要加密的文件以及要隐藏它的图像或音频文件。 Steghide 支持加密为 AU、BMP、JPEG 和 WAV 文件类型。

这是您可以用来将文件嵌入 JPEG 文件的语法:

$ steghide embed -ef 机密文件.txt -cf image.jpg

我们假设文件需要从当前文件夹加密到当前文件夹。 如果初始机密文件位于系统的其他位置,您需要提供其完整路径。 同样,如果您的图像文件位于其他位置,则需要通过此命令指定其完整路径。

例子:

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

系统将要求您提供嵌入机密文件所需的密码。 在提取或解密文件时需要提供此密码。 您需要输入此密码两次,或者您只需点击 Enter 为了在没有密码的情况下进行加密。

使用 steghide 隐藏文件

在此示例中,我们将文本文件嵌入到 JPEG 文件中。 加密完成后,您可以删除最初的机密文件,只保留稍后将用于解密的图像文件。

文件提取

使用以下语法从嵌入的图像文件中提取原始机密文件:

$ steghide extract –sf image.jpg

例子:

$ steghide extract -sf sample.jpg

使用 steghide 解密文件

系统会要求您提供密码; 一旦您提供正确的密码,您的机密文件将从图像文件中提取。

删除/卸载

每当您想从系统中卸载 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

用猜测隐藏照片中的文件

在我们的示例中,输出 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

方法三:通过 Stegosuite 工具(UI)

Stegosuite 是一个用 Java 编写的图形化、免费和开源的隐写工具。 您可以轻松地使用它来隐藏图像中的机密文件。 您可以通过 Ubuntu 软件管理器或命令行安装此工具。 它支持将多个文件和文本消息隐藏到 BMP、GIF 和 JPG 图像文件中。

Stegosuite 安装

为了通过命令行安装此工具的最新版本,请打开 Ubuntu 终端并首先通过以下命令更新您的存储库索引: sudo:

$ sudo apt update

现在通过以下命令安装 Stegosuite 实用程序:

$ sudo apt-get install stegosuite

安装 Stegosuite

系统将通过 Y/n 选项提示您确认是否要继续安装。 请输入 Y 然后点击 Enter 继续,之后该软件将成功安装在您的系统上。

启动 Stegosuite

您可以通过命令行启动 UI 工具,如下所示:

$ stegosuite

启动 Stegosuite

您还可以通过 Ubuntu UI 启动它,方法是通过 Dash 搜索它或直接从应用程序列表中访问它:

从桌面启动 Stegosuite

Stegosuite 实用程序将在以下视图中打开:

隐秘套件用户界面

文件加密

为了用机密文件加密图像文件,首先,您需要通过文件菜单加载图像文件。

加载图像文件

从文件浏览器中选择 BMP、GIF、JPG 或 PNG 格式的文件,然后单击确定按钮。 图像文件将加载到 Stegosuite 主窗口中。

您可以通过此窗口执行以下三项任务:

  • Enter 一条秘密消息以及您要嵌入的文件。
  • 右键单击,然后在“嵌入文件”区域中添加机密文件。
  • Enter 稍后从图像中提取嵌入文件和秘密消息时将使用的密码。

Enter  秘密消息或嵌入文件

执行这些步骤后,单击嵌入按钮,将在您的系统上创建一个名为“filename_embed”的新图像文件。 由于此名称包含“嵌入”一词,您可以将此文件的名称更改为其他名称以使其更加机密。 如果需要,您还可以从系统中删除原始机密文件。

文件提取

在这个例子中,我的机密文件被嵌入到一个名为“sample_embed.jpg”的新 jpg 文件中,但出于隐私目的,我后来将名称更改为“example.jpg”。 为了从嵌入的图像文件中提取原始机密文件,您可以在文件浏览器中右键单击图像文件并从菜单中选择“使用其他应用程序打开”,然后从选择应用程序列表中选择 Stegosuite如下:

使用 Stegosuite 提取文件

或者,您可以打开 Stegosuite 应用程序并从“文件”菜单加载嵌入的图像文件。 加载文件后,只需提供密码并单击“提取”按钮,然后原始机密文件将被提取回您的系统。

Enter  提取密码

删除/卸载

每当您想从系统中卸载 Stegosuite 实用程序时,您可以通过 Ubuntu 软件管理器或简单地输入以下命令来完成 sudo 在您的终端中:

$ sudo apt-get remove stegosuite

结论

通过本文,您了解了 Linux 中的隐写技术,用于将您的机密文件和消息隐藏或嵌入到图像和音频文件中。 如果您更喜欢 UI,或者即使您是一个精通终端的人,您也可以从我们在本文中描述的工具中选择一个工具,并巧妙地将您系统上的任何机密信息文件隐藏到看似无关紧要的图像文件中。