Конфигурация шифра для АктивногоШлюза

Материал из Dynatrace

Компоненты Ключ-Астром обмениваются данными через SSL, использующий шифры для шифрования HTTP-запросов. Не все доступные шифры в настоящее время считаются достаточно безопасными. Поэтому по умолчанию исключаются некоторые шифры (например, все MD5, все RC4, все DES, все DSS).

Чтобы проверить, какие шифры поддерживаются, и обеспечить правильность именования шифров, всегда используйте Nmap для сканирования шифров в АктивномШлюзе, так как Nmap использует тот же синтаксис, что и Ключ-Астром.

Настройка шифров

Сканирование шифров

  • Сканируйте поддерживаемые шифры с помощью Nmap. Результатом сканирования будет список, подобный следующему:
PORT     STATE SERVICE
9999/tcp open  abyss
| ssl-enum-ciphers:
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (dh 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (dh 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
|       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
|       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A
|     compressors:
|       NULL
|     cipher preference: server
|_  least strength: A

Исключение шифров

  • Исключите нежелательные шифры, перечислив их в файле custom.properties. Мы поддерживаем только исключения шаблонов, поэтому в приведенном ниже примере исключение TLS_DHE_RSA_WITH_AES_256_CBC_SHA также исключает TLS_DHE_RSA_WITH_AES_256_CBC_SHA384. В следующем примере показано, как исключить шифры ECDHE из приведенного выше списка:
[com.compuware.apm.webserver]
excluded-ciphers = TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

Проблема с этим подходом заключается в том, что список становится длинным, и поэтому его трудно поддерживать, если OpenSSL изменяется. Более надежным/динамичным способом является использование подшаблона, как показано в примере ниже.

[com.compuware.apm.webserver]
excluded-ciphers = TLS_ECDHE_

В этом примере будут исключены все имена шифров, содержащие строку TLS_ECDHE_. Этот шаблон исключит дополнительные шифры, если базовый список изменится, например, из-за обновлений OpenSSL.

Чтобы исключить шаблон суффикса, завершите строку шаблона символом $. Чтобы исключить SHA без исключения SHA256, укажите SHA$ в качестве шаблона. Например:

[com.compuware.apm.webserver]
excluded-ciphers = TLS_RSA_WITH,_SHA$

Кроме того, вы можете определить, какие шифры вы хотите включить.

[com.compuware.apm.webserver]
included-ciphers = _ECDHE_

Как правило, вы определяете либо включенные, либо исключенные шифры, но не оба.

Обратите внимание, что если шифр был определен в списке как включенных, так и исключенных, он будет считаться исключенным — исключение имеет приоритет над включением.