是否可以防止在 Linux 系统中确定文件类型?

信息安全 linux 文件类型
2021-08-21 04:02:28

我的 Ubuntu 系统上有几个文件,它们是 LUKS 加密分区。直到今天我自己都感到羞耻,我认为只需更改二进制文件的扩展名就足以隐藏文件的真实内容。即,如果我将我的 LUKS 分区重命名stuff为,windows.vdi那么每个人都会认为这是一个虚拟盒驱动器,尽管已损坏,因为尝试按照扩展名建议使用它肯定会失败。

但是今天我知道了这个file命令,它正确地显示了一个文件是什么:

file windows.vdi 
windows.vdi: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: xxx-xxx-xxx

我想隐藏的其他文件类型也有同样的问题,比如keepass密码文件等。

有谁知道在系统上隐藏文件的真正目的的任何方法?

这个想法是,在一个人无法抗拒提供密码的要求的情况下(例如,如果他被肉体俘虏并受到折磨),他应该能够在计算机关闭后立即否认任何加密的存在,即没有在另一个文件中隐藏任何文件,在二进制编辑器中编辑文件等,只是因为他可能没有足够的时间来做这件事

4个回答

您要查找的内容称为可拒绝加密

有两种形式的可拒绝加密。第一种是“信息论”可否认加密:攻击者无法执行数学分析的加密可以证明文件是加密数据而不是随机字节的集合。第二种是“现实世界”的可否认加密:在加密中,你可以做一些事情来用5 美元的扳手说服攻击者你的文件不包含被盗的死星计划。

每个人都会为您提供第一种。问题在于普通人不会携带大量随机字节——找到这样的文件是使用加密的初步证据。第二种不存在,而且可能是不可能的——你需要加密来证明否定的。

阅读您的答案,您想要的称为可拒绝加密。

这是通过将一个加密容器隐藏在另一个加密容器中来完成的。那是因为当你加密时,如果你不知道密钥,密文看起来就像是随机的。

仅仅通过在你的硬盘中随机搜索,有人可以很好地猜测你已经加密了一些数据并要求你提供密钥。

将 random 放入 random 可以让您提供第一个容器密钥并拒绝第二个容器密钥的存在。

如果您有兴趣,您应该以 truecrypt(或 fork)功能为例。

请注意,只需对硬盘进行快照并比较两个图像即可解决此问题。事实上,如果你修改某些东西,“随机”将会改变,攻击者会很好地猜测你隐藏了第二个容器,从而打败了你的合理否认。

您正在寻找的东西称为steganography,它是密码学的一个分支。

您可以阅读维基百科以快速入门:http ://en.wikipedia.org/wiki/Steganography

此后,您会发现有几个开源工具可以将任何容器“隐匿”到.jpg甚至.avi.

这样的隐秘容器看起来像一个.jpgor.avi文件。此外,任何人都可以观看此.avi.jpg. 并且,在这个隐秘容器内将是您的加密容器,称为 LUKS。

您可以使用第二种加密类型加密文件,例如“GPG”或类似的,然后文件命令将无法确定“内部”文件类型。

或者,只需执行一些非常简单的操作,例如对具有相同文件内容和一个字节偏移量的文件进行异或运算(例如),或者对文件进行 base64 处理等。

这取决于您想要混淆多少(不是真正的安全性,只是给使用“文件”命令的人带来不便)或隐藏(使用二次加密)。

最后,您可以考虑将“文件”命令替换为无法识别文件类型的残缺命令(如果您可以控制可执行文件)...