Skip to content

Безопасность

OpenKey спроектирован так, чтобы сервер не мог прочитать ваш сейф.

Вывод ключей

Key derivation: Argon2id turns email and master password into a master key, which yields an auth hash for login and a wrapped vault key for AES-256-GCM ciphertext
  1. Argon2id(email + master_password, salt) создаёт мастер-ключ.
  2. Мастер-ключ выводит auth hash (отправляется на сервер) и оборачивает ключ сейфа.
  3. Ключ сейфа шифрует имена коллекций и payload'ы записей (AES-256-GCM).
  4. Ключ шифрования локальной БД выводится из ключа сейфа.
  5. Мастер-пароль никогда не покидает устройство.

Что хранит сервер

ХранитНе хранит
auth_hashМастер-пароль
Соль и параметры KDFОткрытый ключ сейфа
Обёрнутый (зашифрованный) ключ сейфаРасшифрованные имена коллекций
Непрозрачный шифротекст данных, вложений, орг. и шарингаОткрытые payload'ы записей

Токены

  • Access JWT короткоживущие.
  • Refresh-токены хешируются при хранении и ротируются при использовании.
  • Эндпоинты аутентификации ограничены по частоте на IP.

Практические правила

  • Выберите сильный мастер-пароль — это корень доверия.
  • Держите JWT_SECRET (сервер) длинным и уникальным; плейсхолдеры отклоняются при старте.
  • В продакшене предпочитайте HTTPS и ограничьте CORS_ORIGINS (без *).
  • Храните офлайн-резерв экспорта сейфа / материалов восстановления.

Подробности API — в README openkey_server и на /docs работающего сервера.

Модель угроз

Полная модель на английском / арабском: English · العربية

Кратко

  • Сервер синхронизации не доверен для конфиденциальности (только шифротекст).
  • Восстановления мастер-пароля нет.
  • Sync — LWW по revision (не CRDT).
  • LAN Pro только на платформах без магазинного IAP.
  • HTTPS, сильный JWT_SECRET, явный CORS_ORIGINS (никогда *).

Сообщайте об уязвимостях приватно — [email protected].