Рекомендуемые шифры TLS для Traefik - PullRequest
0 голосов
/ 01 сентября 2018

Я ищу рекомендованную конфигурацию для SSL / TLS в Traefik. Я установил minVersion = "VersionTLS12", чтобы избежать более слабых старых версий, и нашел поддерживаемые шифры в Go . Перекрестная проверка, что с рекомендациями SSLLabs я придумал следующую последовательность (порядок имеет значение):

cipherSuites = [
  "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
  "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
  "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
  "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
  "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
  "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
  "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
  "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
  "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
  "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"
]

[Обновление] Позже перепроверяется с помощью Генератора конфигурации SSL Mozilla , отбрасывая SHA-1 и используя предложенный порядок:

cipherSuites = [
  "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
  "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
  "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
  "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",
  "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
  "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
  "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
  "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
]

Имеет ли это смысл? Я хочу избегать слабых шифров, но для совместимости включите как можно больше сильных шифров.

Ответы [ 3 ]

0 голосов
/ 17 июля 2019

Вы можете использовать эту страницу для генерации вашей конфигурации traefik: https://ssl -config.mozilla.org / # server = traefik & server-version = 1.7.12 & config = промежуточный

# generated 2019-07-17, https://ssl-config.mozilla.org/#server=traefik&server-version=1.7.12&config=intermediate
defaultEntryPoints = ["http", "https"]

[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"

  [entryPoints.https]
  address = ":443"
    [entryPoints.https.tls]
      minVersion = "VersionTLS12"
      cipherSuites = [
        "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
        "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
        "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
        "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
        "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
        "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
        "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384",
        "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"
      ]

      [[entryPoints.https.tls.certificates]]
      certFile = "/path/to/signed_cert_plus_intermediates"
      keyFile = "/path/to/private_key"
0 голосов
/ 09 августа 2019

Я нашел этот вопрос, исследуя наборы шифров для Traefik. Итак, для дальнейшего использования, и люди, которые попробовали генератор, но столкнулись с проблемами:

Я нашел страницу ssl-config в Mozilla, о которой упоминал и Руи Мартинс. Это отлично работает, за исключением последних четырех записей.

TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256

Traefik не признаются действительными комплектами шифров.
Я проверил документацию Go и обнаружил, что комплекты шифров там тоже не упоминаются. Однако были упомянуты относительно близкие альтернативы: https://godoc.org/crypto/tls#pkg-constants

Поэтому я заменил значения следующим образом:

+-----------------------------------------------+----------------------------------------+
| Old Value                                     | New Value                              |
+-----------------------------------------------+----------------------------------------+
| TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 | ‎TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 |
+-----------------------------------------------+----------------------------------------+
| TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256   | TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305   |
+-----------------------------------------------+----------------------------------------+
| TLS_DHE_RSA_WITH_AES_256_GCM_SHA384           | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384  |
+-----------------------------------------------+----------------------------------------+
| TLS_DHE_RSA_WITH_AES_128_GCM_SHA256           | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256  |
+-----------------------------------------------+----------------------------------------+

Обратите внимание на удаленный _SHA256 для первых двух записей и добавленный EC для последних двух.

Это прекрасно работает, но не является решением основной проблемы. Поскольку я не обладаю достаточными знаниями или опытом в области комплектов шифров, я отправил в Mozilla отчет об ошибках по созданию их ssl-config для Traefik. (https://github.com/mozilla/ssl-config-generator/issues/52)

0 голосов
/ 03 сентября 2018

выглядит хорошо. Я использую ту же конфигурацию, что и в вашем обновлении, и все выглядит безопасным и совместимым в соответствии с тестами SSL Labs.

Обновление 05-07-19:

Шифры CBC теперь также слабые в соответствии с SSL Labs. Вы можете удалить их, но если ваш сертификат подписан с помощью RSA, вы не сможете просматривать свой веб-сайт в IE 11 с Windows 7. Я подписал свой сертификат с помощью ECDSA, используя текущие шифры выше (без CBC), чтобы заставить его работать IE 11 Windows 7.

...