我决定用LUKS + LVM加密我的根分区。
我的ThinkPad设置:
- 三星830 128GB SSD
- 750GB硬盘
- 酷睿2双核2.5 GHz P9500
- 8GB RAM
但是我读得越多,对以下两个主题的理解就越少:
1a。密码
我打算使用SHA1而不是2/512(如某些建议所示),因为cryptsetup
FAQ 中的引号是:
5.20 LUKS坏了!它使用SHA-1!
不它不是。SHA-1(在学术上)被破坏是为了查找冲突,但不是为了在密钥派生函数中使用它。并且该碰撞漏洞仅用于非迭代用途。并且您需要逐字地散列值。
这基本上意味着,如果您已经有一个插槽键,并且已将PBKDF2迭代计数设置为1(通常大于10,000),则可以(也许)派生出不同的密码短语,从而为您提供相同的插槽-键。但是,如果您具有插槽键,则已经可以解锁键槽并获得主键,从而破坏了一切。因此,从根本上讲,此SHA-1漏洞使您可以在打开LUKS容器时费劲地打开它。
真正的问题是人们不了解加密并声称事物被破坏只是因为某些特定用途的机制被破坏了。该机制的使用方式非常重要。一种用途被破坏的哈希可以完全安全地用于其他用途,这里就是。
我读为“除了SHA-1之外,没有任何其他用途”。但是后来有人告诉我,那不完全是那样。所以我不再知道该怎么想。
1b。
另外,一旦磁盘解锁并登录系统,我就找不到密码对磁盘读/写/查找性能是否有任何影响的任何信息。
那么,密码的复杂性只会影响密码输入阶段的“性能”,还是会影响系统的正常使用?
2.算法
几天以来,我一直在阅读有关此内容的文章,但阅读的内容越多,我就会越困惑。我读到的一切都说AES是最快的,而Serpent是最慢的。但不是根据我的笔记本电脑:
$ cryptsetup benchmark
Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 344926 iterations per second
PBKDF2-sha256 198593 iterations per second
PBKDF2-sha512 129007 iterations per second
PBKDF2-ripemd160 271933 iterations per second
PBKDF2-whirlpool 134295 iterations per second
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 149.8 MiB/s 147.9 MiB/s
serpent-cbc 128b 51.0 MiB/s 196.4 MiB/s
twofish-cbc 128b 127.6 MiB/s 152.5 MiB/s
aes-cbc 256b 114.3 MiB/s 113.8 MiB/s
serpent-cbc 256b 51.2 MiB/s 198.9 MiB/s
twofish-cbc 256b 129.8 MiB/s 167.5 MiB/s
aes-xts 256b 153.3 MiB/s 150.6 MiB/s
serpent-xts 256b 176.4 MiB/s 184.1 MiB/s
twofish-xts 256b 160.8 MiB/s 159.8 MiB/s
aes-xts 512b 115.4 MiB/s 112.1 MiB/s
serpent-xts 512b 178.6 MiB/s 184.2 MiB/s
twofish-xts 512b 160.7 MiB/s 158.9 MiB/s
因此看来,Serpent不仅速度最快,而且最复杂的密钥也是最快的。
不应该这样吗?我读错了吗?