DevKeep handles the most sensitive files on your machine. Here is exactly how it protects them — in enough detail to verify, not just trust.
Secrets are sealed with AES‑256‑GCM using Apple's CryptoKit. GCM is authenticated encryption, so a tampered or truncated backup fails to open rather than silently returning garbage. Each backup uses a fresh random nonce.
When you choose a passphrase, DevKeep stretches it into a 256‑bit key with PBKDF2‑HMAC‑SHA256 at 600,000 iterations (OWASP's current guidance) over a fresh 16‑byte random salt. The salt and iteration count are stored in the bundle header, so the same passphrase opens the backup on any Mac — but the key itself is never written down. Passphrases are Unicode‑normalized before derivation so they behave consistently across machines.
The backup folder — you choose it. Contains the encrypted secrets bundle, copied config files, manifests, a plain‑text RESTORE.md, and a metadata file that lists paths only (never secret contents).
The Keychain (random‑key mode only) — a copy of the key, stored WhenUnlockedThisDeviceOnly, so it is never synced to iCloud Keychain.
App preferences — scan roots, exclusions, default folder, reminder cadence. Your passphrase and recovery code are never written to preferences or logs.
The encrypted bundle is self‑describing: a magic marker, a version, the KDF id, the salt, the iteration count, and then the AES‑GCM ciphertext. That's what lets a backup made today open on a brand‑new machine years later with nothing but your passphrase.
There is no analytics SDK, no crash reporter, and no "phone home." This isn't a privacy setting you can toggle off — the app has no networking code for it. That also makes the App Store privacy label a simple, honest "Data Not Collected."
The plan is to open‑source the core engine — the scanning, the bundle format, and the cryptography — so the security‑critical code can be read and verified by anyone, while the polished app remains the product. A security tool should not ask for blind trust.
Found a security issue? Please email hello@skywaylabs.io.