Атака на TLS

19 сентября 2011 года Интернет облетела новость: «Хакеры взломали протокол SSL, который используется для защиты миллионов сайтов». Речь идет о том, что на конференции Ekoparty исследователи Риццо и Дуонг описали атаку на протокол TLS, в ходе которой можно определить секретные данные S (например, пароли доступа в виде куки), пересылаемые клиентом серверу.

Для проведения атаки требуется выполнение следующих условий:

  1. Для шифрования используется блочный алгоритм в режиме CBC.
  2. Противник знает, какая синхропосылка будет использоваться при шифровании очередного пакета, в том числа пакета, содержащего S. Для этого требуется, чтобы использовался TLS версии 1.0 или SSL любой версии. В этих протоколах синхропосылка очередного пакета определяется как последний блок шифртекста при обработке предыдущего пакета.
  3. Противник имеет возможность навязывать данные, которые будут следовать перед S при зашифровании. Для реализации навязывания Риццо и Дуонг предложили использовать уязвимости технологии WebSockets, которая часто используется для загрузки дополнительного контента с сайта B при обращении к сайту А. Детали можно найти в Интернет по адресу http://www.educatedguesswork.org/2011/09/security_impact_of_the_rizzodu.html
  4. Противник перехватывает пакеты TLS.

Пусть P – навязываемые данные. Выбирая длину P, противник добивается того, что сообщение P || S будет разбито на блоки X1, X2,…, причем первый октет P будет последним октетом X1. Напомним, что зашифрование в режиме CBC состоит в определении блоков шифртекста по правилам:

Yt = FK(XtYt-1), t = 1,2,….

Здесь FK – зашифрование блока данных на ключе K, Y0 – синхропосылка.

Противник знает синхропосылку Y0. Поэтому, манипулируя P, он может навязать зашифрование блока X1Y1 = C || b, где С – известная ему фиксированная строка октетов, а b – неизвестный первый октет.

Противник перехватывает Y1 – результат зашифрования C || b. Противник может подобрать данные в других пакетах таким образом, что будут зашифрованы 256 блоков C || B с всевозможными значениями b = B. Сравнивая результаты зашифрования с Y1, противник определяет искомое секретное значение b. Определив первый байт S, противник схожим образом может определить второй, третий,… и, наконец, S полностью.

Отметим, что слабости режима CBC давно известны. Переход от TLS 1.0 к TLS 1.1 был вызван, в том числе, и необходимостью защиты от этих слабостей. К сожалению, подавляющее большинство браузеров и серверов Интернет, не поддерживают TLS 1.1, TLS 1.2 и поэтому оказались незащищенными от атаки Риццо – Дуонга.

Новости
09.10.2017
Белорусско-Индийский мини-семинар
27.09.2017
План семинара осень 2017
23.05.2017
XХII научно-практическая конференция «Комплексная защита информации»
31.03.2017
ITSecurity-2017
22.02.2017
Ввод в действие новой редакции СТБ 34.101.47
21.02.2017
План семинара весна 2017
20.01.2017
Итоги NSUCRYPTO-2016
24.10.2016
План семинара осень 2016
29.08.2016
Ввод в действие СТБ 34.101.77