Zero-Knowledge Cryptography Explained
Understand how client-side PBKDF2 key derivation, AES-256-GCM symmetric encryption, and RAM scrubbing protect your credentials.
Zero-Knowledge Cryptography Explained
In cybersecurity, "Zero-Knowledge" is not a marketing term—it is a mathematically verifiable architectural guarantee. In Vertueal Password Manager, it means that the server has zero technical capability to decrypt, inspect, or leak your secrets.
Even if Vertueal's primary databases were subpoenaed, seized, or compromised by an advanced persistent threat (APT), attackers would obtain only meaningless ciphertext strings.
The Cryptographic Workflow
1. Key Derivation: PBKDF2 (SHA-256)
When you type your master password into the browser, it is transformed into a cryptographic key using Password-Based Key Derivation Function 2 (PBKDF2):
- Salt: A 16+ byte cryptographically random string generated when you initialize your vault.
- Hash Function:
SHA-256. - Iteration Count: 100,000 rounds.
- Resulting Key: A 256-bit Master Encryption Key (MEK) used for
AES-GCM.
Why 100,000 Iterations Matter:
Computing 100,000 rounds takes approximately 100ms on modern hardware—virtually unnoticeable for a legitimate user unlocking their vault once per session. However, for an attacker attempting to brute-force billions of candidate passwords on specialized GPUs, the 100,000-round computational tax makes dictionary attacks economically and mathematically impossible.
2. Independent Server Authentication (auth_hash)
A common vulnerability in poorly designed password managers is sending a hash of the decryption key to the server for authentication. If the server is breached, an attacker might reconstruct the decryption key.
Vertueal eliminates this vulnerability through Salt Domain Separation:
- To authenticate you, your local browser worker derives a second, independent key using
salt + "_AUTH". - The worker signs a static challenge string using
HMAC-SHA256. - The resulting hash (
auth_hash) is sent to the server. - The server compares this hash against the database to confirm you know the password, without ever receiving the MEK or any key material capable of decrypting your data.
Info
Even if an adversary acquires our entire MongoDB database and all stored auth_hash values, they cannot reverse the hash to obtain the MEK or decrypt data_blob.
3. Isolated Web Worker Execution
Traditional web applications process data directly in the browser's main window thread. This introduces grave risks:
- Malicious third-party browser extensions could inspect the window DOM or JavaScript variables.
- Main-thread cryptographic computation causes visible browser UI freezing and stuttering.
Vertueal isolates all cryptographic operations in a dedicated Web Worker (crypto-worker.js):
- The
MEKresides in private worker memory and is never serialized across the window object. - Plaintext credentials and master passwords never enter global React state or
localStorage.
4. RAM Scrubbing & Inactivity Auto-Lock
Leaving a decrypted vault open on an unattended workstation poses a physical security hazard. Vertueal implements active memory cleansing:
- An inactivity timer monitors user keystrokes, clicks, and mouse movement.
- When the timer reaches the threshold (default: 5 minutes), the application issues a
CLEAR_KEYdirective to the Web Worker. - The worker explicitly nullifies internal key pointers (
MEK = null) and clears memory buffers with zeroed arrays. - Plaintext data in React memory is immediately garbage collected, locking the interface until the master password is typed again.
Secure Notes & Payment Cards
Safeguard confidential text documents, recovery seed phrases, software licenses, and corporate credit cards with AES-256 encryption.
Device Trust & Multi-Factor Authentication
Protect your vault against compromised master passwords through zero-trust hardware quarantine, device fingerprinting, and email MFA.