First beta

Security Architecture: Keys, Files and Honest Limits

Updated Oct 30, 2026 7 min read
Quick answer

Hidden Folder encrypts each file with AES-256-GCM using a random key. Those keys are wrapped by a master key, which is wrapped by a key derived from your pattern with PBKDF2-HMAC-SHA512 at 600,000 rounds. Decrypted content stays in memory and never touches the disk. The code is open source so people can check.

What is the design?

Standard parts, assembled carefully. The crypto comes from Apple's CryptoKit and CommonCrypto. The app does not implement any cryptographic primitive itself.

The key hierarchy

  1. Pattern
  2. Vault key (PBKDF2-SHA512, 600K)
  3. Master key (random 256-bit)
  4. File key per item
  5. AES-256-GCM
Each layer wraps the next. Changing your pattern re-wraps one key, not every file.
KeyWhere it comes fromWhat it protects
Device salt32 random bytes, stored in the Keychain on this Mac onlyBinds the vault key to this Mac
Vault keyPBKDF2-HMAC-SHA512 of the pattern, 600,000 roundsThe encrypted index and the wrapped master key
Master keyRandom 256-bit key per vaultFile content, thumbnails and metadata
Recovery keyPBKDF2-HMAC-SHA512 of the recovery phrase, 800,000 roundsThe recovery envelope that holds the vault key
Backup keySeparate pattern-derived key with a distinct labelThe iCloud backup records

How files are stored

  • Large files are cut into 1 MiB chunks. Each chunk has its own random 96-bit nonce.
  • Authenticated data includes the file id, chunk index and a final-chunk flag. Reordering or truncating chunks is detected.
  • File names on disk are random. Original names, dates and tags live only in the encrypted index.
  • Thumbnails are encrypted the same way.
  • The vault folder is excluded from Spotlight and marked so it is not indexed.
Example configuration (from the spec)
{
  "cipher": "AES-256-GCM",
  "kdf": "PBKDF2-HMAC-SHA512",
  "iterations": 600000,
  "salt": "device_keychain_salt",
  "analytics": "off by default",
  "source": "open (GPL-3.0)"
}

Runtime rules

  • No plaintext user content is written to disk. Images decode from memory, and video plays through a loader that decrypts chunks on demand.
  • Export is the only way out, and only when you ask.
  • On lock, keys are wiped from memory where practical and decoded media is released.
  • Logs never contain patterns, phrases, keys or file names.
  • The App Sandbox is on.
  • Analytics are off by default and opt-in. Crash reports are opt-in.

What it protects against

  • Someone with your Mac account while the vault is locked.
  • A copied vault folder.
  • Apple or anyone else reading your iCloud backup.
  • Casual snooping and accidental screen sharing.

What it does not protect against

  • Malware or a keylogger on an unlocked Mac.
  • Someone watching you draw the pattern.
  • Forensics on flash storage after deletion.
  • Someone timing the duress feature with instruments.

Metadata that stays visible: ciphertext sizes, counts (blurred by cover files), timestamps, the duress setting's Keychain item and, for shares, the iCloud account id.

Frequently asked questions

Has the app been audited?

Not yet. A community review and a paid audit are planned before launch. Until then treat the security claims as a design, not as a verified result.

Why is it open source?

So anyone can read what it does with your keys and files. Open source cannot prove it is bug-free, but it removes the need to trust marketing text.

Which licence?

GPL-3.0. Forks must stay open.

What network calls does the app make?

The beta makes none. Later versions need the network for iCloud backup, license checks and update checks. The README is meant to list them all.

Do you collect analytics?

No. Anonymous usage and error sharing exist only as an opt-in setting.

Who can I report a vulnerability to?

A security contact will be published with the repository. Until then use the contact on the About page.

References

Try security architecture on your Mac

Coming soon. Join the waitlist and we email the link.

Get early access

The Mac beta opens soon

Hidden Folder is not released yet. Get the download link by email when it is.

One email when the beta opens. No spam. No account. We never sell your address.

Or follow it on GitHub