文件系统隐写术

你好,哈布尔。

我想向您介绍一个小项目 隐写术,是我在学习的空闲时间制作的。

我做了一个关于文件系统中信息隐藏存储的项目(进一步 FS).
这可用于窃取用于教育目的的机密信息。

文件系统隐写术

选择一个非常古老的 Linux FS 作为原型 ext2.

履行

实施注意事项

如果“解开”ext2标准是件好事,那么你可以在FS中有一个所谓的替换它 超级块,它提供有关系统的基本信息。 我被发现后 块位图 и 索引节点表。 几乎立刻,将信息记录到当前空的 FS 块中的想法就诞生了。 现在值得考虑的是防止程序员武装 十六进制编辑器.

如果您存储隐藏信息而不加密,那么,即使它在文件系统中很模糊,它仍然会太显眼,特别是如果程序员知道要寻找什么的话。 因此,决定对源文件的所有块进行加密。 我选择了分组密码 AES,但正如你所理解的,这并不重要。

为了在阅读时将必要的块与所有其他块分开,决定在每个块的开头添加一个特殊标记。 该令牌根据源文件中的块号进行加密。 这个技巧不仅可以立即找到必要的块,还可以识别它们的正确顺序。

系统的一般工作原理。

文件系统隐写术

录音算法

要点:

  • 首先向源文件系统写入一些信息;
  • 删除此信息(不一定是全部);
  • 将要隐藏的文件分成等长的块,添加标记;
  • 加密这些块;
  • 将加密块放入空 FS 块中。

对于框图爱好者

下面是记录算法的框图。 该算法接收四个文件作为输入:
-可修改文件系统的映像;
-受隐写术保护的文件;
-带有 AES 加密密钥的文件;
- 带标记的文件。
文件系统隐写术

值得注意的是,该算法有一个缺点:将文件写入 FS 后, 不得 将任何新信息写入 FS,因为任何新信息都可能最终出现在我们分配给压缩文件的块中,尽管这也开启了“快速覆盖我们的踪迹”的可能性。

但很明显如何解决这个问题:有必要重写在 FS 中写入块的算法。 这是一项可以理解但极其耗时的任务。
对于概念证明,我没有实现这一点。

因此,将对 FS 进行以下更改;这是在隐写术之前 FS 的样子(之前录制了音频文件)。
文件系统隐写术
这就是 FS 的样子,信息已经被压缩了。
文件系统隐写术

读取算法

要点:

  • 知道密钥和构建标记的方法,组成前N个标记,并保证N乘以文件系统块的长度大于隐写文件的长度;
  • 在 FS 中以标记开始搜索块;
  • 破译接收到的块并分离标记;
  • 以正确的顺序收集生成的块并获取源文件。

对于框图爱好者

下面是记录算法的框图。 该算法接收三个文件作为输入:
- 文件系统映像;
-带有 AES 加密密钥的文件;
- 带标记的文件。
文件系统隐写术

程序运行后,会出现读取文件,该文件将是从隐写文件系统中提取的文件;如果密钥或标记指定不正确,则读取文件将为空。
(对于爱美的人来说,您不仅可以插入文件,还可以插入包含元信息的“标头”:文件名、权限、上次修改时间等)

启动自动化

为了方便起见,编写了 bash 脚本来在 Linux 上自动启动(在 Ubuntu 16.04.3 LTS 上测试)。
让我们一步步看一下启动过程。
记录:

  1. sudo Copy_Flash.sh “DEVICE” - 从 DEVICE(闪存)获取 FS 映像;
  2. ./Write.sh “FILE” “KEY” “MARKER” – 创建虚拟环境,下载必要的库并运行写入脚本;
  3. sudo ./Write_Flash.sh “DEVICE” – 将更改后的 FS 再次写入 DEVICE。

阅读:

  1. sudo Copy_Flash.sh “DEVICE” - 从 DEVICE(闪存)获取 FS 映像;
  2. ./Read.sh“KEY”“MARKER”——创建虚拟环境,下载必要的库并运行skipt进行读取;
  3. 在当前目录中,打开读取文件 - 这是压缩信息。

结论

这种隐写术方法可能需要改进、额外的测试和扩展到更流行的文件系统,例如 Fat32, NTFS и ext4.
但这项工作的目的是展示在文件系统中进行信息隐藏存储的原理。
借助此类算法,您可以无所畏惧地存储信息,并且如果您知道密钥,则可以不通过暴力(而是通过很长的算法)来破解这样的系统,那么在不知道密钥的情况下,这在我看来,系统绝对稳定,但是,这可以作为单独一篇文章的原因。

所有代码均在 Python 版本 3.5.2 中实现。 工作示例 在我的 YouTube 频道上展示。 该项目的完整代码发布在 github上.
(是的,是的,我知道对于生产版本,你需要用“快速”的东西编写,例如 C 😉)
在此实现中,隐写术的输入文件的大小不应超过 1000 kB。

我想向用户表示感谢 帕维尔·MSTU 为规划研究提供宝贵意见以及对文章设计的建议。

来源: habr.com

添加评论