Как программное обеспечение Firefox защищает пароли? - PullRequest
7 голосов
/ 16 февраля 2012

Mozilla утверждает, что кто-то может сесть за ваш компьютер и получить ваши пароли для каждого сайта за 15 секунд. Во время написания расширения Firefox я узнал, что могу получить доступ к любому файлу в каталоге пользователя (учитывая, что он принадлежит пользователю). Если пароли расшифровываются и записываются где-то в каталоге пользователей, то они доступны во время сеанса вредоносным расширением или сайтом, который использует веб-код, который может получить доступ к каталогу пользователей. Каков процесс, который Software Security Device использует в Firefox, который обеспечивает надежную защиту паролей сайта от такого вредоносного кода?

Расшифровка паролей на жестком диске будет небезопасной, поскольку другие процессы могут их прочитать. Устройство защиты программного обеспечения расшифровывает их в каталог пользователей?

Если нет, то Software Security Device расшифровывает их только в оперативной памяти? Если да, то каковы возможности другого приложения, считывающего пространство приложения Программного защитного устройства?

Пожалуйста, опишите.

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

Я поднял этот вопрос, потому что он не описан в объяснении Software Security Device или Master Password на сайте Mozilla, поэтому я задаюсь вопросом, действительно ли мы безопасны при использовании этой функции.

1 Ответ

12 голосов
/ 16 февраля 2012

Пароли хранятся в базе данных SQLite signons.sqlite в каталоге профиля пользователя.По умолчанию они на самом деле не зашифрованы - извлечь их из этого файла и «расшифровать» тривиально.Чтобы обеспечить некоторую безопасность, пользователь должен определить главный пароль (на вкладке «Безопасность» параметров Firefox), этот будет использоваться для шифрования паролей в базе данных.Если это было сделано, то извлечение паролей из signons.sqlite нетривиально, нужно угадать мастер-пароль.

Но Firefox, конечно, должен расшифровать пароли, чтобы использовать их.Если какой-либо код браузера запрашивает пароль (через nsILoginManager), появляется запрос на ввод мастер-пароля - пользователю необходимо ввести мастер-пароль, чтобы разрешить расшифровку его паролей.Дешифрованные пароли никогда не записываются на диск, но браузер (и любые расширения браузера) смогут получить к ним доступ после этого.

Firefox не делает ничего, чтобы расширения не могли получить доступ к паролям, потому что это было бы бессмысленно.Единственный способ предотвратить проникновение злонамеренного расширения к вашим паролям - это вообще не устанавливать вредоносное расширение.Даже если бы nsILoginManager не было, злоумышленник все равно мог бы перехватить ваше общение с веб-страницей при передаче пароля.Или он может прослушивать то, что вы вводите, когда запрашивается мастер-пароль.Или это может подделать диалоговое окно мастер-пароль и получить мастер-пароль напрямую.Существует множество возможностей - приложение не может превзойти другое приложение, работающее с такими же привилегиями.

PS: Software Security Device для сертификатов, а не паролей - совершенно не связано.Но он использует один и тот же мастер-пароль, поэтому возникает запутанный диалог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...