Spec-Zone.ru › MariaDB

Библиотеки 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 начиная с 10.4.6

MariaDB Server статически связан с собственной библиотекой wolfSSL в пакетах MSI и ZIP на Windows.

MariaDB до 10.4.5

MariaDB Server статически связан с собственной библиотекой yaSSL в пакетах MSI и ZIP на Windows.

MariaDB Server на Linux

MariaDB Server в двоичных архивах tar
MariaDB начиная с 10.4.6

В MariaDB 10.4.6 и более поздних версиях MariaDB Server статически связан с собственной библиотекой wolfSSL в двоичных архивах tar на Linux.

MariaDB до 10.4.5

В MariaDB 10.4.5 и более ранних версиях MariaDB Server статически связан с собственной библиотекой yaSSL в двоичных архивах tar на Linux.

MariaDB Server в пакетах DEB

MariaDB Server динамически связан с системной библиотекой OpenSSL в пакетах .deb.

MariaDB до 10.3

В 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 10.4.6 и более поздних версиях, клиенты и утилиты MariaDB, а также MariaDB Connector/C динамически связаны с системными библиотеками Schannel в пакетах MSI и ZIP на Windows. libmysqlclient по-прежнему статически связан с включённой библиотекой wolfSSL.

MariaDB начиная с 10.2

В MariaDB 10.2 и более поздних версиях, клиенты и утилиты MariaDB, а также MariaDB Connector/C динамически связаны с системными библиотеками Schannel в пакетах MSI и ZIP на Windows. libmysqlclient по-прежнему статически связан с включённой библиотекой yaSSL.

MariaDB до 10.1

В MariaDB 10.1 и более ранних версиях, клиенты и утилиты MariaDB, а также libmysqlclient статически связаны с включённой библиотекой yaSSL в пакетах MSI и ZIP на Windows.

Клиенты и утилиты MariaDB на Linux

Клиенты и утилиты MariaDB в двоичных пакетах tarball
MariaDB начиная с 10.4.6

В MariaDB 10.4.6 и более поздних версиях, клиенты и утилиты MariaDB, а также MariaDB Connector/C статически связаны с библиотекой GnuTLS в двоичных пакетах tarball на Linux. libmysqlclient по-прежнему статически связан с включённой библиотекой wolfSSL.

MariaDB начиная с 10.2

В MariaDB 10.2 и более поздних версиях, клиенты и утилиты MariaDB, а также MariaDB Connector/C статически связаны с библиотекой GnuTLS в двоичных пакетах tarball на Linux. libmysqlclient по-прежнему статически связан с включённой библиотекой yaSSL.

MariaDB до 10.1

В MariaDB 10.1 и более ранних версиях, клиенты и утилиты MariaDB, а также libmysqlclient статически связаны с включённой библиотекой yaSSL в двоичных пакетах tarball на Linux.

Клиенты и утилиты MariaDB в пакетах DEB

Клиенты и утилиты MariaDB, libmysqlclient, и MariaDB Connector/C динамически связаны с системной библиотекой OpenSSL в пакетах .deb.

MariaDB до 10.3

В MariaDB 10.2 и 10.3, клиенты и утилиты MariaDB, а также MariaDB Connector/C динамически связаны с системной библиотекой GnuTLS в пакетах .deb от стандартных репозиториев Debian и Ubuntu. libmysqlclient по-прежнему статически связан с включёнными библиотеками yaSSL.

MariaDB до 10.1

В 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 и все клиенты или приложения, использующие эту библиотеку.

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API