Threat model

The design aims to prevent the synchronization backend or an attacker who obtains only stored cloud data from reading encrypted note content and supported attachments. It does not protect plaintext visible on an unlocked device, compromised operating systems, screen capture, malicious keyboards, weak device access controls, or information intentionally shared by the user.

Key architecture

  • A random 32-byte user master key encrypts note payloads.
  • Each device has its own X25519 key pair.
  • The master key is wrapped separately for approved devices with XChaCha20-Poly1305.
  • Optional recovery uses Argon2id with a random salt.

Encrypted data

  • Note title and rich-text content
  • Images and audio recordings
  • Supported sketch files and previews
  • Master-key material stored for approved devices and recovery

Metadata and limitations

The current encrypted payload excludes labels, note colors, timestamps, pin, archive, and trash state. These values can be visible to the synchronization service. Better Keep has no published independent security audit; source availability and documented algorithms are not substitutes for one.

Recovery responsibility

A recovery passphrase is not sent to the backend. If all approved devices and the recovery passphrase are lost, Better Keep cannot reconstruct the encryption key. Keep the passphrase in a reputable password manager or another secure offline location.

Report a vulnerability

Send a reproducible report to contact@betterkeep.app. Please avoid accessing other users’ data, disrupting the service, or publishing an unpatched issue before a reasonable disclosure window.

Sources and further reading