После последнего обновления OpenSSL на моем сервере Debian мои клиенты MySQL не могут подключиться и выдают следующее сообщение
SSL connection error: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small
Я думаю, это сделано для того, чтобы предотвратитьЗаторатаки.
Благодаряhttps://weakdh.org/sysadmin.htmlЯ знаю, как можно сгенерировать более сильные параметры Диффи-Хеллмана. Однако я не нашел ни одной опции конфигурации MySQL, чтобы их использовать.
Кто-нибудь знает?
решение1
Заметки о выпуске MySQL 5.7.6 содержат следующее:
Исправление безопасности:Из-за проблемы LogJam (https://weakdh.org/), OpenSSL изменила параметры длины ключа Диффи-Хеллмана для openssl-1.0.1n и выше. OpenSSL предоставила подробное объяснение наhttp://openssl.org/news/secadv_20150611.txt. Для внедрения этого изменения в MySQL длина ключа, используемого в vio/viosslfactories.c для создания ключей Диффи-Хеллмана, была увеличена с 512 до 2048 бит. (Ошибка № 77275, Ошибка № 21221862, Ошибка № 18367167, Ошибка № 21307471)
Из этого следует, что размер DH был жестко закодирован в 512 бит в MySQL до версии 5.7.6 (постоянный затор?). Поскольку более поздние версии OpenSSL отвергают эти слабые ключи, обновление OpenSSL без обновления MySQL, похоже, все ломает.
решение2
Нам удалось устранить проблемы с подключением, принудительно включив SSL-шифр, отличный от шифрования Диффи-Хеллмана.
С нашим клиентом MySQL 5.5.42 Linux нам удалось успешно указать
--ssl-cipher=AES256-SHA
параметр командной строки, как указано вэтототчет об ошибке.Однако наш (Java7) MySQL 5.1.35 jdbc-клиент не любит этот шифр, но работает, когда мы указываем его
enabledSSLCipherSuites=TLS_RSA_WITH_AES_128_CBC_SHA
в строке подключения, как и рекомендуется.здесь.
YMMV