CC-BY-CA Vadim Rybalko, на основе мема

Рабочая группа инженеров Интернета IETF признала устаревшими протоколы шифрования TLS 1.0 и 1.1. Соответствующие стандарты RFC официально получили «исторический» статус с пометкой deprecated.

Пометка deprecated означает, что IETF настоятельно не рекомендует использовать эти протоколы. В целях безопасности требуется отключить поддержку TLS 1.0 и 1.1 везде, где это возможно. Об этом говорится в опубликованном RFC 8996. Почему нельзя поддерживать протоколы TLS 1.0 и 1.1 — подробно объясняется в пунктах 3, 4 и 5 этого документа.



Согласно объяснению IETF, удаление поддержки более старых версий из библиотек и программного обеспечения «уменьшает поверхность атаки, уменьшает возможность неправильной конфигурации и упрощает обслуживание библиотеки и продукта».

Одновременно со старыми версиями TLS также признаётся устаревшим протокол Datagram TLS (DTLS) версии 1.0 (RFC 4347), и только он, поскольку версия 1.1 не выходила.

Стандарту TLS 1.0 в этом году исполнилось 22 года. С момента его принятия стало лучше понятно, как следует проектировать протоколы шифрования. Выросли требования к надёжности шифров. К сожалению, TLS 1.0 и 1.1 не соответствуют этим требованиям.

Самое плохое, что TLS 1.0 и 1.1 не поддерживают работу с современными криптографическими шифрами. Например, при рукопожатии в них обязательно применяется алгоритм хэширования SHA-1. В этих версиях TLS невозможно установить более сильный алгоритм хэширования для подписей ServerKeyExchange или CertificateVerify.

Черновик данного RFC 8996 был опубликован 14 сентября 2018 года. В числе прочего, там упоминается, что алгоритм SHA-1 с криптостойкостью 2^77 нельзя считать безопасным по современным меркам: «2^77 операций [для атаки] — это ниже допустимой границы безопасности».



Речь идёт об атаке BEAST (Browser Exploit Against SSL/TLS) на TLS 1.0 и 1.1, а точнее — на блочные шифры, где в качестве вектора инициализации для сообщения n используется последний блок шифрования предыдущего сообщения (n-1).

Разработчики всех ведущих браузеров сразу согласились выполнить рекомендации IETF.

Браузер Chrome первым отказался от поддержки старых версий TLS в январе 2019 года. Начиная версии 79 для устаревших протоколов выводилось предупреждение в консоли DevTools, а полное отключение запланировали на версию Chrome 81 в марте 2020 года (предварительные версии — с января 2020 года). Одновременно отказ от TLS 1.0 и 1.1 анонсировали Microsoft, Mozilla и Apple.

Правда, всё пошло не по плану. В марте 2020 года Firefox временно отказался удалять поддержку TLS 1.0 и 1.1. Формально это было сделано из-за коронавируса (см. скриншот ниже), но фактически разработчики Mozilla побоялись, что коллеги из Google пойдут на попятную и оставят поддержку TLS 1.0 и 1.1, так что Firefox станет единственным браузером без этой поддержки.



Но в итоге поддержку старых протоколов в браузерах всё-таки отключили. В случае необходимости в Firefox можно изменить настройку security.tls.version.enable-deprecated.

Постепенно TLS 1.0 и 1.1 удаляют из приложений и сервисов. Это сделали Amazon, CloudFlare, GitHub, KeyCDN, PayPal и другие веб-сервисы. С 15 января 2020 года поддержка старых протоколов отключена на ресурсах Хабра.