Атака на 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 и поэтому оказались незащищенными от атаки Риццо – Дуонга.

Новости
07.05.2024
Защита диссертации
07.03.2024
План семинара весна 2024
12.02.2024
Единый день голосования
24.10.2023
II Международная научная конференция
26.05.2023
XХVIII научно-практическая конференция
28.04.2023
TIBO 2023
02.01.2023
Программный комплекс ЭАДП
27.12.2022
С Новым годом!
21.11.2022
Программный инструментарий