Может ли сервер/клиент TLS 1.2 работать с TLS_RSA_WITH_AES_128_CBC_SHA?

Я обновляю встроенную версию TLS 1.0 для TLS 1.2 (устройства с 1 МБ кодового пространства или меньше и без ОС). На данный момент у меня есть шифры AES-128 и AES-256 CBC, работающие с дайджестами SHA-1 и SHA-256 для минимальной реализации. Библиотека не может согласовывать соединения SSLv2, SSLv3, TLS 1.0 или TLS 1.1.

Я чувствовал, что этого будет достаточно, учитывая, что RFC 5246 заявляет: "TLS_RSA_WITH_AES_128_CBC_SHA теперь является обязательным для реализации набора шифров".

Тем не менее, когда я читал различные публикации в блогах безопасности, я вижу рекомендации, которые должны были отключить этот пакет, и (например) разрешать только варианты ECDHE_RSA или DHE_RSA.

Итак, мой вопрос заключается в том, будут ли устройства, использующие нашу библиотеку, взаимодействовать с современными веб-браузерами (как сервер) и современными https/smtps/pop-серверами (как клиент). Существуют ли клиенты/серверы TLS 1.2, которые не могут согласовать соединение TLS_RSA_WITH_AES_128_CBC_SHA?

Ответы

Ответ 1

Я не уверен, что в настоящее время существует много серверов, поддерживающих TLS, которые не смогут согласовать TLS_RSA_WITH_AES_128_CBC_SHA с TLSv1.2, поскольку это обязательный набор шифров для TLSv1.2.

Однако есть вещи, о которых нужно помнить:

  • TLS_RSA_WITH_3DES_EDE_CBC_SHA является обязательным для TLSv1.0 и TLSv1.1, но по соображениям безопасности он больше не поддерживается каждым сервером,
  • Mozilla рекомендует (и не только) одобрить AES128 вместо AES256,
  • Perfect Forward Secrecy (PFS), разрешенный DHE или ECDHE, теперь является обязательной функцией.

Итак, если я могу предоставить вам 4 набора шифров (столько же, сколько у вас есть), я бы сказал, что они от самых сильных до самых слабых:

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_AES_128_CBC_SHA

Я бы сказал, что эти 4 набора шифров обеспечивают достаточную безопасность и совместимость с серверами TLSv1.2.

Теперь вопрос о поддержке только TLSv1.2 - это еще один вопрос, но если у вас достаточно места, я рекомендую вам добавить TLSv1.0 тоже (TLSv1.1 не обеспечивает дополнительную совместимость).

PS. Причина, по которой AES128 предпочитается вместо AES256, - это то, что некоторые люди считают, что дополнительная безопасность, добавленная AES256 (на данный момент) никчемная, и что AES128 кажется более устойчивой к тайм-атакам.

Ответ 2

"Итак, мой вопрос заключается в том, будут ли устройства, использующие нашу библиотеку, взаимодействовать с современными веб-браузерами (как сервер) и современными https/smtps/pop-серверами (как клиент). Существуют ли клиенты/серверы TLS 1.2, которые не могут согласовать Соединение TLS_RSA_WITH_AES_128_CBC_SHA?"

Да, есть много реализаций, которые терпят неудачу.

Чаще всего:

  • Клиенты, которые все еще отправляют клиент SSL2.0 Hello
  • Клиенты/серверы, которые поддерживают только набор шифров PFS
  • Серверы, которые все еще не поддерживают TLS 1.2
  • Серверы, которые больше не поддерживают TLS 1.2 - поскольку они поддерживают только TLS 1.3

Моя рекомендация:

  • также поддерживает TLS 1.3 (не так сложно реализовать, я сделал это)
  • также поддерживает DHE

Или используйте инструмент/сайт, например https://www.ssllabs.com/ssltest/index.html, и проверьте совместимость/безопасность вашего сервера, пока вам не будет достаточно.