Как устроена zero-knowledge-защита storage-p
Это логика, лежащая в основе продукта: ясная картина того, где живут ключи, что зашифровано и что раскроет утечка.
Ключи выводятся в вашем браузере
Ваш мастер-пароль прогоняется через Argon2id в браузере, чтобы вывести ключ хранилища. Сам пароль никогда не передаётся — на сервер уходит только Argon2id auth-hash, по которому сервер проверяет вас, так и не узнав секрета.
Каждая запись шифруется на клиенте
Каждая запись шифруется через XChaCha20-Poly1305 ещё до того, как покинет устройство; сервер хранит nonce‖ciphertext и не может его расшифровать. Именно это и означает zero-knowledge на практике.
Шеринг оставляет сервер слепым
Одноразовые ссылки держат ключ расшифровки во фрагменте URL, который никогда не доходит до сервера. При обмене между пользователями запись запечатывается под публичный ключ получателя через sealed-box (X25519). Проекты используют Ключ проекта, который оборачивается отдельно для каждого участника.
Эшелонированная защита at-rest
Поверх клиентского шифрования база на сервере зашифрована at-rest через SQLCipher. Приложение поставляется со строгим CSP и HSTS и не загружает сторонних скриптов.
Что раскроет утечка — и в чём компромисс
Полный взлом сервера или базы даёт только шифротекст: ни открытых секретов, ни мастер-пароля. Сознательный компромисс в том, что восстановления нет, если вы забыли мастер-пароль, — поэтому держите зашифрованный бэкап.