Может ли сервер/клиент 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, и проверьте совместимость/безопасность вашего сервера, пока вам не будет достаточно.