Xakep #305. Многошаговые SQL-инъекции
Разработчики многих библиотек SSL, в том числе OpenSSL, NSS, GnuTLS, yaSSL, PolarSSL, Opera и BouncyCastle выпустили или готовятся выпустить патчи, чтобы устранить уязвимость, которая потенциально позволяет извлечь конфиденциальную информацию из зашифрованного канала связи, в том числе пароли и аутентификационные cookies.
Выпуску патчей предшествовала публикация отчёта с описанием нового метода атаки на реализации SSL, TLS и DTLS, использующие режим сцепления блоков шифротекста (CBC). Уязвимость связана именно с недоработкой в спецификациях TLS, а не с конкретными реализациями, поэтому баг присутствует во всех библиотеках.
Режим сцепления блоков шифротекста (Cipher Block Chaining) — один из режимов шифрования для симметричного блочного шифра с использованием механизма обратной связи. Каждый блок открытого текста (кроме первого) побитово складывается по модулю 2 (операция XOR) с предыдущим результатом шифрования.
Новый метод атаки разработали криптологи из Royal Holloway College при Лондонском университете. Заблаговременно уведомив всех ведущих разработчиков SSL/TLS-библиотек и оказав им помощь в выпуске патчей, исследователи опубликовали в открытом доступе подробное описание атаки, которую они назвали “Lucky 13”.
Новый метод использует хорошо известную атаку типа padding oracle, подменяя шифротекст и анализируя задержку при ответе. Атака мало применима на практике, потому что требует весьма специфических условий от клиента и сервера. Например, злоумышленник должен находиться в одной локальной сети с сервером.