Библиотеки TLS и криптографии, используемые MariaDB
Когда MariaDB Server компилируется с поддержкой TLS и криптографии, он обычно либо статически связан с собственной библиотекой TLS и криптографии MariaDB, либо динамически связан с библиотекой OpenSSL системы. Собственная библиотека TLS MariaDB — это либо wolfSSL, либо yaSSL, в зависимости от версии сервера.
Когда MariaDB клиент или библиотека клиента компилируются с поддержкой TLS и криптографии, они обычно либо статически связаны с собственной библиотекой TLS и криптографии MariaDB, либо динамически связаны с библиотекой TLS и криптографии системы, которая может быть OpenSSL, GnuTLS или Schannel.
Проверка динамической и статической связи
Динамическая связь MariaDB с библиотекой TLS и криптографии системы часто бывает выгодной, так как это позволяет исправлять ошибки в библиотеке TLS и криптографии системы независимо от MariaDB. Например, когда в 2014 году была обнародована информация об ошибке Heartbleed в OpenSSL, проблему можно было решить, просто обновив систему до использования исправленной версии библиотеки OpenSSL, а затем перезапустив MariaDB Server.
Вы можете проверить, что mysqld фактически динамически связан с общим модулем OpenSSL в вашей системе, используя команду ldd.
$ ldd $(which mysqld) | grep -E '(libssl|libcrypto)'
libssl.so.10 => /lib64/libssl.so.10 (0x00007f8736386000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f8735f25000)
Если команда не возвращает никаких результатов, значит, либо ваш mysqld статически связан с библиотекой TLS и криптографии на вашей системе, либо ваш mysqld вообще не был скомпилирован с поддержкой TLS и криптографии.
Проверка использования сервером OpenSSL
В MariaDB 10.0 и более поздних версиях, если вы не уверены, связан ли ваш сервер с OpenSSL или собственной библиотекой TLS, вы можете проверить значение системной переменной have_openssl. Например:
SHOW GLOBAL VARIABLES LIKE 'have_openssl'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | have_openssl | YES | +---------------+-------+
Проверка версии OpenSSL сервера
В MariaDB 10.1 и более поздних версиях, если вы хотите увидеть, какую версию OpenSSL использует ваш сервер, вы можете проверить значение системной переменной version_ssl_library. Например:
SHOW GLOBAL VARIABLES LIKE 'version_ssl_library'; +---------------------+---------------------------------+ | Variable_name | Value | +---------------------+---------------------------------+ | version_ssl_library | OpenSSL 1.0.1e-fips 11 Feb 2013 | +---------------------+---------------------------------+
Обратите внимание, что версия, возвращаемая этой системной переменной, не всегда соответствует точной версии пакета OpenSSL, установленного в системе. Общие библиотеки OpenSSL обычно содержат интерфейсы для нескольких версий одновременно, чтобы обеспечить обратную совместимость. Поэтому, если пакет OpenSSL, установленный в системе, новее, чем версия OpenSSL, с которой был скомпилирован двоичный файл MariaDB Server, то двоичный файл MariaDB Server может использовать один из интерфейсов для более старой версии. Для получения дополнительной информации см. MDEV-15848. Например:
$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.5 (Maipo)
$ rpm -q openssl
openssl-1.0.2k-12.el7.x86_64
$ mysql -u root --batch --execute="SHOW GLOBAL VARIABLES LIKE 'version_ssl_library';"
Variable_name Value
version_ssl_library OpenSSL 1.0.1e-fips 11 Feb 2013
$ ldd $(which mysqld) | grep libcrypto
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f3dd3482000)
$ readelf -a /lib64/libcrypto.so.10 | grep SSLeay_version
1374: 000000000006f5d0 21 FUNC GLOBAL DEFAULT 13 SSLeay_version@libcrypto.so.10
1375: 000000000006f5f0 21 FUNC GLOBAL DEFAULT 13 SSLeay_version@OPENSSL_1.0.1
1377: 000000000006f580 70 FUNC GLOBAL DEFAULT 13 SSLeay_version@@OPENSSL_1.0.2
Сертификация FIPS
Федеральные стандарты обработки информации (FIPS) — это стандарты, опубликованные правительством США, которые используются для установления требований к различным аспектам компьютерных систем. FIPS 140-2 — это набор стандартов для требований безопасности к криптографическим модулям.
Этот стандарт актуален при обсуждении библиотек TLS и криптографии, используемых MariaDB. Некоторые из этих библиотек были сертифицированы для соответствия стандартам FIPS 140-2.
Сертификация FIPS OpenSSL
Библиотека OpenSSL имеет специальный режим FIPS, сертифицированный для соответствия стандарту FIPS 140-2. В режиме FIPS библиотека включает только алгоритмы и ключи, соответствующие стандарту FIPS 140-2.
MariaDB пока не поддерживает включение режима FIPS в сервере базы данных. Для получения дополнительной информации см. MDEV-20260. Поэтому, если вы хотите использовать режим FIPS OpenSSL с MariaDB, вам нужно будет либо включить режим FIPS на уровне ядра, либо включить его в конфигурационном файле OpenSSL, либо для всей системы, либо только для процесса MariaDB. Дополнительную информацию об этом можно найти в следующих источниках:
- Red Hat Enterprise Linux 7: Руководство по безопасности: Глава 8. Федеральные стандарты и нормативные акты
- Документация по сертификации безопасности Ubuntu: FIPS для Ubuntu 16.04 и 18.04
- OpenSSL 1.0.2, метод конфигурационного файла
- OpenSSL 3.0 метод конфигурационного файла
Сертификация FIPS wolfSSL
Стандартная версия библиотеки wolfSSL не сертифицирована для соответствия стандарту FIPS 140-2, но сертифицирована специальная версия «FIPS-ready». К сожалению, версия wolfSSL «FIPS-ready» использует лицензию, несовместимую с лицензией MariaDB, поэтому ее нельзя использовать с MariaDB.
Сертификация FIPS yaSSL
Библиотека yaSSL не сертифицирована для соответствия стандарту FIPS 140-2.
Библиотеки, используемые на каждой платформе и в каждом пакете
MariaDB Server
MariaDB Server на Windows
MariaDB Server статически связан с собственной библиотекой wolfSSL в пакетах MSI и ZIP на Windows.
MariaDB Server статически связан с собственной библиотекой yaSSL в пакетах MSI и ZIP на Windows.
MariaDB Server на Linux
MariaDB Server в двоичных архивах tar
В MariaDB 10.4.6 и более поздних версиях MariaDB Server статически связан с собственной библиотекой wolfSSL в двоичных архивах tar на Linux.
В MariaDB 10.4.5 и более ранних версиях MariaDB Server статически связан с собственной библиотекой yaSSL в двоичных архивах tar на Linux.
MariaDB Server в пакетах DEB
MariaDB Server динамически связан с системной библиотекой OpenSSL в пакетах .deb.
В MariaDB 10.3 и более ранних версиях MariaDB Server статически связан с собственной библиотекой yaSSL в пакетах, предоставляемых по умолчанию репозиториями Debian и Ubuntu.
Для получения дополнительной информации см. Различия в MariaDB в Debian (и Ubuntu).
MariaDB Server в пакетах RPM
MariaDB Server динамически связан с системной библиотекой OpenSSL в пакетах .rpm.
MariaDB Клиенты и утилиты
В MariaDB 10.2 и более поздних версиях MariaDB Connector/C был включен в MariaDB Server, и связанные с ним клиенты и утилиты связаны с ним. На некоторых платформах MariaDB Connector/C и эти клиенты и утилиты могут использовать другую библиотеку TLS, чем та, что используется MariaDB Server и libmysqlclient.
MariaDB Клиенты и утилиты на Windows
В MariaDB 10.4.6 и более поздних версиях, клиенты и утилиты MariaDB, а также MariaDB Connector/C динамически связаны с системными библиотеками Schannel в пакетах MSI и ZIP на Windows. libmysqlclient по-прежнему статически связан с включённой библиотекой wolfSSL.
В MariaDB 10.2 и более поздних версиях, клиенты и утилиты MariaDB, а также MariaDB Connector/C динамически связаны с системными библиотеками Schannel в пакетах MSI и ZIP на Windows. libmysqlclient по-прежнему статически связан с включённой библиотекой yaSSL.
В MariaDB 10.1 и более ранних версиях, клиенты и утилиты MariaDB, а также libmysqlclient статически связаны с включённой библиотекой yaSSL в пакетах MSI и ZIP на Windows.
Клиенты и утилиты MariaDB на Linux
Клиенты и утилиты MariaDB в двоичных пакетах tarball
В MariaDB 10.4.6 и более поздних версиях, клиенты и утилиты MariaDB, а также MariaDB Connector/C статически связаны с библиотекой GnuTLS в двоичных пакетах tarball на Linux. libmysqlclient по-прежнему статически связан с включённой библиотекой wolfSSL.
В MariaDB 10.2 и более поздних версиях, клиенты и утилиты MariaDB, а также MariaDB Connector/C статически связаны с библиотекой GnuTLS в двоичных пакетах tarball на Linux. libmysqlclient по-прежнему статически связан с включённой библиотекой yaSSL.
В MariaDB 10.1 и более ранних версиях, клиенты и утилиты MariaDB, а также libmysqlclient статически связаны с включённой библиотекой yaSSL в двоичных пакетах tarball на Linux.
Клиенты и утилиты MariaDB в пакетах DEB
Клиенты и утилиты MariaDB, libmysqlclient, и MariaDB Connector/C динамически связаны с системной библиотекой OpenSSL в пакетах .deb.
В MariaDB 10.2 и 10.3, клиенты и утилиты MariaDB, а также MariaDB Connector/C динамически связаны с системной библиотекой GnuTLS в пакетах .deb от стандартных репозиториев Debian и Ubuntu. libmysqlclient по-прежнему статически связан с включёнными библиотеками yaSSL.
В MariaDB 10.1 и более ранних версиях, клиенты и утилиты MariaDB, а также libmysqlclient статически связаны с включённой библиотекой yaSSL в пакетах .deb от стандартных репозиториев Debian и Ubuntu.
См. Различия в MariaDB в Debian (и Ubuntu) для получения дополнительной информации.
Клиенты и утилиты MariaDB в пакетах RPM
Клиенты и утилиты MariaDB, libmysqlclient, и MariaDB Connector/C динамически связаны с системной библиотекой OpenSSL в пакетах .rpm.
Обновление динамически связанных библиотек OpenSSL на Linux
Когда MariaDB сервер или клиенты и утилиты динамически связаны с системной библиотекой OpenSSL, обновление библиотек происходит очень просто. Ниже приведена информация о том, как обновить эти библиотеки для каждой платформы.
Обновление динамически связанных библиотек OpenSSL с помощью yum/dnf
В дистрибутивах RHEL, CentOS, Fedora и других подобных дистрибутивах Linux рекомендуется обновлять библиотеки с помощью yum или dnf. Начиная с RHEL 8 и Fedora 22, yum заменено на dnf, которое является следующей основной версией yum. Однако команды yum всё ещё работают на многих системах, использующих dnf. Например:
Обновите пакет, выполнив следующую команду:
sudo yum update openssl
Затем перезапустите сервер MariaDB и все клиенты или приложения, использующие эту библиотеку.
Обновление динамически связанных библиотек OpenSSL с помощью apt-get
В дистрибутивах Debian, Ubuntu и других подобных дистрибутивах Linux рекомендуется обновлять библиотеки с помощью apt-get. Например:
Сначала обновите кеш пакетов, выполнив следующую команду:
sudo apt update
Затем обновите пакет, выполнив следующую команду:
sudo apt-get update openssl
Затем перезапустите сервер MariaDB и все клиенты или приложения, использующие эту библиотеку.
Обновление динамически связанных библиотек OpenSSL с помощью zypper
В дистрибутивах SLES, OpenSUSE и других подобных дистрибутивах Linux рекомендуется обновлять библиотеки с помощью zypper. Например:
Обновите пакет, выполнив следующую команду:
sudo zypper update openssl
Затем перезапустите сервер MariaDB и все клиенты или приложения, использующие эту библиотеку.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/tls-and-cryptography-libraries-used-by-mariadb/