Безопасность HMAC на основе SHA-1 затронута нападениями коллизий на SHA-1?
Последствия использования HMAC для безопасности подробно описаны в разделе безопасности RFC . Короче говоря, действительно требуется очень сильная атака, прежде чем безопасность HMAC окажется под угрозой; существующие коллизионные атаки на SHA-1 определенно не являются таковыми. HMAC специально разработан, чтобы сделать атаки трудными, и обычных атак на коллизию обычно недостаточно:
Безопасность сообщения представлен механизм аутентификации здесь зависит от криптографических свойства хеш-функции H: устойчивость к обнаружению столкновения (ограничивается случаем, когда начальная значение является секретным и случайным, и где вывод функции не явно доступны злоумышленнику), и аутентификация сообщения свойство функции сжатия из H применительно к одиночным блокам (в HMAC эти блоки частично неизвестно злоумышленнику, поскольку они содержат результат вычисления внутреннего H и, в частности, не может быть полностью выбран злоумышленником).
Рекомендую прочитать раздел целиком; в нем более подробно рассказывается о том, каких именно атак будет достаточно для взлома HMAC и сколько усилий потребуется.
Самая сильная атака, известная против HMAC, основана на частоте коллизии для хэш-функции H ("атака по случаю дня рождения") [PV, BCK2] и совершенно непрактично для минимально разумных хэш-функций.
В качестве примера, если мы рассмотрим хеш-функцию, такую как MD5, где длина вывода равна L = 16 байтов (128 бит), которые необходимо атакующему получить правильные вычисленные теги аутентификации сообщения (с тот же секретный ключ K!) Примерно на 2 64 известных открытых текстах. Это бы требуют обработки не менее 2 64 блоков под H, невыполнимая задача в любом реалистичном сценарии (при длине блока 64 байтов, это займет 250 000 лет при непрерывном канале со скоростью 1 Гбит / с, и без изменения секретного ключа K за все это время). Эта атака может стать реалистичным только при наличии серьезных изъянов при столкновении поведение функции H обнаружено (например, обнаружены столкновения после 2 ** 30 сообщений). Такое открытие определило бы немедленное замену функции H (последствия такого отказа будут гораздо более сурово для традиционного использования H в контексте цифровые подписи, сертификаты открытых ключей и т. д.).
Примечание: эту атаку необходимо резко противопоставлять обычным коллизионные атаки на криптографические хеш-функции без секретного ключа задействовано и где 2 64 автономных параллелизируемых (!) операции достаточно найти коллизии. Последняя атака приближается осуществимость [VW] *** в то время как атака дня рождения на HMAC полностью непрактично. (В приведенных выше примерах, если используется хеш-функция если, скажем, выводить 160 бит, то 2 64 следует заменить на 2 80.) *
Правильная реализация вышеуказанной конструкции, выбор случайные (или криптографически псевдослучайные) ключи, безопасный ключ механизм обмена, частое освежение ключей и хорошая секретность защита ключей - все это важные составляющие безопасности механизм проверки целостности, предоставляемый HMAC.
См. этот вопрос для обсуждения той же темы. В двух словах: атаки столкновения не наносят прямого вреда HMAC. Но наличие коллизионных атак подразумевает, что функция сжатия, на которой построена хэш-функция, не является «случайным оракулом», и это лишает доказательства безопасности HMAC.