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

Глоссарий терминов

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


Основные сущности

Сейф

Сейф — контейнер для хранения записей. Каждый сейф имеет собственный симметричный ключ шифрования (ключ сейфа), которым защищаются все записи внутри него. Сейфы могут быть корпоративными (общими) или личными.

Запись

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

Важно

Термин «пароль» в контексте Пассворка может означать как саму запись, так и конкретное поле внутри записи. В документации мы используем термин «запись» для обозначения сущности и «поле пароля» для обозначения конкретного поля.

Поле записи

Поле — отдельный элемент данных внутри записи. Поля делятся на:

  • Стандартные поля: название, логин, пароль, URL, описание, теги
  • Дополнительные поля (Custom Fields): произвольные пары «имя-значение», добавляемые пользователем
  • TOTP-секрет: секрет для генерации одноразовых паролей (двухфакторная аутентификация)

Вложение

Вложение — файл, прикреплённый к записи. Каждое вложение шифруется собственным ключом вложения (AES-256-CBC), который в свою очередь защищается ключом записи.

Папка

Папка — способ организации записей внутри сейфа. Папки не имеют собственных ключей шифрования; записи в папках шифруются ключом сейфа.


Пользователь и аутентификация

Мастер-пароль

Мастер-пароль — секретный пароль пользователя, известный только ему. Используется для получения мастер-ключа через алгоритм PBKDF2. Мастер-пароль никогда не передаётся на сервер и не хранится в открытом виде.

Мастер-ключ пользователя

Мастер-ключ пользователя — криптографический ключ длиной 512 бит, получаемый из мастер-пароля с помощью функции PBKDF2 (300 000 итераций, SHA-256). Используется для:

  • Шифрования приватного RSA-ключа пользователя (AES-256-CBC)
  • Проверки корректности ввода мастер-пароля (через хеш SHA-256)

Хеш мастер-ключа

Хеш мастер-ключа — SHA-256 хеш от мастер-ключа пользователя. Отправляется на сервер для проверки корректности введённого мастер-пароля. Сервер сравнивает полученный хеш с сохранённым значением.

Соль

Соль — случайная строка длиной 20 символов, уникальная для каждого пользователя. Используется в алгоритме PBKDF2 вместе с мастер-паролем для получения мастер-ключа. Соль хранится на сервере и передаётся клиенту при аутентификации.

RSA-ключи пользователя

Пара асимметричных ключей RSA-2048, генерируемых с помощью WebCrypto API:

  • Публичный ключ — хранится на сервере в открытом виде. Используется для шифрования ключей сейфов при предоставлении доступа.
  • Приватный ключ — хранится на сервере в зашифрованном виде (зашифрован мастер-ключом, AES-256-CBC). Используется для расшифровки ключей сейфов.

Ключи шифрования

Ключ сейфа

Ключ сейфа — случайный симметричный ключ (256 бит), генерируемый при создании сейфа. Используется для шифрования ключей записей внутри сейфа (AES-256-CBC). Для каждого пользователя с доступом к сейфу создаётся копия ключа сейфа, зашифрованная его публичным RSA-ключом (RSA-OAEP).

Ключ записи

Ключ записи — случайный симметричный ключ (256 бит), генерируемый индивидуально для каждой записи. Используется для шифрования содержимого записи (поля пароля, дополнительные поля, TOTP) и ключей вложений (AES-256-CBC). Ключ записи шифруется ключом сейфа. При каждой операции шифрования автоматически генерируется уникальный вектор инициализации (IV).

Ключ вложения

Ключ вложения — случайный симметричный ключ (256 бит), генерируемый для каждого файла. Используется для шифрования бинарного содержимого файла (AES-256-CBC). Ключ вложения шифруется ключом записи.

Серверный ключ шифрования

Серверный ключ — симметричный ключ длиной 256 бит, хранящийся на сервере в файле. Используется для дополнительного шифрования данных перед сохранением в базу данных (AES-256-CFB через OpenSSL).


Токены и сессии

Access Token

Access Token — токен доступа длиной 256 бит (44 символа в Base64). Используется для аутентификации API-запросов. Время жизни по умолчанию: ~2.8 часа (10 000 секунд).

Refresh Token

Refresh Token — токен обновления длиной 256 бит. Используется для получения нового Access Token без повторного ввода учётных данных. Время жизни по умолчанию: 36 часов (129 600 секунд).

Local Storage Secret Code

Local Storage Secret Code — случайный токен (~596 бит энтропии), генерируемый сервером при создании пользователя. Используется для шифрования мастер-ключа при сохранении в localStorage браузера (функция «Запомнить мастер-пароль»). Шифрование выполняется через AES-256-CBC.


Режимы шифрования

Клиентское шифрование (Client-Side Encryption, CSE)

Клиентское шифрование — режим работы, при котором данные шифруются в браузере пользователя до отправки на сервер. Обеспечивает принцип Zero Knowledge: сервер не имеет доступа к расшифрованным данным. Используется AES-256-CBC.

Серверное шифрование (Server-Side Encryption)

Серверное шифрование — дополнительный уровень защиты, при котором данные шифруются на сервере перед записью в базу данных. Работает всегда, независимо от настроек клиентского шифрования. Используется AES-256-CFB через OpenSSL.

Zero Knowledge

Zero Knowledge — принцип, при котором сервер не располагает информацией, достаточной для расшифровки пользовательских данных. Все криптографические операции выполняются на стороне клиента.

End-to-End Encryption (E2E)

End-to-End Encryption — сквозное шифрование, при котором данные шифруются на устройстве отправителя и расшифровываются только на устройстве получателя. В Пассворке реализуется через обмен ключами с использованием RSA-OAEP.


Обмен данными

Внутренний шэринг

Внутренний шэринг — предоставление доступа к сейфу или записи другому пользователю Пассворка. Ключ шифруется публичным RSA-ключом получателя (RSA-OAEP через WebCrypto).

Внешняя ссылка

Внешняя ссылка — способ поделиться записью с человеком без учётной записи в Пассворке. Создаётся копия записи, зашифрованная специальным ключом ссылки (AES-256-CBC). Токен ссылки встраивается в URL.

Токен ссылки

Токен ссылки — случайная строка длиной 43 символа (~256 бит), используемая для идентификации внешней ссылки и доступа к зашифрованным данным.


Криптографические алгоритмы

PBKDF2

PBKDF2 (Password-Based Key Derivation Function 2) — алгоритм получения криптографического ключа из пароля. Использует соль и большое число итераций для защиты от атак перебором.

Параметры в Пассворке:

  • Клиент: 300 000 итераций, SHA-256, 512 бит
  • Сервер: 600 000 итераций, SHA-512, 512 бит

AES-256-CFB

AES-256-CFB — симметричный блочный шифр с длиной ключа 256 бит в режиме CFB (Cipher Feedback). Используется для серверного шифрования данных через OpenSSL.

AES-256-CBC

AES-256-CBC — симметричный блочный шифр с длиной ключа 256 бит в режиме CBC (Cipher Block Chaining). Используется для клиентского шифрования.

RSA-OAEP

RSA-OAEP — асимметричный алгоритм шифрования с оптимальным асимметричным шифрованием с дополнением. В Пассворке используются ключи длиной 2048 бит с хеш-функцией SHA-256. Реализован через WebCrypto API.

CryptoJS AES

CryptoJS AES — библиотека для AES-шифрования на клиенте. Использует режим CBC с дополнением PKCS#7 и встроенную функцию вывода ключа. Результат кодируется в Base32.


Сокращения

СокращениеРасшифровкаОписание
CSEClient-Side EncryptionКлиентское шифрование
E2EEnd-to-End EncryptionСквозное шифрование
PBKDF2Password-Based Key Derivation Function 2Функция вывода ключа из пароля
AESAdvanced Encryption StandardСимметричный алгоритм шифрования
RSARivest–Shamir–AdlemanАсимметричный алгоритм шифрования
OAEPOptimal Asymmetric Encryption PaddingСхема дополнения для RSA
CFBCipher FeedbackРежим шифрования с обратной связью
CBCCipher Block ChainingРежим сцепления блоков шифротекста
IVInitialization VectorВектор инициализации
TOTPTime-based One-Time PasswordОдноразовый пароль на основе времени
TTLTime To LiveВремя жизни токена