Автор расширения AdBlock Plus Владимир Палант (Wladimir Palant) обнаружил, что браузер Firefox плохо шифрует сохраненные пароли. Для защиты пользовательских данных используется система мастер-пароля с применением хеширования SHA-1: при рекомендуемом значении в 10 000 его счетчик цикла равен 1. Для сравнения, в менеджере паролей LastPass используется алгоритм со значением 100 000.
Я заглянул в исходный код и нашел функцию sftkdb_passwordToKey(), которая применяет к паролю хеширование SHA-1. Любой, кто когда-либо создавал систему входа на сайт, увидит в этом серьезную проблему.
Небольшое количество циклов значительно облегчает злоумышленникам подбор мастер-пароля и расшифровку сохраненных данных. Разработчик напомнил, что современные видеокарты способны справиться с задачей за считанные минуты. По его мнению, лучшая замена алгоритму SHA-1 — это Argon2.
Давняя проблема Firefox
Владимир Палант — не первый, кто обнаружил уязвимость. Девять лет назад на эту же проблему указывал исследователь Джастин Долске (Justin Dolske). Несмотря на его отчет, Mozilla не предпринимала никаких действий по усилению защиты.
Однако после привлечения внимания Палантом, в начале марта 2018 года Mozilla представила релиз нового компонента менеджера паролей — Lockbox. Пока он находится на стадии разработки и доступен только в виде расширения. Об этом в комментариях к отчету Паланта написал инженер по безопасности Mozilla Кристиан Холлер (Christian Holler).
При этом алгоритм SHA-1 остался в браузере даже после объявления Mozilla о прекращении поддержки сайтов с сертификатами, использующими данный метод хеширования. Созданная в 1995 году хеш-функция считается сильно устаревшей — в феврале 2017 года Google продемонстрировала способ создания коллизии.
Подписывайтесь на канал “Engine.MD” в Telegram, чтобы первыми узнавать о новостях и эксклюзивных материалах.