为什么 Homebrew 的 openssl 不包含 aes-256-gcm 密码支持?

为什么 Homebrew 的 openssl 不包含 aes-256-gcm 密码支持?

我已经openssl通过 Homebrew 在 Mac 上安装了最新版本(macOS Big Sur 11.5.2)。但它aes-256-gcm突然不支持密码了。

$ /usr/local/opt/[email protected]/bin/openssl enc -ciphers | grep aes-
-aes-128-cbc               -aes-128-cfb               -aes-128-cfb1
-aes-128-cfb8              -aes-128-ctr               -aes-128-ecb
-aes-128-ofb               -aes-192-cbc               -aes-192-cfb
-aes-192-cfb1              -aes-192-cfb8              -aes-192-ctr
-aes-192-ecb               -aes-192-ofb               -aes-256-cbc
-aes-256-cfb               -aes-256-cfb1              -aes-256-cfb8
-aes-256-ctr               -aes-256-ecb               -aes-256-ofb
$ /usr/local/opt/[email protected]/bin/openssl version
OpenSSL 1.1.1l  24 Aug 2021

我如何启用密码?为什么它不包含在软件包中?

答案1

我找到了问题的原因。它描述在openssl 文档

此命令不支持 CCM 和 GCM 等经过身份验证的加密模式,将来也不会支持此类模式。这是因为必须开始流式输出(例如,在以下情况下流式输出到标准输出):-出去未使用)才能验证身份验证标签。当此命令在管道中使用此命令时,接收端将无法在身份验证失败时回滚。当前常用的 AEAD 模式在重用 key/iv/nonce 时也会遭受机密性和/或完整性的灾难性故障,并且由于openssl 加密将 key/iv/nonce 管理的全部负担都放在用户身上,暴露 AEAD 模式的风险太大,不容允许。这些 key/iv/nonce 管理问题也会影响此命令中当前暴露的其他模式,但这些情况下的故障模式不那么严重,并且无法通过稳定版本分支删除该功能。

相关内容