Кроме того: шифровальный список DEFAULT в восходящем OpenSSL 1.0.1 включает EXPORT до m (март 2015 г.); в s (март 2016 г.) они были удалены из сборки (а не только из списка по умолчанию) вместе с LOW, который содержал только single-DES. Вы собираете из исходного кода или используете чужую сборку или пакет? Разработчик или упаковщик может изменить исходное значение по умолчанию. Более того, дистрибутивы на основе RedHat и Debian по крайней мере (и, возможно, другие) поддерживают обратный перенос исправлений безопасности без изменения внутренней версии, поэтому с этими пакетами версия openssl
действительно не сообщает вам, что вы используете; вам нужно посмотреть версию пакета , что-то вроде openssl-1.0.1e-NN.elN
или openssl-1.0.1e-N + debN
.
Использование +
в строке шифрования OpenSSL не изменяет содержимое списка шифров, а только меняет порядок, перемещая некоторые шифровальные наборы в конец . Например, + RC4
означает, что наборы RC4, которые уже есть в списке, должны быть помещены в конец списка, где их выбор может быть меньше. Порядок обычно имеет значение для клиента, поскольку предпочтения клиента обычно определяют, какой набор шифров выбирается из возможных; для сервера это имеет значение только в том случае, если сервер настроен на переопределение предпочтений клиента и использование предпочтений сервера.
Вы должны указать DEFAULT: EXPORT:! ANULL
(можно сократить DEFAULT: EXP:! ANULL
) или ALL:! ANULL
.Вы должны использовать ! ANULL
, потому что DEFAULT
исключает анонимные или не аутентифицируемые наборы, но EXPORT
(и аналогично LOW MEDIUM HIGH
) или ВСЕ
включают их, и особенно для Интернета (HTTPS) они не должны использоваться.
Вы можете использовать командную строку openssl ciphers [-v] $ string
, чтобы увидеть, какие шифры включены в вашей сборке данной строкой. Формат по умолчанию упакован в одну строку и его трудно прочитать, если вы не пропустите его через что-то вроде tr: '\ n'
; (IMO лучше) -v
помещает каждый шифр в отдельную строку и добавляет детали, которые иногда полезны (а если нет, их легко игнорировать).