Пассворк использует двухуровневую модель защиты. Не все данные шифруются на клиенте — некоторые поля защищаются только серверным шифрованием для обеспечения функциональности (поиск, с ортировка, отображение).
Обзор уровней шифрования
| Уровень | Где выполняется | Когда активен | Ключ | Алгоритм |
|---|
| Клиентское шифрование | В браузере | При включённом CSE | Ключи пользователя, сейфа, записи | AES-256-CBC |
| Серверное шифрование | На сервере | Всегда | Серверный ключ | AES-256-CFB |
Данные записи (Password Record)
| Поле | Клиентское шифрование | Серверное шифрование | Причина |
|---|
| Название записи | — | ✓ | Поиск, отображение в списках |
| Логин | — | ✓ | Поиск, автозаполнение |
| Пароль | ✓ | ✓ | Критические данные |
| URL | — | ✓ | Поиск, автозаполнение, расширение браузера |
| Описание | — | ✓ | Поиск |
| Теги | — | ✓ | Фильтрация, группировка |
| Цвет | — | ✓ | Отображение |
Дополнительные поля (Custom Fields)
| Атрибут | Клиентское шифрование | Серверное шифрование | Причина |
|---|
| Имя поля | ✓ | ✓ | Может содержать чувствительную информацию |
| Значение поля | ✓ | ✓ | Критические данные |
| Тип поля | ✓ | ✓ | Метаданные поля |
TOTP (двухфакторная аутентификация)
| Атрибут | Клиентское шифрование | Серверное шифрование | Причина |
|---|
| TOTP-секрет | ✓ | ✓ | Критические данные для 2FA |
Вложения
| Атрибут | Клиентское шифрование | Серверное шифрование | Причина |
|---|
| Имя файла | — | ✓ | Отображение, поиск |
| Содержимое файла | ✓ | ✓ | Критические данные |
| Ключ вложения | Да (ключом записи) | ✓ | Ключевой материал |
Редакции записей
| Атрибут | Клиентское шифрование | Серверное шифрование | Причина |
|---|
| Предыдущие значения паролей | ✓ | ✓ | Исторические секреты |
| Предыдущие доп. поля | ✓ | ✓ | Исторические секреты |
| Метаданные изменения | — | ✓ | Аудит, журналирование |
Данные сейфа
| Атрибут | Клиентское шифрование | Серверное шифрование | Причина |
|---|
| Название сейфа | — | ✓ | Навигация, отображение |
| Описание сейфа | — | ✓ | Информация |
| Ключ сейфа | Да (RSA-ключом пользователя) | ✓ | Ключевой материал |
| Права доступа | — | ✓ | Управление доступом |
| Настройки сейфа | — | ✓ | Конфигурация |
Данные пользователя
| Атрибут | Клиентское шифрование | Серверное шифрование | Причина |
|---|
| Логин пользователя | — | — | Идентификация |
| Email | — | — | Идентификация |
| Публичный RSA-ключ | — | — | Публичный по определению |
| Приватный RSA-ключ | Да (мастер-ключом) | ✓ | Критические данные |
| Хеш мастер-ключа | — | ✓ | Для проверки пароля |
| Соль PBKDF2 | — | ✓ | Криптографические параметры |
| Local Storage Secret Code | — | ✓ | Для функции «Запомнить» |
Данные внешней ссылки
| Атрибут | Клиентское шифрование | Серверное шифрование | Причина |
|---|
| Токен ссылки | — | — | Идентификатор в URL |
| Копия данных записи | Да (ключом ссылки) | ✓ | Секретные данные |
| Ключ ссылки (зашифрованный) | ✓ | ✓ | Ключевой материал |
| Хеш ключа ссылки | — | ✓ | Для проверки доступа |
| Настройки ссылки | — | ✓ | TTL, одноразовость |
Служебные данные
| Данные | Клиентское шифрование | Серверное шифрование | Причина |
|---|
| ID объектов | — | — | Идентификация |
| Временные метки | — | — | Сортировка, аудит |
| Access/Refresh токены | — | — | Сессии (в памяти/cookies) |
| LDAP-пароли (интеграция) | — | ✓ | Серверная интеграция |
| SMTP-пароли | — | ✓ | Серверная интеграция |
Ключ и шифрования по типам данных
| Данные | Ключ клиентского шифрования | Ключ серверного шифрования |
|---|
| Поле «Пароль» | Ключ записи (AES-256-CBC) | Серверный ключ (AES-256-CFB) |
| Дополнительные поля | Ключ записи | Серверный ключ |
| TOTP-секрет | Ключ записи | Серверный ключ |
| Содержимое файла | Ключ вложения (AES-256-CBC) | Серверный ключ |
| Ключ вложения | Ключ записи | Серверный ключ |
| Ключ записи | Ключ сейфа (AES-256-CBC) | Серверный ключ |
| Ключ сейфа | RSA-ключ пользователя (RSA-OAEP) | Серверный ключ |
| Приватный RSA-ключ | Мастер-ключ (AES-256-CBC) | Серверный ключ |
Почему не всё шифруется на клиенте?