DribbleVault

Security

How a DribbleVault vault is protected, in enough detail to check. Every claim here is one the code can be held to; where something has not been done, it says so.

Last updated 3 September 2026 · applies to version 0.1.0

What protects your vault

StepWhat is used
Master password → keyArgon2id, calibrated on your Mac — typically 256 MiB of memory, 1 second
EncryptionXChaCha20-Poly1305
Large filesSTREAM chunked AEAD
Key separationHKDF-SHA-256, one subkey per purpose

Nothing here is invented. Argon2 won a public competition for exactly this job; XChaCha20-Poly1305 and HKDF are published, reviewed standards. The primitives are tested against independent implementations — libsodium, the PHC Argon2 reference, RFC 5869 and RFC 6238 vectors — rather than only against themselves.

Why the memory cost matters

Argon2id's memory requirement is the part that resists an attacker with a graphics card. At 256 MiB, a 24 GB GPU can hold roughly 96 guesses at a time instead of tens of thousands. That is what turns a stolen vault file from a weekend's work into an impossibility — provided the master password is not one somebody would guess early.

Details worth knowing

The header is authenticated

The key-derivation parameters are used as associated data when the master key is unwrapped. Editing the header to weaken the KDF does not weaken anything — it breaks decryption outright, which is the correct failure.

Length is padded

Records are padded into fixed size buckets before encryption, so the size of a file on disk does not disclose the size of what is inside it.

The vault locks itself

After inactivity, and whenever the Mac sleeps — detected by comparing wall-clock against monotonic time, so a machine that was suspended is caught even if no timer fired. Anything copied to the clipboard is cleared with it.

Nothing derived from your password is stored

Not the password, and not any value that would let somebody test guesses more cheaply than running the full derivation.

The network

DribbleVault makes no network calls. Two optional features would, and both are off until you turn them on. Breach checking compares your passwords against public breach data, and even then never sends a password: only the first 5 characters of a 40-character hash, which thousands of unrelated passwords share. Update checking asks whether a newer version exists — it sends nothing about you, and it never downloads or installs anything. You fetch an update yourself.

What it does not defend against

Stated plainly, because a security page that lists only strengths is marketing.

No recovery, by design

If you forget your master password, the vault is gone. There is no reset, no hint, no security question, and nobody here can help — because the key never leaves your Mac and we hold nothing that could open it.

That is the trade for there being no server. Write your passphrase down and keep it somewhere safe.

What has not been done

No independent security review. What exists is 299 automated tests, structural checks that fail the build on a security regression, a written threat model, and an adversarial audit — all by the person who wrote the code.

That does not weaken the cryptography; the algorithms are public standards checked against independent implementations. It means nobody outside has reviewed the code around them. For something holding your passwords, that gap is worth knowing about, and it will be stated here until it changes.

Reporting something

If you find a weakness, please write to support@dribblesoft.com before publishing it, and allow time for a fix. You will be credited unless you would rather not be.