Threat model

Security

We would rather say where this fails than sell a feeling. This page is who SheWolf is built to resist, and the limits we will not paper over. The same facts, in plainer language, are on Privacy.

Someone who picks up your phone

The database file is encrypted at rest. After the app has fully closed, opening it takes the PIN. You can also turn on a lock that asks for the PIN again when you leave the app.

If that lock is off, someone who picks the phone up while the app is still open can read the screen. The file on disk stays encrypted either way. The key is only in memory while the app is unlocked.

You can have the app present an ordinary screen until it is unlocked, and you can change the home-screen icon so it does not look like this app. This page does not describe those disguises or show them. Naming them would tell someone what to look for.

You can also lock the app again in a hurry. That hides it. It does not delete your data.

A cloud breach

There is no SheWolf account and no copy of your logs on a server we run. A breach of a company database cannot leak a vault we do not have. The database is also left out of iCloud and Google backups, so a backup provider does not hold the file.

A legal demand on us

We cannot turn over logs or keys we never received, and we cannot decrypt a phone. How we would answer a request is on Privacy.

Data brokers

The app has no ads, no tracking SDK, and no account to attach a profile to. We do not sell data. This website does not run analytics or set cookies.

How the lock is built

On the phone, in order:

  1. A random 256-bit data key encrypts the whole database (SQLCipher, AES-256). The key is not derived from the PIN.
  2. Your PIN is 6 to 8 digits. Argon2id stretches it into a second key: 19 MiB of memory, 3 passes, parallelism 1. That is the production cost. It is meant to make each guess slow and memory-heavy.
  3. That second key seals the data key with AES-GCM. A tampered seal does not open.
  4. The sealed key and the salt are stored in the iOS Keychain or the Android Keystore, set so they stay on this device and are not part of a cloud backup.
  5. Changing the PIN seals the same data key again. It does not re-encrypt the database.

Several wrong PINs in a row make the app wait before it will try again. The wait is held in memory on the phone. It is not a record we can see, and it does not protect a copy of the database that has left the phone.

If you turn on fingerprint or face unlock, anyone who can pass that check can open the app. The PIN is still the underlying secret.

What this does not stop

What we have not done

An independent security review of this design has not been done yet. If you find a problem, write to security@shewolf.app. Please do not include a PIN, health details, or an export. The contact file for this site is at /.well-known/security.txt.