Я установил последнюю версию 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 также влияют на другие режимы, которые в настоящее время раскрыты в этой команде, но режимы сбоев в этих случаях менее экстремальны, и функционал не может быть удален с помощью стабильной ветви выпуска.