Я могу вспомнить только одну слабость AES-CBC в TLS 1.1 и более поздних версиях: Счастливая Тринадцатая атака. Это атака на плохо спроектированный способ заполнения сообщений, что делает его особенно уязвимы к атака оракула из-за использования MAC-затем шифрование (со схемой заполнения, которая делает атаку довольно легкой).
Первоначальная атака основывалась на получении decryption_failed
предупреждение, когда заполнение было неправильным, что было исправлено в TLS 1.1 продолжая со случайным ключом сеанса при ошибке заполнения (и реализации TLS 1.0 также применяли эту контрмеру). Однако наивные реализации TLS 1.2 по-прежнему уязвимы для этой атаки из-за времени: злоумышленнику нужно знать, сколько байтов заполнения является правильным, и время, необходимое для обработки сообщения, приводит к утечке этой информации, если разработчик не был очень осторожным. .
Современные версии основных реализаций TLS защищают от Lucky Thirteen, поэтому, как правило, вы можете безопасно использовать наборы шифров CBC. Однако эта контрмера снижает производительность: реализация в основном должна обрабатывать все возможных длин отступов, которых может быть до 256, а затем объединить результаты. Имейте в виду, что старые реализации или реализации, не предназначенные для обеспечения высокого уровня безопасности, могут быть уязвимы.
Некоторые реализации TLS (по крайней мере, OpenSSL, GnuTLS и Mbed TLS) поддерживают расширение encrypt-then-MAC что полностью защищает от этой уязвимости.
В любом случае, единственная причина использовать Наборы шифров CBC предназначены для взаимодействия со старыми системами, которые не поддерживают наборы шифров AEAD (с использованием GCM, CCM или Chacha-Poly). Наборы шифров AEAD быстрее и менее подвержены сбоям в безопасности. Как правило, наборы шифров CBC до сих пор существуют ради систем, которые имеют криптографический механизм, который практически невозможно обновить (например, потому что он был сертифицирован, и никто не хочет платить за сертификацию реализации GCM или CCM). Если причиной отказа от GCM и Chacha-poly является наличие ускорения AES, CCM воспользуется этим преимуществом и, как правило, будет быстрее, чем наборы шифров CBC (которые требуют вычисления HMAC).
Наборы шифров CBC были удалены в TLS 1.3 потому что их сложно правильно реализовать (и невозможно реализовать одновременно с высокой производительностью и высокой безопасностью), и единственной причиной их сохранения была совместимость со старыми системами. С более новой версией протокола не было никаких существенных причин для их сохранения. И поскольку TLS 1.3 стремился исключить все криптографические механизмы, которые трудно реализовать безопасным образом, комплекты шифров CBC определенно должны были уйти.