几年来,我通过 GnuPG 使用非对称密钥加密了我的个人文本文件。现在我认为加密我的硬盘分区是个好主意。对单独的文件同时使用文件系统加密(例如,通过 dm-crypt)和通过 GPG 加密是否有意义?如果这是不必要的,我应该坚持对文本数据进行个人加密吗?
我希望能够在这些文件上使用版本控制系统和文本处理工具,并且还可以选择应用隐写术来完全隐藏文件的存在以防入侵者。
我使用 GNU/Linux。
几年来,我通过 GnuPG 使用非对称密钥加密了我的个人文本文件。现在我认为加密我的硬盘分区是个好主意。对单独的文件同时使用文件系统加密(例如,通过 dm-crypt)和通过 GPG 加密是否有意义?如果这是不必要的,我应该坚持对文本数据进行个人加密吗?
我希望能够在这些文件上使用版本控制系统和文本处理工具,并且还可以选择应用隐写术来完全隐藏文件的存在以防入侵者。
我使用 GNU/Linux。
如果您的要求是,
我想对这些文件使用版本控制系统,并可能应用隐写术来完全隐藏文件的存在以防入侵者。
那么当然 GPG'ing 单个文件是不够的。您应该使用 TrueCrypt 之类的东西加密甚至合理地拒绝整个分区。这有意义吗?只有你能说出来。
一旦分区被加密和隐藏,文件一个一个加密是否有意义?这取决于假设的攻击如何获得对系统的访问权限。
第一级访问是分区访问。
这可以通过独立系统的直接密钥恢复(例如,橡胶软管攻击、便利贴攻击)来获得;在连接的系统上,一旦您允许分区访问访问您的磁盘,该分区就可以被许多可以从外部访问的服务读取,并且这种访问可能会受到损害。
在您的谨慎程度看起来牵强的情况下,您可能忘记了密码较弱的网络共享。解锁磁盘后,共享将允许访问纯文本文件。
我认为,这是唯一一种双重加密有意义的场景。铅管攻击场景自然意味着对第二层的访问可能会被同一管道的另一个明智的应用程序保护,除非你走到提供死人或神风攻击的极端情况下(例如,外部的解锁机制“不可否认”分区还会触发分区的后台填充,从而破坏隐藏分区)并且攻击者没有想过对加密介质进行低级备份。在我看来,这两个事件的综合可能性使它成为一匹黑马。
远程访问场景的一个更可能的变体是您需要在系统上运行某些服务,您需要此服务对必须保存在加密分区上的某些文件具有读取权限,您无法移动这些文件到一个单独的、可消耗的甚至可能未加密的分区,并且此服务存在您不知道的安全漏洞。
为了防止这种可能性,我相信你除了双重加密文件之外别无他法。当然,该服务无法使用相同的通用密钥访问相同的加密文件,或者利用该服务将保护对所有内容的二级访问:您将必须使用两个单独的密钥,并且如果需要访问相同的文件从服务内部和外部,您必须维护两个单独的副本 - 或使用服务外部的两个单独的密钥,即:
INNER ACCESS (key1) ---> file1_1, file2_1 <--- SERVICE (key1)
INNER ACCESS (key2) ---> file3_2, file4_2
或者
file1_1, file2_1 <--- SERVICE (key1)
INNER ACCESS (key2) ---> file1_2, file2_2,
file3_2, file4_2
但是,这一切都取决于您的情况。据我所知,没有一种万能的指导方针……
GnuPG 和加密文件系统做的事情不同,并且应用在不同的级别,因此两者都使用是有意义的。
一些区别:
加密文件系统(或分区)透明地对所有文件应用加密,并且不需要应用程序的特殊支持。另一方面,GnuPG 加密的文件必须在访问之前显式解密。如果您有敏感数据文件并且想要使用某些应用程序打开这些文件,那么您应该确保该文件永远不会以明文形式存储在硬盘上的任何位置。因此,如果您使用 GnuPG 但没有加密文件系统,那么您应该只将文件解密到基于 RAM 的磁盘中(tmpfs在 Linux 上,禁用交换,以确保数据永远不会到达磁盘);另外,请注意使用数据副本创建临时文件的应用程序。
加密文件系统保护文件存储,但是,从应用程序的角度来看,文件“在那里”并且系统自动进行解密。在启动时,您输入密码来解锁该东西,但是,只要您在机器上执行任何操作,分区就有可能保持解锁状态。如果攻击者此时获得了对您系统的一些控制权,那么他可以读取您的所有文件(也就是说,此时唯一的保护是操作系统访问权限,而不是加密)。GnuPG 加密的文件只有在您决定解密时才会被解密,并为您提供更细粒度的控制。
GnuPG 加密的文件可以传播。您可以将它放在 U 盘上或通过电子邮件发送,它仍然是安全的。加密文件系统保护文件的本地存储,而不是文件本身。