隐写术是一种将一个文件隐藏到另一个文件中以在不引起任何怀疑的情况下秘密传递信息的艺术。 在本单元中,我们将学习如何在 Linux 上的媒体文件中隐藏我们的数据。
隐写术简介
正如我们所说,隐写术帮助我们将数据隐藏在不同类型的媒体文件中。 甚至可以使用密码对数据进行加密,以防止对其中包含的敏感信息进行不必要的访问。 出于演示目的,我们将在这张图片中隐藏一个简单的文本文件 燕尾企鹅:
在图像中隐藏数据的先决条件
出于我们的意图和目的,我们将使用一个名为 斯蒂格德 但首先我们需要使用 apt 命令安装以下依赖项:
$ sudo apt install -y libjpeg-dev libmcrypt-dev libmhash-dev
接下来,我们需要安装包本身:
$ sudo apt install steghide
这样我们就准备好了工具,现在我们可以进入下一步了
在媒体文件中隐藏我们的秘密文件
现在,我们将在 JPEG 图像中隐藏我们的秘密文本文件。 首先让我们使用以下命令生成图像的 md5sum:
$ md5sum Tux.jpg 52de2bedf7374c758dcb4a88027f8b81 Tux.jpg
接下来生成一个文件以隐藏到我们的图像中,并生成它的 md5sum:
$ echo "This Is A Super Secret Document" > Secret.txt $ tmp md5sum Secret.txt f886e930e3180f49fb0b4a6cbfc4ce55 Secret.txt
现在使用 斯蒂格德,我们使用以下语法:
$ steghide embed -cf <Media File> -ef <Secret File >
因此在我们的例子中,这看起来像:
$ steghide embed -cf Tux.jpg -ef Secret.txt Enter passphrase: Re-Enter passphrase: embedding "Secret.txt" in "Tux.jpg"... done
分解命令:
- steghide :这是我们用来隐藏文件的程序的名称
- embed :它告诉程序我们要嵌入信息
- -cf :指定封面文件,也就是媒体文件 (Tux.jpg)
- -ef : 嵌入文件,也就是我们想要隐藏的文件 (Secret.txt)
您还可以使用密码对机密文件进行加密,以增加一层安全性。
如果我们检查 md5sum 现在,我们将看到一个与之前不同的值,这表示文件的内容已更改。
$ md5sum Tux.jpg 639a806d89f42c8670fda0ba344aa6e0 Tux.jpg
因此,我们的文本文件成功隐藏在图像中!
从图像中提取数据
现在我们将从用隐写术修改的媒体文件中提取秘密信息。 确保您已删除原始文件,然后,您可以使用以下命令提取您的秘密文件:
$ steghide extract -sf <File Name>
例如,在我们的例子中,它看起来有点像这样:
$ steghide extract -sf Tux.jpg
这里,
- ‘斯蒂格德‘ 是我们用来提取秘密数据的程序的名称
- ‘提炼‘ 指示我们的程序从给定文件中提取数据
- ‘-sf‘ 标志表示 stego 文件,也就是我们要从中提取数据的文件
这应该会提示您输入密码,成功后,您的秘密文件应该被提取!
$ steghide extract -sf Tux.jpg Enter passphrase: wrote extracted data to "Secret.txt".
您甚至可以通过检查文件的 md5sum 来验证文件的完整性:
$ cat Secret.txt This Is A Super Secret Document $ md5sum Secret.txt f886e930e3180f49fb0b4a6cbfc4ce55 Secret.txt
这样我们的秘密就被保留了下来!
结论
我希望您现在了解隐写术的概念,并且已经学会了在图像中成功隐藏文本文件。 除了图像,您还可以隐藏音频文件中的数据。 Steghide 支持隐藏 JPEG、BMP、WAV 和 AU 文件格式作为封面文件。 您可以随时参考手册页以获取更多信息!