Linux 内存大小改变后硬盘加密密码失效

Linux 内存大小改变后硬盘加密密码失效

我有一个几乎全新 Kali Linux 安装在 Hyper-V 虚拟机中。这是配置硬盘加密在安装过程中。

经过几个工作日后,我减少 RAM 量为虚拟机保留的内存,但是当我启动重新配置的机器时,密码用于解密硬盘的是报告为无效

报告的错误是:

cryptsetup: ERROR: sdaX_crypt: cryptsetup failed, bad password or options?

如果我撤消配置更改,密码将再次有效...

LUKS解密算法和机器内存大小有关系吗?在我看来,这没有意义。

可能是什么原因?

提前致谢。

答案1

LUKS2 默认使用氩气2所谓的密钥导出函数记忆力难-- 解锁设备时,它会故意使用大量 RAM(使用 cryptsetup 时可达 1 GiB),以防止对 GPU 进行暴力攻击。它所需的确切 RAM 量取决于您在创建 LUKS 设备时拥有的 RAM 量,因此如果您稍后减少 RAM 量,您将无法解锁它。

您可以使用cryptsetup luksChangeKey <device>(通常用于更改密码,但也允许更改密钥派生函数)来更改它,以--pbkdf-memory <RAM in kilobytes>降低 argon2 所需的内存或--pbkdf pbkdf2使用根本不使用内存的旧版 PBKDF2 密钥派生函数。

相关内容