Почему openssl из Homebrew не включает поддержку шифрования aes-256-gcm?

Почему openssl из Homebrew не включает поддержку шифрования 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 encвозлагает всю нагрузку управления key/iv/nonce на пользователя, риск раскрытия режимов AEAD слишком велик, чтобы допустить это. Эти проблемы управления key/iv/nonce также влияют на другие режимы, которые в настоящее время раскрыты в этой команде, но режимы сбоев в этих случаях менее экстремальны, и функционал не может быть удален с помощью стабильной ветви выпуска.

Связанный контент