对于文件系统加密,密码应该多长?

对于文件系统加密,密码应该多长?

我想用 encfs 加密我的文件系统,但我不知道我的密码应该多长。

我将使用 AES 256,块大小为 4096 位。

我预计攻击者每秒可以对使用该加密的文件进行多少次猜测?

我担心这可能取决于最小加密文件的大小。

有什么想法吗?

答案1

检查你的密码/密码短语。熵的位数应约为加密算法的一半。如果您使用的是 AES-256,则需要熵约为 128 位的密码。

顺便说一句,使用 AES-256 有点儿过头了。AES-128 则完全是过头了,这取决于我们工作的时间范围(128 应该适合未来几年,256 适合十年或更长时间,这都是猜测)。

注意:Rumkin 测试已被多次破解,因为它无法识别明显错误的密码。例如,“Password1”被评为“合理”;它是最常用的密码之一,因此任何人都会首先尝试它。合理选择密码,Rumkin 测试应该会给你相当准确的结果。

答案2

我不是密码学专家,但 AES 根本不依赖于文件的大小,也不依赖于文件系统的结构。所有内容都是逐块加密的(其大小是固定的字节数),并且算法应该在恒定时间内运行该块中的任何数据。Truecrypt 可以运行基准测试,告诉您在固定时间内其支持的每种算法在您的处理器上运行了多少次迭代。例如,WiFi 中使用的 WPA2 加密需要大约 4,096 轮加密才能进行一次密钥/猜测/身份验证尝试,因此暴力破解这些类型的密钥非常慢。

假设 AES 加密本身不会很快被破解,那么您的目标就是选择一个长度足够、复杂度足够高的密码,以免被暴力破解。关于如何选择一个好的密码,网上有很多建议,但一般来说,密码越长,越安全。以下是一些专业提示:

  • 少于 8 个字符的内容非常不安全
  • 不要使用字典中的单词,或 c0mm0n v4ri4nt5 th3r30f
  • 在我看来,12 个字符或更多字符似乎相当安全,但不要忘记计算能力(尤其是 GPU 能力)正在呈指数级增长,因此十年或更长时间内破解起来可能会更容易

答案3

这是最基本的形式,非常“简单”:

1) 信息需要保护多长时间? 2) 攻击者能以多快的速度猜出密码?

但当然,定义这些事情很难。只有你能说出#1,但你的答案可能不是一千亿年,所以这给了你一个起点。

至于 #2,攻击者拥有的马力数量差异很大。就像 @Zoredache 所说的那样,你必须决定你担心的是哪个级别的攻击者。

如果您担心室友破解它,并且只需要保护信息几年(即,在那之后它就没有任何用处了),那么只需选择一个像其他地方推荐的一样强的密码(请参阅上面提到的 XKCD 以获得很好的总结)。

如果你担心 FBI 会破解密码,并希望密码一直受到保护,直到你死去,那么你就完全不同了。这类“攻击者”将拥有专用的硬件,每秒可以破解数十万或数百万个密码。这还只是今天的情况。十年后……你明白了。

但是,既然我们讨论的是文件系统加密,那么这一切都是假设攻击者已经掌握了你的驱动器,知道使用了什么软件和算法来加密它,并且足够关心它。因此,如果你将系统保持在安全的环境中并使用 TrueCrypt 的隐藏卷功能等,你已经大大降低了风险。选择一个强大的算法,比如你提到的 AES256,每隔一两年更改一次密钥,选择一个合理的密码,除非你正在做一些非常非法或敏感的事情,否则我不会为此失眠。

答案4

硬盘加密通常会加密整个硬盘,因此没有人能看到文件或文件系统,而只能看到一个大的加密二进制数据块。

密码应该尽可能长并且复杂,只要您能记住。

此处有更多关于磁盘加密的信息

相关内容