Новая старая уязвимость: менеджер паролей Firefox уже 9 лет использует устаревший SHA-1

в 18:05, , рубрики: Firefox, sha-1, Блог компании ИТ-ГРАД, информационная безопасность, ИТ-ГРАД

Создатель AdBlock Plus Владимир Палант (Wladimir Palant) обнаружил уязвимость в браузере Firefox и почтовом клиенте Thunderbird, позволяющую подобрать их мастер-пароль путем перебора. Источник проблемы — используемый механизм хеширования SHA-1.

Подробнее об уязвимости ниже.

Новая старая уязвимость: менеджер паролей Firefox уже 9 лет использует устаревший SHA-1 - 1
/ фото Z Jason CC

Суть проблемы

В своем блоге Палант описывает работу функции sftkdb_passwordToKey() function, которая преобразует пароль пользователя в ключ шифрования с помощью хеширования строки, содержащей соль и сам мастер-пароль. В качестве алгоритма хеширования используется SHA-1.

Проблема заключается в том, что в Firefox и Thunderbird функция применяется лишь один раз, хотя общепринятая практика в индустрии предполагает минимум 10 тыс. итераций. В LastPass, например, используется 100 тыс.

Современные GPU чрезвычайно хорошо вычисляют хеши SHA-1. Например, одна видеокарта Nvidia GTX 1080 вычисляет 8,5 млрд SHA-1 хешей в секунду. По данным исследования Microsoft, сложность пароля рядового пользователя составляет порядка 40 бит. Получается, что для его подбора нужно около 239 попыток — это означает, что подбор пароля средней сложности займет около минуты.

Не первый баг-репорт

Об этой уязвимости Mozilla сообщил Джастин Дольске (Justin Dolske) еще девять лет назад, оформив соответствующий баг-репорт. Джастин обратил внимание разработчиков, что столь малое число итераций хеш-функции создает угрозу безопасности пользователей браузера. Однако по какой-то причине проблема так и осталась не решенной.

Ирония в том, что SHA-1 по-прежнему был частью браузера даже после того, как в октябре 2016 года Mozilla прекратила поддержку сайтов с сертификатами, использующими этот алгоритм хеширования.

Основной причиной являлась возможность коллизии — явления, при котором два различных блока информации после хеширования имеют идентичный вид. Это позволяло подменять настоящие сертификаты сфабрикованными. О возможности «коллизионной атаки» эксперты заявляли еще в 2012 году, предсказывая, что уже к 2021 году ресурсов на ее осуществление хватит рядовым вычислительным системам, используемым в исследовательских институтах.

А в начале 2017 года Google анонсировали первую успешную коллизионную атаку. В результате эксперимента, команда Google смогла получить два одинаковых хеша для двух разных PDF-документов. Для осуществления атаки инженеры сперва создали PDF-префикс, а затем задействовали масштабные технические ресурсы Google для вычисления коллизии. Всего компания произвела 9 квинтильонов вычислений SHA-1.

В связи с успешным воспроизведением коллизионной атаки в Google рекомендовали специалистам по информационной безопасности как можно скорее начать использовать более защищенные алгоритмы хеширования SHA-256 и SHA-3.

Новая старая уязвимость: менеджер паролей Firefox уже 9 лет использует устаревший SHA-1 - 2
/ фото Z Jason CC

Потенциальное решение проблемы

Ответ на форуме Mozilla поступил только после того, как Владимир Палант «воскресил» баг-репорт Джастина Дольске 9-летней давности. В ответе разработчики отметили, что уязвимость будет исправлена с выходом Lockbox — нового компонента для менеджера паролей. Пока утилита доступна как отдельное расширение, зависящее от менеджера паролей Firefox Accounts.

Однако сам Палант для решения проблемы предложил разработчикам начать использовать алгоритм хеширования Argon2, который использует многократный проход по памяти. Argon2 был объявлен победителем конкурса Password Hashing Competition в 2015 году, участники которого разрабатывали новую функцию хеширования паролей.

Сперва Argon2 хеширует пароль с использованием хеш-функции Blake2b. Результат хеширования записывается в блоки памяти, которые преобразуются с использованием функции сжатия G (она принимает на вход два 8192-битных блока, а выдает 1024-битный блок), и в результате генерируется ключ.

Функция оптимизирована под архитектуру x86 и утилизирует особенности организации кэша и памяти в процессорах Intel и AMD. При этом Argon2 позволяет настраивать количество итераций, размер результата, секретный ключ и др.


P.S. Материалы по теме ИБ из Первого блога о корпоративном IaaS:

Автор: it_man

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js