13 Сентября, 2012

Эксплойт CRIME: расшифровка каждого байта TLS за 4-6 запросов

Андрей Комаров
Осталось 10 дней до того дня, как Джулиано Риццо (Juliano Rizzo) и Тай Дуонг (Thai Duong) представят эксплойт CRIME на конференции Ekoparty, но уже можно сделать первые догадки, какая функция TLS используется для расшифровки трафика после исполнения атакующим скрипта в браузере пользователя. Сейчас появилась идея, что атакующий использует алгоритм сжатия.

Программисты на сайте Stackexchange опубликовали вполне работоспособный алгоритм , как можно вычислить секретное значение функции, если с помощью скрипта отправлять с компьютера жертвы различные значения этой функции и смотреть, как меняется поток после компрессии с помощью Zip или GZip. Таким образом, можно подбирать символы в секретном значении, например, Cookie: secret=7xc89f+94/wa, которое передаётся с каждым HTTP-заголовке зашифрованной сессии.
Для успешной атаки на TLS достаточно знать, в каком формате передаётся секретное значение, то есть текст “Cookie: secret=”, и иметь возможность исполнять код в браузере пользователя: это можно сделать через скрипт или XSS, или плагин к браузеру.
Сами авторы эксплойта заранее не сказали, какую функцию TLS используют. Они говорят, что она раньше обсуждалась как теоретически уязвимая, но эксплойтов так и не удалось разработать. Уязвимости подвержены все версии TLS, включая TLS 1.2.
Косвенное подтверждает версию с компрессией тот факт, что компания Google отключила TLS сжатие с OpenSSL без ссылки на какой-то баг.
или введите имя

CAPTCHA