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

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

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


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

cryptsetup -c aes-xts-plain -h sha256 --key-size=256 -y luksFormat /dev/sda1

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


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

cryptsetup -c aes-xts-plain -h sha256 --key-size=256 luksFormat /dev/sda1 /path/to/key/file

(2) 密钥文件应该有多大?如果大小可能不同,原因是什么?建议是什么?

(3)–密钥大小=BITS--keyfile 大小 = 字节

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

(4)...以及之间--keyfile 大小 = 字节--new-keyfile-size=字节


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

答案1

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

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

该文本的 sha256 哈希superuser.com值为6153a5e4835cfb92fa324bfce5470a0b8d554cadbf7a9fbe21be74460897e021,而问题第一个版本的整个正文的哈希值为f653459aa401efd1f058de5920cb25fe03bb969c90b001fd0f5282164c8b1afa,请注意输出的长度相同。

(2) 密钥文件应该有多大?如果大小可能不同,原因是什么?建议是什么?

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

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

我不确定你运行的是哪个版本的 cryptsetup,keyfile-size 选项似乎是新的。发布中的说明笔记似乎表明它的存在是为了让 LUKS 从文件中读取比密钥大小值更多的数据。

相关内容