Владимир Палант (Wladimir Palant), разработчик популярного расширения AdBlock Plus, раскритиковал в своем блоге механизм хранения паролей в Firefox и Thunderbird, заявив, что защиту Mozilla слишком легко взломать.

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

Эксперт объясняет, что хранить учетные данные без защиты мастер-паролем, все равно, что хранить их в формате обычного текста: хотя при этом пароли и шифруются в файле logins.json, ключ от него свободно доступен в файле key3.db без какой-либо дополнительной защиты. Но, как обнаружил Палант, даже если задать серьезный мастер-пароль, который будет использоваться для шифрования учетных данных, это не сильно поможет.

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

Проблема, о которой говорит эксперт, очень проста: современные GPU прекрасно справляются с вычислением хешей SHA-1.  К примеру, Nvidia GTX 1080 может считать со скоростью 8,5 миллиардов хешей SHA-1 в секунду. А это перебор 8,5 миллиардов вариантов паролей в секунду. Палант отмечает, что для защиты от подобных сценариев нормальной практикой в индустрии является использование примерно 10 000 итераций функции SHA-1 (например, в менеджере паролей LastPass это значение и вовсе равняется 100 000), тогда как в случае Firefox и Thunderbird речи идет лишь об одной единственной итерации.

В итоге эксперт делает вывод, что при помощи обычного брутфорса подобрать мастер-пароль от браузера или почтового клиента можно за считанные минуты, а затем атакующий получит доступ ко всем остальным учетным данным, хранящимся в БД Firefox и Thunderbird.

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

Теперь, когда Палант вновь привлек внимание разработчиков и общественности к этой проблеме, инженеры Mozilla полагают, что недостаток можно устранить введением в Firefox нового компонента — парольного менеджера, известного под названием Lockbox и в настоящее время доступного в качестве аддона. Причем у данного решения, по словам Паланта, тоже есть свои недостатки, так как в настоящий момент его работа связана с Firefox Accounts. Сам исследователь предложил разработчикам Mozilla перейти на использование более надежного алгоритма, к примеру, Argon2.



4 комментария

  1. security

    20.03.2018 at 10:32

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

    • Juni Cortez

      26.03.2018 at 10:57

      Огнелис каждый раз требует мастер-пароль после небольшого простоя. В реальности всё время набирать 16-ти символьный пароль быстро надоест)

  2. Андрей Васильков

    Андрей Васильков

    21.03.2018 at 23:16

    Теоретически всё верно — многократное хеширование паролей требуется для снижения скорости их перебора. Очевидно, что однократное вычисление SHA1 произойдёт в тысячу раз быстрее, чем та же операция с 1000 повторений. Однако SHA1 даёт множество из > 1,46 * 10^48 вариантов, а «перебор 8,5 миллиардов вариантов паролей в секунду» — скорость 8,5 * 10^9 п/с. То есть, 10 тысяч видюх будут перебирать множество хешей SHA1 5,45 * 10^25 лет, но сгорят гораздо раньше. Если бы Палант и Дольске показали быстрый перебор несловарных паролей — был бы повод для волнения, а пока их наблюдение касается лишь популярных пар хеш-пароль (т.е., слабых паролей).

  3. AgentJordan

    22.03.2018 at 04:15

    Видимо, чуваки с mozilla не захотели покупать у него пару баннеров с «приемлемой» рекламкой, вот он и обозлился 😀

Оставить мнение