我有几个与 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 从文件中读取比密钥大小值更多的数据。