试图了解LUKS加密


8

我决定用LUKS + LVM加密我的根分区。

我的ThinkPad设置:

  • 三星830 128GB SSD
  • 750GB硬盘
  • 酷睿2双核2.5 GHz P9500
  • 8GB RAM

但是我读得越多,对以下两个主题的理解就越少:

1a。密码

我打算使用SHA1而不是2/512(如某些建议所示),因为cryptsetupFAQ 中的引号是:

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不仅速度最快,而且最复杂的密钥也是最快的。

不应该这样吗?我读错了吗?


因此,如果SHA512实时散列到1秒,为什么不使用SHA512来提高安全性。
user284148

Answers:


5

1a-其实并没有多大关系。不管您使用哪种哈希作为密钥推导函数,LUKS都会确保它的计算量很大。它将一直循环播放直到经过1秒的实时时间为止。

1b-密钥推导方法对性能没有影响。密码本身就可以。cryptsetup benchmark显示给你很多。

2-如果您的CPU足够现代以支持AES-NI指令(AES的硬件加速),则AES是最快的。如果您现在使用蛇,则可能无法使用下一台笔记本电脑的AES-NI。

# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1      1165084 iterations per second
PBKDF2-sha256     781353 iterations per second
PBKDF2-sha512     588426 iterations per second
PBKDF2-ripemd160  726160 iterations per second
PBKDF2-whirlpool  261882 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   692.9 MiB/s  3091.3 MiB/s
 serpent-cbc   128b    94.6 MiB/s   308.6 MiB/s
 twofish-cbc   128b   195.2 MiB/s   378.7 MiB/s
     aes-cbc   256b   519.5 MiB/s  2374.0 MiB/s
 serpent-cbc   256b    96.5 MiB/s   311.3 MiB/s
 twofish-cbc   256b   197.9 MiB/s   378.0 MiB/s
     aes-xts   256b  2630.6 MiB/s  2714.8 MiB/s
 serpent-xts   256b   310.4 MiB/s   303.8 MiB/s
 twofish-xts   256b   367.4 MiB/s   376.6 MiB/s
     aes-xts   512b  2048.6 MiB/s  2076.1 MiB/s
 serpent-xts   512b   317.0 MiB/s   304.2 MiB/s
 twofish-xts   512b   368.7 MiB/s   377.0 MiB/s

请记住,此基准测试不使用存储,因此您应使用实际要使用的任何存储和文件系统来验证这些结果。


1
1.感谢您的澄清。因此,我可以继续使用SHA512,而不会对磁盘​​性能产生任何负面影响。2.我感到奇怪的是,根据英特尔的网站(ark.intel.com/search/advanced/?s=t&AESTech=true),旧的奔腾具有这种优化,但是C2D却没有。“如果现在使用蛇,您可能将无法使用您的下一台笔记本电脑的AES-NI。” 据此,我了解到您的意思是我必须将磁盘加密为AES。对?基准测试告诉我CPU性能。我的SSD处于SataII 3.0 Gbps(200-280MB / s)上,所以我想我做的事不会比serpent-xts 512b好
洛克希德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.