Перейти к основному содержимому
Версия: 7.0

Локальное хранилище браузера

Пассворк позволяет сохранить мастер-ключ в браузере, чтобы не вводить мастер-пароль при каждом входе. Для защиты используется Local Storage Secret Code — токен, генерируемый сервером.

Важно

Сохранённый мастер-ключ защищён токеном, который выдаётся только при успешной базовой аутентификации. Без доступа к учётной записи расшифровать данные из localStorage невозможно.


Local Storage Secret Code

Что это такое

Local Storage Secret Code — случайный токен, который:

  • Генерируется сервером при создании пользователя
  • Выдаётся клиенту после успешной аутентификации
  • Используется для шифрования мастер-ключа в localStorage

Характеристики

ПараметрВеб-приложениеРасширение браузера
Длина100 символов60 символов
АлфавитA-Z, a-z, 0-9A-Z, a-z, 0-9
Энтропия~596 бит~357 бит
ГенерацияНа сервереНа сервере
Хранение токенаНа сервереНа сервере

Жизненный цикл

  1. Создание — при регистрации пользователя сервер генерирует Secret Code
  2. Выдача — при каждой успешной аутентификации сервер отправляет Secret Code клиенту
  3. Использование — клиент шифрует мастер-ключ и сохраняет в localStorage
  4. Ротация — Secret Code может быть перегенерирован администратором

Процесс сохранения мастер-ключа

Последовательность сохранения:

  1. Пользователь включает опцию «Запомнить мастер-пароль»
  2. Пользователь вводит мастер-пароль
  3. Клиент вычисляет мастер-ключ (PBKDF2, 300 000 итераций, SHA-256)
  4. Клиент отправляет хеш мастер-ключа на сервер для проверки
  5. Сервер подтверждает корректность и возвращает Local Storage Secret Code
  6. Клиент шифрует мастер-ключ с помощью Secret Code (AES-256-CBC)
  7. Зашифрованный мастер-ключ сохраняется в localStorage
  8. Secret Code не сохраняется в localStorage

Алгоритм шифрования

ПараметрЗначение
АлгоритмAES-256-CBC
ДополнениеPKCS#7
КлючLocal Storage Secret Code (100 символов → 256 бит)
IVАвтоматически генерируется (128 бит)

Что сохраняется в localStorage

ДанныеФорматЗащита
Зашифрованный мастер-ключBase64 строкаAES-256-CBC
ID пользователяСтрока
Настройки приложенияJSON
Что НЕ сохраняется
  • Мастер-пароль (никогда)
  • Local Storage Secret Code (выдаётся при каждой аутентификации)
  • Незашифрованный мастер-ключ
  • Приватный RSA-ключ

Процесс восстановления мастер-ключа

Последовательность автоматического входа:

  1. Пользователь открывает приложение
  2. Клиент проверяет наличие зашифрованного мастер-ключа в localStorage
  3. Если ключ есть — клиент запоминает его для последующей расшифровки
  4. Пользователь проходит базовую аутентификацию (логин/пароль)
  5. Сервер проверяет учётные данные
  6. Сервер возвращает токены доступа и Local Storage Secret Code
  7. Клиент расшифровывает мастер-ключ с помощью Secret Code (AES-256-CBC)
  8. Мастер-ключ восстановлен — ввод мастер-пароля не требуется

Условия автоматического входа

Автоматическое восстановление мастер-ключа возможно, если:

УсловиеОписание
Наличие ключаВ localStorage есть зашифрованный мастер-ключ
АутентификацияПользователь прошёл базовую аутентификацию
Валидный Secret CodeСервер вернул корректный Secret Code
Успешная расшифровкаДанные не повреждены

Модель безопасности

Защита от угроз

УгрозаЗащита
Кража localStorageДанные зашифрованы, ключ шифрования на сервере
XSS-атакаSecret Code не хранится на клиенте
Кража сессииТребуется базовая аутентификация
Физический доступ к устройствуТребуется пароль учётной записи

Ключевой принцип

Без успешной аутентификации на сервере расшифровать мастер-ключ невозможно.

Даже если злоумышленник:

  • Получит доступ к localStorage
  • Извлечёт зашифрованный мастер-ключ
  • Получит доступ к файловой системе устройства

Он не сможет расшифровать данные без:

  • Пароля учётной записи (или SSO/LDAP доступа)
  • Успешной аутентификации на сервере
  • Получения Secret Code от сервера

Ограничения

СценарийРиск
Общее устройствоДругой пользователь может получить доступ после своей аутентификации
Синхронизация браузераЗашифрованный ключ синхронизируется между устройствами
Компрометация сервераЗлоумышленник может получить Secret Code

Управление сохранёнными данными

Отключение функции

Пользователь может:

  1. Снять галочку «Запомнить мастер-пароль» в настройках
  2. Данные будут удалены из localStorage

Принудительный сброс

Администратор может:

  1. Перегенерировать Secret Code пользователя
  2. Все сохранённые мастер-ключи станут недействительными
  3. Пользователю потребуется ввести мастер-пароль заново

Выход из системы

При выходе из системы:

  • Токены сессии удаляются
  • Зашифрованный мастер-ключ может оставаться в localStorage (для следующего входа)
  • При желании пользователь может выбрать «Выйти и забыть»

Рекомендации по безопасности

Когда использовать «Запомнить»

Рекомендуется:

  • На личном устройстве с паролем/биометрией
  • При ежедневном использовании Пассворка
  • Когда удобство важно, а устройство защищено

Не рекомендуется:

  • На общих/публичных устройствах
  • При строгих требованиях к безопасности
  • Если устройство может быть утеряно/украдено

Политики для организации

Администратор может:

  • Запретить функцию «Запомнить» на уровне политики
  • Ограничить время действия сохранённого ключа
  • Требовать периодический повторный ввод мастер-пароля

Защита паролей в памяти

Обфускация в оперативной памяти

Помимо шифрования в localStorage, Пассворк использует механизм защиты паролей в оперативной памяти браузера:

МетодОписание
РазбиениеПароль разбивается на случайные части
ОбфускацияКаждая часть обфусцируется (смещение символов)
ПеремешиваниеЧасти хранятся в случайном порядке
ВосстановлениеПорядок восстановления хранится отдельно
Ограничение

Это обфускация, а не криптографическая защита. Она затрудняет простое чтение паролей из памяти (например, в дампах), но не защищает от целенаправленной атаки с отладчиком.


Различия для расширения браузера

Расширение браузера имеет отличия в реализации:

ПараметрВеб-приложениеРасширение
Secret Code длина100 символов (~596 бит)60 символов (~357 бит)
ХранилищеlocalStoragechrome.storage.local
ИзоляцияОбщий доменИзолированное расширение
Защита от XSSЗависит от CSPПолная изоляция

Преимущества расширения

  • Изолированное хранилище — недоступно с веб-страниц
  • Отдельный контекст выполнения — защита от вредоносных скриптов
  • Защита от XSS — на посещаемых сайтах не могут получить доступ к данным расширения