Перейти к содержимому
SafePass

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

SafePass построен так, чтобы сервер синхронизации не мог прочитать ваши данные, даже если его взломают. Здесь коротко описано, как это работает и чего защита не покрывает.

Принципы

Сервер не доверенный

API и база данных не получают ни открытых записей, ни ключа хранилища. Они хранят шифротекст, связи ревизий и данные для входа по OPAQUE.

Пароль не передаётся

Вход работает по OPAQUE (RFC 9807): сервер проверяет пароль, не получая его и не храня ничего, по чему пароль можно восстановить без перебора.

Свой ключ на каждую версию

Для каждой ревизии записи выводится отдельный ключ с новой солью и nonce. Подмена записи, её идентификатора или ревизии обнаруживается по тегу AES-GCM.

Конфликты решает человек

Синхронизация хранит неизменяемые ревизии. Две параллельные правки сохраняются обе, пока вы явно не выберете результат.

Криптография

ЗадачаАлгоритмПараметры
Ключ из мастер-пароляArgon2id v1.364 MiB памяти, 3 прохода, 4 потока
Шифрование записей и ключейAES-256-GCMНовые соль 128 бит и nonce 96 бит на каждую ревизию
Ключ для каждой ревизииHKDF-SHA-256Привязан к ID записи и ревизии
Вход в аккаунтOPAQUERFC 9807, без передачи пароля
Фраза восстановленияBIP-39, Ed2551924 слова, 256 бит энтропии
Локальная базаSQLCipherКлюч в защищённом хранилище ОС

Сессии

Токен доступа
15 минут, только в памяти
Токен обновления
30 дней, меняется при каждом использовании
Сессия устройства
Не дольше 90 дней
Смена пароля или восстановление
Отзывает все сессии

Восстановление доступа

При создании хранилища SafePass показывает фразу из 24 слов. Она открывает ключ хранилища на новом устройстве и позволяет сбросить пароль аккаунта с подписью этой фразой. Если потерять и мастер-пароль, и фразу, данные восстановить не сможет никто, включая нас.

Чего защита не покрывает

  • Заражённое или разблокированное устройство: вредоносная программа, кейлоггер, скомпрометированная ОС.
  • Слабый мастер-пароль: Argon2id замедляет перебор, но не делает его невозможным.
  • Сервер может не отдать данные или вернуть старую ревизию. Прочитать или незаметно подменить их он не может.
  • Метаданные: время синхронизации, размер шифротекста и идентификатор аккаунта видны серверу.

Статус проверки

До выпуска нужны замеры параметров на устройствах, ревью нативных привязок на всех платформах и внешний аудит безопасности. Пока он не проведён, используйте SafePass только с тестовыми данными.

Предварительная версия. SafePass в разработке и ещё не прошёл внешний аудит безопасности. Храните в нём только тестовые данные.