Владимир Палант (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.