我正在使用 Packer 在 Digital Ocean 上构建一个 Centos 8 盒,并启用了 FIPS 模式。
# setup.sh script
fips-mode-setup --enabled
然后我使用 Terraform 为该新镜像配置一个 Droplet,并将我的 SSH 密钥复制到新的 droplet。我像这样生成我的 SSH 密钥:
ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519
当 Droplet 被配置后,我无法再通过 SSH 登录(当 FIPS 模式被禁用时,我可以使用相同的 SSH 密钥通过 SSH 登录)。
任何帮助都将不胜感激。
答案1
加密模块的 FIPS 模式要求加密软件仅使用经批准的加密算法,以及其他要求。Ed25519 不被视为这些算法之一,因此 SSH 被告知在 FIPS 模式下有意禁用对该算法的支持。
总体而言,Ed25519 是一个不错的选择,受到密码学家和安全专家的广泛推荐,如果可能的话,应该是您的首选。除非您确定需要遵守 FIPS 140-2,否则您绝对应该禁用 FIPS 模式,因为它会禁用有用、快速且安全的算法,如 Ed25519、ChaCha 和 BLAKE2。在配置 SSH 和 TLS 时,最好遵循 Mozilla 等受信任组织的建议。
但是,如果您出于合规性原因需要启用 FIPS 模式,则不能使用 Ed25519 密钥。您的备份应该是 256 位 ECDSA 密钥,这最有可能以恒定时间(因此是安全的)方式实现。