Cipher Suites
Application Delivery Controller использует библиотеку OpenSSL для задания набора криптографических алгоритмов (cipher suites), применяемых при установлении TLS-соединений.
Для получения списка поддерживаемых шифров выполните команду:
openssl ciphers
Настройка выполняется в конфигурационном файле:
/usr/local/apisix/conf/config.yml
Пример конфигурации:
apisix:
ssl:
enable: true
ssl_ciphers: ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-GCM-SHA256
ssl_conf_command: Ciphersuites TLS_CHACHA20_POLY1305_SHA256
ssl_ciphers — задаёт список шифров для протоколов TLS версий TLSv1.2, TLSv1.1 и TLSv1. Используется синтаксис OpenSSL для задания списка шифров, поддерживающий модификаторы, группировки и управление приоритетом шифров.
ssl_conf_command — используется для настройки TLSv1.3. Позволяет задать явный перечень допустимых шифров TLSv1.3 без использования модификаторов и выражений.
|
Приоритет шифров определяется порядком их перечисления слева направо. |
Формирование списка шифров
Управляющие модификаторы
| Обозначение | Описание |
|---|---|
(без префикса) |
Добавляет шифр в конец списка |
|
Жёстко исключает шифр без возможности повторного добавления |
|
Исключает шифр с возможностью последующего добавления |
|
Перемещает шифр или группу в конец списка |
|
Логическое пересечение, например |
|
Модифицирует список, например |
Списки
| Обозначение | Описание |
|---|---|
|
Все доступные шифры, кроме |
|
Шифры, не входящие в |
|
Стандартный набор OpenSSL |
|
Шифры, отключённые по умолчанию |
Уровни криптографической стойкости
| Обозначение | Описание |
|---|---|
|
Высокая стойкость (ключ более 128 бит) |
|
Средняя стойкость (128 бит) |
|
Низкая стойкость (56–64 бит) |
|
Устаревшие экспортные шифры |
Алгоритмы обмена ключами
| Обозначение | Описание |
|---|---|
|
Эллиптический Диффи–Хеллман (PFS) |
|
Эфемерный Диффи–Хеллман (PFS) |
|
Обмен ключами на основе RSA (без PFS) |
|
Использование предварительно разделяемого ключа |
|
Аутентификация на основе пароля |
|
Алгоритмы обмена ключами по ГОСТ |
Алгоритмы аутентификации
| Обозначение | Описание |
|---|---|
|
Аутентификация с использованием RSA-сертификата |
|
Аутентификация с использованием ECDSA-сертификата |
|
Без аутентификации |
|
Аутентификация на основе общего секрета |
Пример формирования списка шифров
Пример списка шифров с исключением небезопасных алгоритмов и приоритизацией современных криптографических наборов:
ssl_ciphers: HIGH:!aNULL:!MD5:!RC4:!3DES:+AESGCM:+CHACHA20
Описание:
-
HIGH— включает шифры с высокой криптографической стойкостью -
!aNULL— исключает шифры без аутентификации -
!MD5— исключает небезопасные алгоритмы хеширования -
!RC4, !3DES— исключает устаревшие алгоритмы шифрования -
+AESGCM, +CHACHA20— понижает приоритет указанных алгоритмов, перемещая их в конец списка