Обзор атак на приложения и протоколы, использующие алгоритм MD5, часть 6
© Сергей Панасенко, 2013
Продолжим обзор атак на различные приложения и протоколы, использующие алгоритм хэширования MD5.
В 2007 г. вышла работа [1] Жетана Лорана (Gaetan Leurent), которому удалось заметно усилить обсуждавшиеся в предыдущих частях статьи атаки Ванг и ее коллег [2] по поиску двухблочных коллизий для алгоритма MD5. Лоран отметил, что в предыдущих работах, включая работу Ванг, технология модификации сообщений применялась последовательно – от первой итерации алгоритма до тех пор, пока трудоемкость удовлетворения условий следующей итерации не превышает выгоду от этого (заключающуюся в увеличении вероятности возникновения коллизии для пары модифицируемых сообщений). Он предложил альтернативную технологию модификации сообщений: выбор стартовой итерации (в конце итераций первого раунда) и параллельное применение модификации сообщений к итерациям первого и второго раунда [1].
Данная технология может быть обобщена таким образом, что некоторые (выбранные атакующим) слова в дающих коллизию сообщениях могут иметь фиксированные (также выбранные атакующим) значения, что, в отличие от абстрактных коллизий Ванг, дает атакующему некоторый контроль над данными сообщениями. Такую коллизию уже нельзя назвать абстрактной, поскольку части сообщений выбирается атакующим, исходя из условий и цели атаки.
Выбор фиксируемых слов ограничен и приводит к незначительному увеличению трудоемкости поиска коллизий, которые по-прежнему могут вычисляться достаточно эффективно. Наиболее интересной с точки зрения практического применения Лоран посчитал возможность выбора фиксируемых слов в конце сообщений, на основе которой можно сконструировать следующие атаки:
H*(m) = H(?(m)),
где ?(m) – функция, осуществляющая предварительную обработку одним из следующих способов:
- отбеливание (whitening) – внедрение в сообщение специфических (например, нулевых) блоков через определенные промежутки;
- чередование (self-interleaving) блоков – дублирование блоков сообщения.
Лоран показал, что его технология поиска коллизии эффективна даже при применении отбеливания сообщений, и привел пример коллизии для модификации алгоритма MD5 с предварительным отбеливанием сообщения.
Команда APOP используется для усиленной (по сравнению с простой передачей логина и пароля в открытом виде) аутентификации пользователя на сервере электронной почты в рамках протокола POP (Post Office Protocol) версии 3 [5]. Данная команда использует алгоритм MD5; при ее выполнении между почтовым сервером и клиентом передаются следующие данные (см. рис. 2):
<process-ID.clock@hostname>
где:
- process-ID – идентификатор процесса (PID) почтового сервера в десятичном виде;
- clock – метка времени сервера, также в десятичном виде;
- hostname – доменное имя сервера;
данный фрагмент баннера может выглядеть так (приведен пример из [5]):
<1896.697170952@dbc.mtview.ca.us>
APOP username digest
где:
- username – идентификатор пользователя на почтовом сервере (логин);
- digest – хэш-значение MD5 от следующей последовательности:
<process-ID.clock@hostname>password
т. е. перед хэшированием клиент присоединяет к полученному фрагменту баннера пароль пользователя; в результате хэшируемая последовательность может выглядеть, например, так:
<1896.697170952@dbc.mtview.ca.us>4pZl#amq
Атака Лорана на команду APOP предполагает, что злоумышленник играет роль почтового сервера и, следовательно, может выбирать значение баннера [1, 6]. Предполагается, что, если первый запрос пользователя на аутентификацию вернул неудачный результат, то пользователь попробует выполнить аутентификацию повторно. Атакующий в качестве сервера возвращает пользователю при первом и втором запросе на установление соединения такие фрагменты баннера <M1> и <M2>, которые дают двухблочную коллизию следующего вида:
MD5(<M1>x) = MD5(<M2>x),
где x – некий единичный символ; использование фиксируемых слов делает такую коллизию возможной.
Таким образом, атакующий может смонтировать атаку с выбранным открытым текстом, поскольку в качестве ответа клиента атакующий получает два хэш-значения MD5 от следующих строк:
<M1>password
<M2>password
Если первый символ пароля пользователя равен x, то получается, что полученные хэш-значения содержат двухблочную коллизию и, следовательно, они эквивалентны.
Далее в атаке предполагается, что при неудачной аутентификации пользователь совершит много подобных запросов (это является требованием и ограничением успешной атаки; оно достаточно реально, поскольку количество запросов на аутентификацию обычно ограничивается именно на стороне сервера, который является злоумышленником). Атакующий в каждой паре запросов перебирает один из возможных символов и, в результате, он рано или поздно получает пару эквивалентных значений, с помощью которой определяет первый символ пароля пользователя.
Данная атака является расширяемой и позволяет (с невысокой трудоемкостью) подобрать до трех символов пароля пользователя с помощью следующей коллизии:
MD5(<M1’>xyz) = MD5(<M2’>xyz),
где x, y и z – различные единичные символы.
Таким образом, атака Лорана на команду APOP является практически применимой с некоторыми ограничениями и позволяет существенно снизить стойкость аутентификации с помощью данной команды, поскольку знание трех символов пароля позволит многократно снизить трудоемкость дальнейшего перебора пароля. Это особенно эффективно для коротких паролей (таких, как приведенный мной в примере выше пароль «4pZl#amq», который, на первый взгляд, не выглядит слабым).
Независимо от Лорана, аналогичную атаку на APOP одновременно с Лораном представили Ю Сасаки (Yu Sasaki) и его коллеги в работе [7]. Данная атака была найдена еще в конце 2006 г., однако, задержка в публикации результатов работы произошла из-за японского законодательства, согласно которому до публикации подобных атак необходимо ставить в известность Агентство по информационным технологиям Японии (Information-technology Promotion Agency – IPA) [8].
В 2008 г. в работе [9] другой коллектив японских специалистов (также с участием Ю Сасаки) существенно усилил данную атаку путем применения предложенных еще в 1993 г. в работе ден Боера и Босселаерса [10] псевдо-коллизий функции сжатия алгоритма MD5. Криптоаналитики ввели новую технологию, названную ими «IV Bridge» (см. рис. 3): получение из стандартного вектора инициализации (эквивалентного для двух сообщений) после обработки первой пары блоков такой разности между текущими значениями переменных A…D двух сообщений, которая позволила бы применить псевдо-коллизию ден Боера и Босселаерса (данный вид псевдо-коллизии был подробно описан в [11]).
Технология «IV Bridge» позволила атакующим добиться несравнимо большего контроля над фрагментами сообщений, дающими коллизию, и, в результате, достичь следующих возможностей по поиску паролей пользователей, применяемых в команде APOP [9]:
Поскольку можно утверждать, что подавляющее большинство паролей пользователей, применяемых для доступа к электронным почтовым ящикам, вряд ли длиннее 11 символов, с выходом работы [9] команду APOP можно считать полностью взломанной даже с учетом описанных выше ограничений атаки на данную команду (не говоря уже о расширении атаки Сасаки и его коллег до 51 вскрываемого символа пароля).
Тем не менее, даже эти результаты были в дальнейшем усилены, что будет обсуждаться в последующих частях статьи.
Литература
Рисунки: