Механизмы управления паролями в IE и Firefox. Часть первая. В данной статье мы попытаемся проанализировать механизмы безопасности, риски, атаки и методы защиты двух самых распространенных систем управления паролями для Web браузеров Internet Explorer и Firefox. Mikhael Felker, Securityfocus.
Mozilla Password Recovery - программа для восстановления паролей Pale Moon, а также учетных записей почты; Восстановление забытого Мастер Пароля пользователя Регистрационный ключ, снимающий все ограничения.
Перевод Security. Lab. ru 1. Введение. В данной статье мы попытаемся проанализировать механизмы безопасности, риски, атаки и методы защиты двух самых распространенных систем управления паролями для Web браузеров Internet Explorer и Firefox. В данной статье рассматриваются браузеры IE6 и 7 и Firefox 1.
Внимание будет уделено следующим областям: Механизмы хранения паролей: Средства безопасного хранения имен пользователей и паролей на локальной файловой системе с помощью шифрования данных (часть первая). Атаки на менеджеры паролей: Методы компрометации или обхода средств защиты (частично первая часть, продолжение во второй части). Некорректное восприятие безопасности: Использование менеджеров паролей пользователями без учета факторов риска (вторая часть)Удобство использования: Функционал, расширяющий или уменьшающий использование функционала безопасности (вторая часть)Контрмеры: Действия, направленные на уменьшения риска для пользователей и корпораций.
Internet Explorer и Firefox вместе занимают 9. Auto. Complete и Password manager являются средствами хранения имен пользователей, паролей, ссылок в браузерах Internet Explorer и Firefox соответственно. У каждого браузера есть функционал, который помогает пользователю запоминать различные имена и пароли для аутентификации на Web сайтах. Например, при посещении сайта http: //www. При следующем посещении сайта данные будут заполнены в форму автоматически. Причина использования менеджеров паролей.
. How to Recover Your Firefox Master Password. KeePass is fine, but only until
you forget the master key or lose access to it some other way.
Необходимость использования менеджеров паролей связана непосредственно со сложностью запоминания многочисленных логинов и паролей для различных Web сайтов. Естественно, менеджеры паролей могут увеличить уровень безопасности, поскольку они позволяют использовать большое количество различных идентификаторов и паролей. Таким образом пользователь может сгенерировать много имен пользователей и, таким образом, усложнить процесс угадывания для атакующего. Ключевым моментом здесь является то, что пользователь должен доверять приложению выполнение его роли (безопасное хранение, обработка и перенаправление данных авторизованному узлу). Менеджеры паролей не являются панацеей, хотя они усиливают безопасность и повышают планку для атакующего путем использования интерфейса пользователя для обработки окружений, требующих аутентификацию.
Полученная информация помогает вспомнить пароли даже от тех приложений, которые не поддерживает MPR (Multi Password Recovery). •. Изменения: Код: [-] Исправлено восстановление паролей в Mozilla Firefox [-] Исправлены ошибки и восстановление паролей в.. Password Recovery Software. The best programs to recover lost and forgotten passwords. Восстановление всех паролей SeaMonkey, Mozilla, Firefox, Thunderbird, K-Meleon, SongBird, Beonex, Flock, Netscape, Pale Moon, а также учетных записей почты.. Firefox Password Recovery tool to recover forgotten passwords from Mozilla
Firefox, SeaMonkey, Thunderbird. website, username and password), and
even decrypt passwords protected with a Master Password. Key Features &
Benefits. Choose Password in the 'Recovery for' drop-down list. Enter you e-mail address registered with the FXOpen eWallet. Type the Anti-spam code and click Submit. Choose Master Password or Investor Password. Enter a new password and confirm it. Если этот софт для просмотра сохраненных паролей, то есть бесплатные аналоги. Firefox Password Recovery. Windows 95/98/ME,Windows NT/2000,Windows XP,Windows NT/2000/2003/SBS2003,Windows Vista,Windows 7. Key Features & Benefits Redeem all Firefox saved passwords that includes FTP passwords, HTTP Authentication passwords, revenge oneself. Основные особенности программы Firefox Password Recovery: • Восстанавливает все пароли, сохраненные в Firefox (FTP пароли, HTTP аутентификация), даже при крахе системы. • Расшифровывает пароли в Firefox Master Password. •.
Пользователи и компании должны быть уверены в том, что системы управления паролями корректно внедрены и корректно используются с учетом возможных факторов риска. Использование одинаковых логинов и паролей на различных Web сайтах увеличивает вероятность компрометации, поскольку атакующему будет необходимо узнать только имя пользователя и пароль для получения доступа ко всем ресурсам пользователя. Механизмы хранения паролей. Ниже описаны места и механизмы хранения паролей. Эти данные используются для изучения векторов атак, рассмотренных в 4 секции (первая и вторая части данной статьи). Место хранения. 3. Internet Explorer 6 и 7.
В Internet Explorer (версии с 4 по 6) Auto. Complete хранит данные web форм в следующих ветках реестра: Зашифрованные имена пользователей и пароли: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Intelli. Forms\SPW Web адреса: HKEY_LOCAL_MACHINE\Software\Microsoft. Protected Storage System Provider\< user name or logon name> Криптографические симметричные ключи: HKEY_CURRENT_USER\Software\Microsoft\ Protected Storage System Provider\< retrieved user SID> Data\< data GUID> \ ВInternet Explorer 7 Auto. Complete хранит также данные в реестре, но немного в других ключах: Зашифрованные имена пользователей и пароли: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Intelli. Forms\Storage. 2 Данные создаются в реестре, только после того, как пользователь сохранит свои данные (логин и пароль) для Web сайта. Акроним SPW является сокращением от Saved.
Pass. Words. 3. 1. Firefox 1. 5 и 2. В Firefox ссылки, имена пользователей и пароли хранятся в файле signons. Зашифрованные имена пользователей и пароли в Windows хранятся в: %userprofile%\Application Data\Mozilla\Firefox Profiles\xxxxxxxx. Где %userprofile% - переменная окружения в Windows,в которой хранится путь к домашней директории пользователя. Зашифрованные имена пользователей и пароли на Linux системе хранятся в: ~/.
Где xxxxxxxx – генерируется случайным образом при установке Firefox. Файл signons. txt создается первый раз при сохранении данных для Web сайта. Последующие логины и пароли для различных сайтов добавляются в этот файл. Для менеджера паролей не имеет значения, доступен сайт по HTTP или HTTPS. Ссылки не шифруются, поскольку они используются как ключи для поиска данных. Когда менеджеру паролей браузера необходимо автоматически заполнить web форму данными для определенного сайта, менеджер ищет соответствующий URL в файле signons.
URL найден, происходит автоматическое заполнение данных. Хранилище и механизмы доступа. Internet Explorer 6 и 7. Структура хранилища: Реестр. Формат данных: Двоичный, хранится в виде пары шестнадцатеричных значений в типе данных REG_BINARYШифрование: Triple. DESДоступ: Protected Storage API (для IE 4- 6); Data Protection API (для IE 7)Требования к доступу: Авторизованный пользователь. Временное хранилище: Симметричные ключи, обнуляемые в памяти после использования.
Internet Explorer версии 4- 6 используют Protected Storage System Provider (PStore) для хранении и доступа к важной информации пользователя, включая имена пользователя и пароли, введенные в Web формы в IE. PStore, согласно MSDN, является API для безопасного хранения данных. Согласно недавней публикации Microsoft Press: «… служба Protected Storage, не считается более безопасным методом хранения данных. Одним из существенных Windows приложений, которое все еще используют PStore, является Microsoft Internet Explorer, которые хранит данные Auto- Complete, включая имена и пароли пользователей для авторизации на web сайта».
Данные PStore шифруются с помощью Triple. DES и хранятся в двоичном формате. Незашифрованные данные не могут быть доступны непосредственно через реестр. Хотя безопасность данных и доступ к ним логически завязан на данных учетной записи пользователя в Windows. Как только пользователь войдет в систему, любое приложение, запущенное в контексте пользователя, сможет получить доступ к незашифрованным PStore данным, используя корректные функции API. Хотя, различные учетные записи пользователей в Windows не могут заполучить PStore данные друг друга.
PStore используется не только в Microsoft Internet Explorer, он также используется в различных приложениях Microsoft, таких как Outlook и MSN Explorer. Эти приложения также уязвимы.
Известно множество Spyware приложений, которые использовали легко программируемые API для получения неавторизованного доступа к данным. Internet Explorer 7 использует Data Protection Application Programming Interface (DPAPI), но все же, данные все еще могут быть доступны через API вызовы внешний приложений. Криптографическая защита Auto. Complete в Internet Explorer 7 изображена ниже: EK - Encryption Key.
RK - Record Key. CRC - Cyclical Redundancy Check. Hash - Secure Hash Algorithm (SHA)Хранение данных: EK: URLRK: Hash(Encryption. Key)C: CRC(Record Key)V: {data}EKХранилище (C, V) индексируется RK в реестре, удаляется EKПолучение данных: EK: URLRK: Hash(EK)Происходит поиск RK в реестре, если обнаруживается сходство с V, содержащем зашифрованные данныеdata: {V}EK URL требуется для получения данных (data), поскольку он используется для создания ключа шифрования (EK). Основы организации доступа в Internet Explorer Auto. Complete работает в IE с той предпосылкой, что учетная запись пользователя в Windows имеет полный логический доступ к базе данных паролей.
По этому, если неавторизованный пользователь получает логический доступ к компьютеру, и пользователь вошел под своей учетной записью, или эта учетная запись не защищена паролем, атакующий сможет получить привилегии учетной записи и неправомерно воспользоваться паролями. Логический доступ может быть получен с помощью физического присутствия (сесть за компьютер) или удаленно с помощью клиента удаленного управления компьютером (VNC, Remote Desktop и т. По этому, если нет ограничений для физического доступа к компьютеру (отдельные комнаты с замками, защищенный паролем скринсейвер) кто угодно может воспользоваться менеджером паролей для получения доступа к защищенному паролем Web сайту. Больше всего разочаровывает, что злоумышленник может заполучить доступ таким образом к почтовому ящику или банковскому счету пользователя. Firefox 0/7- 1. 5 и 2.
Структура хранилища: Текстовый файл (signons. Формат данных: ASCII, используя Base. URL и полей)URL (обычный текст, например www. Field name (обычный текст, например username, email, userid и т. Зашифрованное и Base. Field name (например, password, pass,и т. Зашифрованное и Base.
Может быть много данных для одного URL).(Каждая запись заканчивается точкой) Шифрование: Triple. DES (CBC mode)Доступ: Network Security Services (NSS) APIТребования к доступу: Авторизованный пользователь и Master Password (если установлен) Дополнительные файлы: Сертификаты сохранены как cert. N. db, база данных частных ключей как key. N. db и Security Modules сохранены как secmod.
Напомним, что место расположения файлов было описано в секции 3. Firefox использует Network Security Services API для проведения криптографических операций. Поскольку это относится к менеджеру паролей, Firefox использует Public Key Cryptography Standard (PKCS) #1. API для аппаратных и программных модулей сторонних производителей.
Также используется PKCS#5 для шифрования паролей. У Firefox также есть опция для использования альтернативного модуля для хранения паролей, совместимого со стандартом Federal Information Processing Standard (FIPS) 1.
DPAPI на пальцах / Хабрахабр. Здравствуйте, хабражители! В далеком декабре прошлого года я впервые столкнулся с Data Protection Application Programming Interface (сокращенно DPAPI). Тогда я изучал способ хранения логинов/паролей в браузере Chrome.
Я обещал, что распишу эту систему подробно и на пальцах. Негоже врать, поэтому добро пожаловать под кат! Начну всё с азов, что же такое DPAPI, зачем он создавался и кому он нужен. И затем уже расскажу, как это работает. Коротко о главном.
Проблемы информационной безопасности уже давно коснулись всех, и Microsoft был не исключением, офисные ПК, домашние системы, сервера — все в той, или иной степени, требовали защиты от чужих рук. Хранение данных в открытом виде было уже, как минимум, не солидно. Поэтому с выходом Windows 2.
DPAPI. Её основная цель — защита хранимых паролей и конфиденциальной информации на компьютере. Причем таким способом, чтобы владелец этих данных (пользователь) даже не догадывался о существовании защиты, а взломщику эти данные были недоступны. Идеология системы с той поры не изменилась.
Менялись алгоритмы, закрывались дыры, но суть была всё та же. В итоге появилась полноценная система безопасности, в которой секретные данные были доступны исключительно пользователю- владельцу и никому другому. Принцип работы. Так выглядит тривиальная схема работы с DPAPI. Приложение обращается к ОС задавая параметры Mysecret(строка/байты, которые нужно засекретить) и Entropy(энтропия, о ней чуть позже. Данный параметр не обязательный). На выходе получаем BLOB.
BLOB – Binary Large OBject. Расшифровка является бэкронимом. По сути, это массив двоичных данных.
Большое и бесформенное». Этот BLOB — своего рода контейнер, в котором содержаться в открытом виде данные, необходимые для расшифровки, а так же сам шифр. Приложение сохраняет его (для примера всё тот же Chrome, который записывал этот BLOB в виде массива байт в одно из полей SQLITE базы данных), а в дальнейшем, при необходимости, расшифровывает(вторая половина схемы). Так выглядит эта же схема, но более подробно.
Криптопровайдер- это набор алгоритмов для хэширования, шифрования, ключевого обмена и ЭЦП в форме модуля. К примеру в России есть наши ГОСТовские алгоритмы и криптопровайдер, который их объединяет, поэтому если дать его системе, то вместо стандартных AES, SHA, RSA будут использоваться наши ГОСТы. Всё это настраивается в реестре. Из этого следует, что самой DPAPI нет разницы с какими алгоритмами работать, они меняются «как перчатки», что делает систему универсальной.
Про LSA и Crypto. API отвечу цитатой с википедии: Сервер проверки подлинности локальной системы безопасности (англ. Local Security Authority Subsystem Service, LSASS) — часть операционной системы Windows, отвечающей за авторизацию локальных пользователей отдельного компьютера.
Сервис является критическим, так как без него вход в систему для локальных пользователей (не зарегистрированных в домене) невозможен в принципе. Crypto. API — интерфейс программирования приложений, который обеспечивает разработчиков Windows- приложений стандартным набором функций для работы с криптопровайдером. Входит в состав операционных систем Microsoft. Большинство функций Crypto.
API поддерживается начиная с Windows 2. Всё самое интересное происходит в недрах LSA, смертным там делать нечего, поэтому повлиять на работу этого процесса практически невозможно.
Ещё дальше в лес. Теперь поговорим непосредственно о схеме шифрования/дешифрования.
По сути, это всего 3 функции: 1) Открытие мастер- ключа. Шифрование. 3) Дешифрование. Неважно что мы хотим сделать — зашифровать, или расшифровать — сначала необходимо открыть мастер- ключ.
Мастер- ключ (далее МК) — это ключ шифрования для симметричного алгоритма шифрования (по умолчанию в Windows 7 это AES). Является так же BLOB'ом, в котором есть открытая (ID, алгоритмы.) и закрытая (сам ключ) информация. МК — самая главная часть системы, поэтому он находится под надежной защитой. Тут у разработчиков возникла дилемма. Как сделать так, чтобы пользователя не доставать вводом паролей (USB- ключей), но при этом как то защитить мастер- ключ?
Очевидно, что для этого необходимо взять «личную» и уникальную информацию системы. То есть это пароль пользователя на вход в систему. После входа в систему LSA хранит у себя этот пароль и по запросу Crypto. API выдает его. Это, собственно говоря, схема расшифровки ключа.
SID — уникальный идентификатор безопасности. Кэш пароля из LSA — это кэш вашего пароля на вход в систему, если его нет, то берется null. Потом считываются настройки HMAC (сокращение от англ. hash- based message authentication code, хеш- код идентификации сообщений). Если говорить просто – это та же хэш функция, которая даже работает на базе всё тех же MD5, SHA… Только для получения хэша требуется ещё и пароль, то есть вместо 1 параметра — их 2.
PBKDF2 – Password- Based Key Derivation Function. Стандарт формирования ключа на основе пароля. Использует псевдослучайную функцию для получения ключей. Длинна ключа не ограничивается.
Фактически, это «усложнение» алгоритма хэширования. Если тот же SHA2. Здесь важный параметр — количество итераций.
На моем компьютере их, по умолчанию, 1. Чем их больше — тем дольше выполняется алгоритм, тем сложнее подбор. Если не вникать в подробности алгоритма, то можно представить, что он 1. SHA2. 56. SHA(SHA(SHA.. SHA(строка))..)На выполнение подобного требуется время, а так как SHA претендует быть мифологической однонаправленной функцией, то на выходе значение будет уникальным. Master. Key BLOB — это как раз данные с зашифрованным ключом, но в нем так же хранятся и открытые данные, которые доступны для чтения системой, такие как соль, ID мастер- ключа и прочие служебные параметры.
В итоге на выходе мы получаем наш ключ. Теперь приступим к шифрованию. Здесь уже всё совсем просто, сначала ключ, HMACKEY1 (генерируется системой случайно) и введенная вами энтропия(ещё немного, и я расскажу про неё подробно) подаются аналогу алгоритма HMAC (теперь у него уже 3 входящих параметра). Полученные данные являются частным ключом для шифруемых данных. Соль так же генерируется случайно. Все эти данные используются при создании BLOB'a, который уже вернется программе на запрос шифрования. Дешифровка проходит аналогично.
Здесь все нужные данные считываются из самого BLOB'a. На выходе получаем наш секрет.
В BLOB'e мастер- ключа есть много информации, открытой для чтения. Версия DPAPI, его ID, различные флаги, размер МК, соль, количество итераций, алгоритм хэширования, шифрования. В BLOB'e с зашифрованными данными тоже много информации. Опять же версия, используемый криптопровайдер, ID MK, которым проходило шифрование, описание и даже подпись(хэш- сумма).«Back to the beginning»Отдельно хочется отметить такую вещь, как Cred. History. Credential History.
На первый взгляд – ненужная вещь, но всё бывает. Допустим – вы сменили пароль. С точки зрения алгоритма – ваш мастер ключ стал недосягаем. Расшифровывать- то нечем! Но этот нюанс продуман. Система перешифрует мастерключ. Но процесс этот трудоемкий… Мастер ключей может быть много, и перешифровывать их надо все (по умолчанию каждые 9.
Поэтому Microsoft создали этот алгоритм. Предыдущий пароль не забывается… Он шифруется текущим паролем и сохраняется в стек. Поэтому если вдруг у системы не вышло расшифровать мастерключ, то она не спешит сдаваться. Используя текущий пароль, она расшифровывает первую запись в Cred. Hist. И полученным паролем пытается снова расшифровать мастерключ. Нет? Используя этот пароль, она расшифрует следующий пароль в цепи. Процесс будет продолжаться до тех пор, пока пароли не иссякнут в цепи, либо мастер- ключ не будет расшифрован.
Как же может случиться то, что МК не расшифруется? Например, если вы использовали сторонний софт для принудительного сброса пароля. Обычно такой софт не запускает «перешифровку» ключей DPAPI. Так что после такой процедуры вы теряете все ваши сохраненные данной системой пароли. Но если вы поменяете пароль после этого на тот, который есть в Cred. Hist, то все пароли «оживут». Представьте, что к Вам пришли гости с ребенком.
Ребенок взял – и сменил пароль. Используя стороннюю утилиту вы сбрасываете пароль.
Все ваши секретные данные стали для вас недоступны, но после вы вернули свой прежний пароль, и данные снова при вас. Если же пароль сбрасывался дискетой для сброса пароля, то здесь система запускает переиндексацию. Кстати говоря, в сбросе пароля дискетой используется система RSA.
Открытый ключ для шифрования и сам шифр хранятся в реестре, а закрытый – на дискете. При смене пароля новый пароль шифруется открытым ключом и перезаписывается.
Энтропия. Вот теперь можно рассказать про энтропию. Если вы поняли принцип работы системы, то для Вас стало очевидно, что любые данные, зашифрованные без энтропии (или с одинаковой энтропией) легко расшифровываются любым приложением, запущенным от того же пользователя.
То есть информация общедоступна в пределах владений пользователя. Энтропия же, по своей сути, является паролем для конкретных шифруемых данных.
Задайте энтропию, и никакое ПО на вашем компьютере без знания этого параметра не сможет расшифровать BLOB. Microsoft подал интересный пример использования энтропии в IE. Пароли с логинами там хранятся в реестре.
Имя ключа — это хэш от ссылки, по которой проходит авторизация, а содержимое — зашифрованные данные. Так вот эта ссылка и является энтропией. То есть, даже перехватив эти данные и имея открытый мастер- ключ, вам придется перебирать ссылки, и, в итоге, владея всеми данными, вы с большой вероятностью не сможете полностью раскрыть украденные данные. Схема такая: 1) Открывается ссылка mysite. IE берет хэш от этой ссылки.
IE ищет среди имен ключей имя, которое совпадает с данным хэшем. Используя содержимое ключа(BLOB) и ссылку, в качестве энтропии, IE открывает информацию с логинами и паролями. Если же на пункте 3 не было найдено совпадений, то это означает, что на данной странице пользователь ещё ничего не вводил.
Хочу передать благодарность проекту Passcape и, в отдельности, администратору проекта, который с удовольствием (надеюсь) ответил на все возникшие у меня вопросы по поводу DPAPI.