dm-crypt/LUKS 密码/密钥文件长度

Mar*_*ark 7 linux encryption luks

我有几个 dm-crypt/LUKS 相关问题。


使用以下设置设置 dm-crypt/LUKS:

cryptsetup -c aes-xts-plain -h sha256 --key-size=256 -y luksFormat /dev/sda1
Run Code Online (Sandbox Code Playgroud)

(1) 考虑到指定的密钥大小是 256 位,密码应该有多少个字符长?如果由于某种原因大小可能会有所不同,为什么?推荐的尺寸是多少?


当使用具有这些设置的密钥文件时(或者向可用插槽添加一个):

cryptsetup -c aes-xts-plain -h sha256 --key-size=256 luksFormat /dev/sda1 /path/to/key/file
Run Code Online (Sandbox Code Playgroud)

(2) 密钥文件应该是多大?再说一次,如果大小可能会有所不同,为什么?推荐什么?

(3) --key-size=BITS--keyfile-size=bytes 有什么区别

我知道一个意思是“加密密钥的大小”和一个“限制从密钥文件中读取”,但我不明白它们之间的确切关联。

(4) ...在--keyfile-size=bytes--new-keyfile-size=bytes 之间


我多次阅读手册页,并在互联网上阅读了许多不同的文章。这些只是让我感到困惑的几件事。

Zor*_*che 4

(1) 考虑到指定的密钥大小为 256 位,密码短语应该有多少个字符长?如果由于某种原因尺寸可能会有所不同,为什么?推荐尺寸是多少?

它应该只要您能合理记住并且愿意打字即可。它通过散列函数运行,但在第一个换行符之后它将停止读取\n。哈希函数会获取您提供的尽可能多的文本,然后给出结果。

文本的 sha256 哈希值superuser.com6153a5e4835cfb92fa324bfce5470a0b8d554cadbf7a9fbe21be74460897e021,问题第一个版本的整个正文文本的哈希值是f653459aa401efd1f058de5920cb25fe03bb969c90b001fd0f5282164c8b1afa,请注意输出的长度如何相同。

(2) 密钥文件的大小应该是多少?再说一次,如果尺寸可能会有所不同,为什么,以及建议什么?

通常 LUKS 只会使用文件中实际需要的数据量。因此,您可以使用 1GB 文件,如果您的密钥大小=256,那么它将仅使用前 256 位。因此,您的密钥文件应该至少与您的密钥大小值一样大,但也可能更大。我倾向于使用诸如 之类的命令创建一个 4096 字节的密钥文件dd if=/dev/random of=/../mykeyfile bs=4096 count=1。这为您提供了比您需要的更多的数据,但它仍然是一个相对较小的文件。

(3) --key-size=BITS 和 --keyfile-size=bytes 有什么区别?

我不确定您正在运行哪个版本的 cryptsetup,密钥文件大小选项似乎是新的。发行说明中的​​注释似乎表明它的存在是为了让 LUKS 从文件中读取更多数据,而不是您的密钥大小值。

  • 如果您不是从实际文件中读取“密钥文件”,而是从套接字或 fifo 之类的文件中读取“--keyfile-size”,则可能会使用“--keyfile-size”。 (2认同)