Состоялась презентация эксплойта CRIME

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

Главный специалист по криптографии в компании Google Адам Лэнгли (Adam Langley) подробно объясняет в своём блоге, как такое возможно, на примере zlib-шифрования заголовков в протоколе SPDY, потому что здесь используется абсолютно такой же метод компрессии, что и в случае с cookie в TLS.

Авторы эксплойта CRIME могут определить, где в зашифрованном файле находятся cookies, потому что в этом месте zlib лучше сожмёт трафик, ссылаясь на предыдущий блок. CRIME позволяет с помощью нескольких запросов побайтово подбирать содержимое cookies, наблюдая за значениями, которые выдаёт zlib. Если вы «угадали», то это будет заметно по уменьшившемуся размеру пакета. Собственно, так и работает эксплойт, расшифровывая значение cookies по 4-6 запросов на каждый байт base64. Очевидно, что атакующему требуется возможность просматривать трафик с компьютера жертвы, а также возможность выполнять много запросов из его браузера. Это возможно с помощью инъекции скрипта на какую-нибудь веб-страницу, которую загрузит пользователь.

Разработчики браузеров Chrome и Firefox были заранее предупреждены об этой уязвимости и в качестве временной меры отключили сжатие заголовков SPDY в версиях Chrome 21 и Firefox 15. Более того, браузер Chrome вовсе отключил компрессию TLS, где возможна точно такая же атака. Чтобы избежать атаки, нужно каждый cookie помещать в новый контейнер, который сжимается без ссылки на предыдущие данные: разработчики Google планируют реализовать подобный механизм в новой версии SPDY/4.

Подробное описание: http://imperialviolet.org/2012/09/21/crime.html