У меня есть сборка OpenSSL, в которой используется объектный модуль FIPS для криптографии с проверкой FIPS. Некоторые приложения, такие как Tomcat, поддерживают использование этого специализированного FIPS OpenSSL. Вы компилируете с использованием криптографических библиотек OpenSSL, а затем устанавливаете параметр в некотором файле конфигурации (для Tomcat это будет FIPSMode = on в server.xml).
Я хотел бы использовать FIPS OpenSSL с MySQL. я знаю, что ты можешь построить MySQL для использования OpenSSL, но я не нашел никаких указаний на то, что вы можете включить режим FIPS через файл конфигурации или каким-либо другим способом. Это возможно?
Немного предыстории: чтобы использовать OpenSSL в режиме FIPS, приложение должно вызвать FIPS_mode_set (), и это должно вернуть ненулевое значение. Tomcat сделает это за вас, если вы установите соответствующий флаг FIPSMode в server.xml. MySQL, похоже, не имеет такого флага. Может быть, есть другие средства для этого.
Может ли MySQL с OpenSSL работать в режиме FIPS?
Скорее всего, нет. FIPS 140-2 не разрешает использование алгоритмов MD5 и SHA-1 (некоторый отказ руки, потому что есть явные исключения, предусмотренные, например, в PRF, используемом в TLS).
К сожалению, некоторые версии MySQL по-прежнему полагаются на SHA-1 для некоторых внутренних функций, таких как хеширование паролей. Это включает в себя последнюю версию MySQL, которая на момент написания - 5.7.
В прошлом я видел патчи, которые позволяют MySQL соответствовать критериям FIPS 140-2, но они предоставляются третьими сторонами. Однако самому приложению, скорее всего, все равно потребуется формальная оценка, как только оно достигнет точки, в которой фактически сможет пройти флажки из FIPS 140-2.