随着 shadow >= 4.14.0 更新, Arch Linux 的默认密码哈希算法由 SHA512 变更为 yescrypt。
另外,umask 配置现在需要在 /etc/login.defs 中配置而不是在 /etc/profile 中。
这个改动应该不需要用户作任何手动干预。
使用 yescrypt 的理由
我们选择了基于密码的密钥推导函数 (KDF) 和密码哈希方案 yescrypt,因为它被 libxcrypt 所采用 (已经可以在 libxcrypt 中使用,libxcrypt 由 pam 使用),并且相较于 SHA512,yescrypt 对密码爆破有着更好的抵御能力。
虽然密码哈希竞赛的胜者是 argon2,但是这个算法目前还没有被 libxcrypt 采用 (第一次尝试,第二次尝试)。
配置 yescrypt
在 pam 实现对 /etc/login.defs 中的 YESCRYPT_COST_FACTOR 配置项的读取之前,该配置项没有任何作用。如果你需要为 YESCRYPT_COST_FACTOR 配置一个高于(或低于)默认值(5)的数值,那么你可以将其配置为使用 pam_unix 模块的 rounds 选项 ( 例如在 /etc/pam.d/system-auth
中)。
总体变更列表
- yescrypt 替代 SHA512 作为默认使用的密码哈希算法
- pam 会尊重在 /etc/login.defs 被选中的 ENCRYPT_METHOD 并且不会再覆盖被选中的方法
- filesystem (>= 2023.09.18) 和 pambase (>= 20230918) 中的改动确保了 umask 会在 /etc/login.defs 中被集中地配置而不再是在 /etc/profile 中