LUKS 的推荐选项(cryptsetup)

信息安全 AES 卢克斯
2021-08-26 05:39:09

我正在寻找 cryptsetup 的推荐选项来创建完全加密的 SSD ( SanDisk SSD U100 128GB),它可以实现:

Timing O_DIRECT disk reads: 1476 MB in  3.00 seconds = 491.81 MB/sec
Timing buffered disk reads: 1420 MB in  3.00 seconds = 473.01 MB/sec

我的基准测试向我展示了最好的密码:

# cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       103696 iterations per second
PBKDF2-sha256      59904 iterations per second
PBKDF2-sha512      38235 iterations per second
PBKDF2-ripemd160   85111 iterations per second
PBKDF2-whirlpool   47216 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   133.2 MiB/s   432.0 MiB/s
 serpent-cbc   128b    18.1 MiB/s    67.3 MiB/s
 twofish-cbc   128b    39.3 MiB/s    73.0 MiB/s
     aes-cbc   256b    99.6 MiB/s   337.7 MiB/s
 serpent-cbc   256b    18.1 MiB/s    66.9 MiB/s
 twofish-cbc   256b    39.4 MiB/s    72.6 MiB/s
     aes-xts   256b   376.6 MiB/s   375.0 MiB/s
 serpent-xts   256b    69.0 MiB/s    66.5 MiB/s
 twofish-xts   256b    71.1 MiB/s    72.2 MiB/s
     aes-xts   512b   297.0 MiB/s   300.1 MiB/s
 serpent-xts   512b    69.6 MiB/s    66.6 MiB/s
 twofish-xts   512b    71.9 MiB/s    72.7 MiB/s

但也许,您可以建议一些选项,这将提高我的性能和安全性。我的 CPU 是:Intel(R) Core(TM) i7-2677M CPU @ 1.80GHz并且它支持 AES-NI(aescpu 标志)。

谢谢

2个回答

您可能希望将 PBKDF2 与 SHA-512 一起使用。此步骤用于将您的密码转换为加密密钥(或多或少直接)。这本质上对离线字典攻击是开放的,并且与密码散列问题有关。为此,您希望通过选择一种算法和迭代次数来最大化攻击者的工作量,这将使攻击者的任务最难,同时让您可以容忍它;当您在启动时键入密码时,此处的“可容忍”取决于您的耐心。

攻击者希望使用一些GPU和/或FPGA来加速他们的攻击,而您使用的是普通 PC。如今,普通PC可以轻松进行64位算术运算,并且运行SHA-512的速度与SHA-256差不多;但是,GPU 更喜欢 32 位操作,并且将它们映射到 FPGA 上也比 64 位操作更容易。因此,通过使用 SHA-512 而不是 SHA-256,您给攻击者的优势就会减少。因此我的建议是:在现代硬件上,对于密码散列,更喜欢 SHA-512 而不是 SHA-256。

请记住调整“迭代计数”,以便处理密码所花费的时间处于可承受的阈值:更高的迭代计数意味着更长的处理时间,但在安全性方面成比例地更好。


对于实际加密,您将需要XTS,它旨在有效地支持磁盘加密。这确实显示在基准中;这是针对 SSD 的,您不希望加密比底层硬件慢得多。请注意,XTS 将密钥分成两半,其中只有一个用于实际加密。换句话说,aes-xts带有 256 位密钥的“”实际上使用 128 位作为 AES 部分。这已经足够好了没有合理需要转到 256 位密钥 - 即“ aes-xts”上下文中的 512 位。用于 AES 的 256 位密钥意味着一些 CPU 开销,基准测试适当地观察到了这些开销(300 MB/s 与 375 MB/s)。有了 SSD,你真的想要一个快速的加密系统,那就这样做吧。

上述操作模式的任何组合都将为您提供足够的安全性来抵御大多数威胁。也就是说,CBC由于某些信息泄漏攻击不再推荐。SHA1SHA2家庭贬值

与加密货币一样,坚持使用被广泛使用和证明的东西。所以我的总体建议是:PBKDF2-sha256 aes-xts