我最近创建了一个 LUKS 分区,在上面安装了 Ubuntu 16.04.3 LTS。我通过 Ubuntu 16.04.3 LTS live USB 完成此操作。
我现在怀疑这是否安全。当我阅读 cryptsetup 的手册页时,“--use-random”和“--use-urandom”部分内容如下:
--use-random
--use-urandom
For luksFormat these options define which kernel random number generator will be
used to create the master key (which is a long-term key).
See NOTES ON RANDOM NUMBER GENERATORS for more information. Use cryptsetup --help to
show the compiled-in default random number generator.
WARNING: In a low-entropy situation (e.g. in an embedded system), both selections
are problematic. Using /dev/urandom can lead to weak keys. Using /dev/random can
block a long time, potentially forever, if not enough entropy can be harvested by
the kernel.
我今天发现了熵是什么,然后意识到实时发行版的熵很低,所以我相信这个警告适用于我。我不记得在创建 LUKS 分区时是否包含了 --use-random 标志,因此不知道使用了哪个(因为我认为 urandom 是默认值),但警告表明这两个选项都不好?
仅供参考,我用来创建分区的命令是这样的:
sudo cryptsetup --verbose --cipher aes-xts-plain64:sha512 --key-size 512 --hash sha512 --iter-time 5000 luksFormat /dev/sdaX
(但就像我说的,我不记得是否在此命令中包含了 --use-random 标志)
对于这些情况,您有何看法?您认为我必须重新安装吗?如果需要,我应该使用什么选项?
答案1
实时发行版的熵与普通机器一样多。为什么他们会更少?他们是一台普通机器,用于所有实际目的;特别是如果这是一个图形实时会话,因为鼠标的移动是一个很好的熵来源。对于--use-random
vs. --use-urandom
,它们提供相同的安全性但urandom
不会阻止;从来没有充分的理由使用/dev/random
而不是/dev/urandom
。
请注意,除了 ; 的默认值之外,很少有充分的理由使用任何其他内容cryptsetup
。通过指定任何非默认密码等,您本质上是在声称自己是比以此为生的人更好的密码学家:所以除非您实际上是如果您是专业的密码学家,或者您正在使用不寻常的计算机系统,其中默认值的性能明显低于其他密码或哈希值,则最佳实践是坚持使用默认选项。