Перейти к содержимому
ecdsa.com

Атака удлинения сообщения

Атака на хеш-функции со структурой Меркла — Дамгора, например MD5, SHA-1, SHA-256 и SHA-512, которая вычисляет H(секрет ‖ m ‖ дополнение ‖ m′) по H(секрет ‖ m) и длине строки секрет ‖ m, не зная секрета.
Другие написанияlength extension attackhash length extension

В конструкции Меркла — Дамгора дайджест совпадает с полным внутренним состоянием после последнего блока, поэтому атакующий может загрузить его и продолжить хеширование. Если сервис аутентифицирует запросы значением SHA-256(secret ‖ params), любой, кто увидел один верный тег, может дописать &admin=1 (после байтов дополнения) и вычислить верный тег для более длинного сообщения. Именно так в 2009 году пали подписи API Flickr на основе MD5.

Не подвержены атаке: HMAC (внешний хеш скрывает внутреннее состояние), SHA-3 и функции SHAKE (ёмкость никогда не попадает в выход), BLAKE2 и BLAKE3, а также усечённые варианты SHA-2, например SHA-384 и SHA-512/256, выход которых содержит не всё состояние. Схемы подписи хешируют сообщение перед подписью и атаке не подвержены.

Правило простое: никогда не стройте MAC как hash(key ‖ message) на SHA-1 или SHA-256; используйте HMAC, KMAC или BLAKE2 с ключом.

Стандарты и ссылки

Все термины