![如何将文件格式伪造为任意格式?](https://linux22.com/image/1142871/%E5%A6%82%E4%BD%95%E5%B0%86%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E4%BC%AA%E9%80%A0%E4%B8%BA%E4%BB%BB%E6%84%8F%E6%A0%BC%E5%BC%8F%EF%BC%9F.png)
.iso
我有一个包含敏感信息的10GB文件。
我怎样才能伪造它的格式成为我选择的格式(比如说.mp4
)
这种方法对任何格式都有效吗?
$ cat picture.png myiso.iso.gpg > picture2.png
其中picture.png
是一张随机图片,myiso.iso.gpg
是一个包含敏感信息的 gpg 加密文件, 是一个picture2.png
假格式的隐藏文件。
答案1
Linux 不关心文件扩展名。更改文件名不会让file
命令显示它是图片。它仍会显示它是 ISO。
您认为如何通过以下方式检索 ISO:
cat picture.png myiso.iso.gpg > picture2.png
为什么不加密文件?
gpg -c {file}
就足够了。它会要求输入两次密码。请设置一个好的密码,并且不要忘记它
如果您不想让任何人看到以“。”开头的文件名称并将其放入目录中,请删除除用户之外的所有权限,然后chattr -i {file}
从根会话中锁定它。
答案2
在我看来,这听起来很像 A/B 问题。你想以一种人们不会怀疑它是敏感数据的方式保护数据。
隐藏数据最简单的方法就是使用gpg
,TrueCrypt,卢克斯或类似的加密实用程序。
现在,您可以使用隐写术,但这并不是最好的主意,因为“通过隐匿性实现安全”的概念仍然会发挥作用。任何足够坚定的攻击者仍然能够提取文件或至少找到它(“这个人为什么有 10GB 的图像或损坏的 MP4?它可能隐藏了数据!”)。你依靠的是隐匿性实现安全,这是总是一个坏主意。
相反,如果你想保存一些东西并保持可信的否认,你只需要确保数据看起来是随机的并且没有标头。LUKS/cryptsetup
有一个选项 ( --header
),允许你将 LUKS 标头与数据分开存储(例如,存储在你随身携带的 USB 驱动器上),因此任何攻击者使用file
它都只会将其视为随机数据。而且,如果你怀疑有人正在接近,只需方便地“丢失”驱动器即可。
如果你是真的偏执狂,你总是可以使用隐藏卷在 LUKS 中,这将允许您拥有一个虚假的外部卷以及一个更秘密的内部卷。这为什么有用?举个例子:
漫画借自西科光盘
即使你受到橡皮管密码分析,您只能泄露外部(非秘密)卷密码和垃圾数据。而且,如果您已经销毁了头驱动器(或没有将其从安全的地方拿走),则无法解密,实际上只是一组随机数据。
总结:不要尝试隐写术。相反,只需删除加密标头即可使其看起来像随机数据。如果您真的很偏执,请额外创建一个“隐藏”卷以确保安全。您的加密文件不会被破解,因为使用专门的设备破解它实际上需要数百万年的时间。如果您因密码而被抓住/折磨,您可以为不重要的数据提供“假”密码。无论哪种方式,您都可以获得 2FA、合理的可否认性以及快速有效地摧毁其中一个因素的能力。
或者,您可以忽略所有这些,只保留一个普通的加密文件。反驳您的评论:
将其显示为加密表明它具有珍贵的内容,因此更容易被昂贵的临时硬件破解。
加密是真的如今,加密技术已经很常见了。几乎每部智能手机都加密了。每部智能手机都有珍贵/敏感的内容吗?好的加密需要数百万年的时间和数十万美元才能用非常专业的设备破解,仅仅“怀疑”就试图破解数据是不可行的。没错,你可能会得到国家机密,但你也可能很容易得到一些猫的照片(后者是远的更有可能)。正如上述 XKCD 的标题文字所说:
实际的现实是:没有人关心他的秘密。
答案3
由于当前提出的所有答案均未回答如何伪造文件格式的问题:
有两种方法可以将 ISO 的数据隐藏在 PNG 或 MP4 文件中。
- 隐写术,将一个文件、消息、图像或视频隐藏在另一个文件、消息、图像或视频中的做法。生成的文件将完全可见,就像一张无害的图片或电影一样。但是,这可能需要付出很多努力才能做到。
- 第二种方法是简单地将所选文件格式的标头(例如 PNG 的 8 字节标头)插入文件开头,以欺骗打开文件的任何程序,让它们认为它是该格式。您还应该更改文件扩展名,以防万一。但是,生成的文件在查看时很可能已损坏,这可能会引起怀疑。
当然,这也意味着您可能需要将 ISO 分成几部分,以进行更令人信服的伪装。10 GB 的 PNG 文件非常可疑。