KitWharfFREEFast & Private Web Apps

Zero-Knowledge Offline Password Vault: How In-Browser AES-GCM-256 Protects Your Credentials Without the Cloud

November 2, 202611 min readKitWharf Team
Interactive Online Tool Available

Zero-Knowledge Password Vault

Store passwords, payment cards, notes, and identities encrypted in your browser RAM with AES-GCM-256 and PBKDF2. Zero cloud storage or tracking.

Launch Free Tool

For over a decade, internet users have been urged to store their digital lives in cloud-hosted password managers. While centralized cloud vaults solved the convenience problem of cross-device synchronization, they introduced a catastrophic architectural vulnerability: centralized honeypots. When a cloud password manager suffers an infrastructure compromise or targeted data breach, hundreds of millions of encrypted credential containers and user metadata blobs are exfiltrated at scale.

In response, cybersecurity researchers, developers, and privacy-conscious users are turning to self-sovereign, zero-knowledge offline password vaults.

In this comprehensive guide, we examine the cryptographic architecture of in-browser password managers, explain exactly where encrypted data resides on your operating system, break down PBKDF2 and AES-GCM-256 key derivation, and walk through managing your digital secrets with zero cloud footprint using KitWharf Password Vault.


1. The Cloud Password Manager Vulnerability Paradox

Centralized password managers (such as LastPass and other proprietary cloud services) suffer from an inherent security paradox:

  1. Honeypot Architecture: Centralized servers hold billions of encrypted vaults in a single cloud database. This makes them the highest-value targets on the internet for nation-state threat actors and ransomware syndicates.
  2. Metadata Leakage: Even if vault credentials remain encrypted, cloud providers frequently leave sensitive metadata unencrypted — including unhashed vault item URLs, company domains, last-login timestamps, billing addresses, and IP access logs.
  3. Supply Chain Risks: A rogue employee, a compromised continuous integration pipeline (CI/CD), or a malicious server-side dependency update can silently inject exfiltration JavaScript into cloud login portals.
  4. Account Lockouts & Subscription Gates: Cloud providers can suspend your account, lose service availability, or lock essential multi-device features behind recurring monthly subscriptions.

The Zero-Cloud Alternative: In-Browser Cryptography

By contrast, an offline, client-side in-browser password vault eliminates cloud exposure entirely:

  • No User Account: You never register an email address, phone number, or credit card.
  • No Remote Database: There is literally no database or API server to breach.
  • Native WebCrypto Standards: Modern web browsers feature the hardware-accelerated W3C window.crypto.subtle API, executing constant-time cryptographic primitives in native C++ browser engine code.
  • Air-Gapped Portability: Encrypted vaults reside exclusively inside your machine's browser sandbox and portable .kwvault files.

2. Cryptographic Architecture: Under the Hood

The KitWharf Zero-Knowledge Password Vault implements an authenticated, defense-in-depth cryptographic pipeline conforming to NIST SP 800-132 and OWASP password storage recommendations.

   +-------------------------------------------------------------+
   |                     USER MASTER PASSPHRASE                  |
   +-------------------------------------------------------------+
                                  |
                                  v
   +-------------------------------------------------------------+
   |                  PBKDF2 KEY DERIVATION                     |
   |  - Algorithm: SHA-256 HMAC                                  |
   |  - Iterations: 600,000 rounds (OWASP 2026 baseline)         |
   |  - Salt: 16 bytes (128-bit) cryptographically random        |
   +-------------------------------------------------------------+
                                  |
                                  v
   +-------------------------------------------------------------+
   |               256-BIT SYMMETRIC AES CIPHER KEY               |
   +-------------------------------------------------------------+
                                  |
            +---------------------+---------------------+
            |                                           |
            v                                           v
   [ ENCRYPT VAULT JSON ]                     [ DECRYPT CIPHERTEXT ]
   - Cipher: AES-GCM-256                      - Validates 128-bit Tag
   - IV: 12 bytes (96-bit) unique per save    - Reconstructs In-Memory RAM
   - Authenticated Tag: 128 bits              - Zero Cloud Transmission
            |                                           |
            +---------------------+---------------------+
                                  |
                                  v
   +-------------------------------------------------------------+
   |                      STORAGE TARGETS                        |
   |  1. LocalStorage: 'kitwharf_vault_v1' (Fast local persistence)|
   |  2. Standalone Export: '.kwvault' encrypted physical file   |
   +-------------------------------------------------------------+

A. PBKDF2 Key Derivation (600,000 Iterations)

When you choose a master passphrase, it is never used directly as an encryption key. Raw human passphrases have low mathematical entropy compared to true cryptographic random numbers.

KitWharf feeds your master passphrase into PBKDF2 (Password-Based Key Derivation Function 2) configured with:

  • Hash Primitive: SHA-256
  • Iteration Count: 600,000 rounds
  • Salt: 16 bytes (128 bits) generated via crypto.getRandomValues()

Each round applies HMAC-SHA-256 recursively. For an attacker possessing your encrypted vault file, testing a single candidate password requires computing 600,000 SHA-256 iterations. Even on advanced GPU cracking clusters running Hashcat, this high iteration cost reduces cracking speeds from billions of guesses per second to a few hundred, rendering brute-force attacks economically and computationally prohibitive.

B. Authenticated Encryption via AES-GCM-256

Once the 256-bit symmetric key is derived, KitWharf serializes your credentials, payment cards, notes, and identities into a structured JSON string and encrypts it using AES-GCM-256 (Galois/Counter Mode):

  • Confidentiality: 256-bit Advanced Encryption Standard ensures no unauthorized party can read the plaintext.
  • Integrity & Authenticity: AES-GCM generates a 128-bit authentication tag. If even a single bit of the stored ciphertext or initialization vector is tampered with or corrupted, decryption immediately halts and fails, preventing padding-oracle attacks and silent ciphertext manipulation.
  • Unique IV Per Save: A fresh 12-byte (96-bit) cryptographically random Initialization Vector (IV) is generated on every single save operation. Never reusing an IV is a fundamental security requirement of AES-GCM that guarantees ciphertext indistinguishability.

3. Where Exactly Is Your Encrypted Vault Stored on Disk?

One of the most important questions users ask is: "Where on my computer does the browser actually save my vault?"

Understanding browser file paths gives you full control over your data sovereignty. KitWharf utilizes two distinct storage tiers:

Tier 1: Browser Sandboxed LocalStorage

By default, the encrypted JSON envelope (containing the salt, IV, and ciphertext) is persisted inside your browser's sandboxed localStorage under the key kitwharf_vault_v1.

The browser persists this data on your physical drive in the following OS-specific database locations:

Operating System Browser On-Disk File System Location
Windows 11 / 10 Google Chrome %LOCALAPPDATA%/Google/Chrome/User Data/Default/Local Storage/leveldb/
Windows 11 / 10 Microsoft Edge %LOCALAPPDATA%/Microsoft/Edge/User Data/Default/Local Storage/leveldb/
Windows 11 / 10 Mozilla Firefox %APPDATA%/Mozilla/Firefox/Profiles/<profile>/webappsstore.sqlite
macOS Google Chrome ~/Library/Application Support/Google/Chrome/Default/Local Storage/leveldb/
macOS Apple Safari ~/Library/Safari/LocalStorage/
macOS Mozilla Firefox ~/Library/Application Support/Firefox/Profiles/<profile>/webappsstore.sqlite
Linux (Ubuntu / Fedora) Chrome / Chromium ~/.config/google-chrome/Default/Local Storage/leveldb/
Linux (Ubuntu / Fedora) Mozilla Firefox ~/.mozilla/firefox/<profile>/webappsstore.sqlite

Inside these LevelDB or SQLite files, your data exists strictly as an encrypted string:

{
  "version": 1,
  "salt": "a4f89d3c2e1b...",
  "iv": "7c1e9a0f...",
  "ciphertext": "99df0284ab9412e873bc...",
  "updatedAt": 1730560000000
}

Even if an attacker gains physical access to your hard drive and inspects your browser LevelDB files, they see only high-entropy random hex ciphertext. Without your master passphrase, reverse engineering the plaintext credentials is mathematically impossible.

Tier 2: The Physical .kwvault Backup File

While localStorage is extremely convenient for returning visitors, it is tied to your browser profile. If you:

  • Clear browser history and select "Clear cookies and other site data",
  • Use automated cleaning utilities (such as CCleaner or BleachBit), or
  • Uninstall or reformat your browser profile,

your browser's local storage database will be purged.

The Golden Rule of In-Browser Storage: Always click "Backup / Restore" and download a .kwvault file.

  • The file saves directly to your operating system's standard Downloads folder (e.g. C:/Users/<Username>/Downloads/ on Windows or ~/Downloads on macOS/Linux).
  • It is a 100% self-contained, encrypted backup that you can store on a USB flash drive, external backup drive, or air-gapped cold storage.
  • You can restore your vault on any device (Mac, Windows, Linux, iOS, Android) by simply clicking "Import .kwvault backup" in KitWharf Password Vault.

4. Architectural Comparison: Cloud vs. KeePass vs. KitWharf

How does an in-browser zero-knowledge vault compare to traditional desktop utilities like KeePass and centralized cloud services like 1Password or Bitwarden?

Feature / Threat Model KitWharf Password Vault Cloud Password Managers Desktop KeePassXC
Account Required ❌ No account, zero signup ⚠️ Mandatory email & billing ❌ No account required
Server Database Breaches 🛡️ Zero risk (No server) ⚠️ Constant high-value honeypot 🛡️ Zero risk (Local only)
Installation Required ❌ Zero install (Any browser) ⚠️ Extensions or desktop apps ⚠️ Requires native OS install
Cryptographic Primitive AES-GCM-256 + PBKDF2 (600k) Varies (AES-GCM / PBKDF2 / Argon2) AES-256 / ChaCha20 + Argon2d
On-Disk Storage Location Browser LocalStorage + .kwvault Remote Cloud DB + Local Cache Single .kdbx file on disk
Cross-Device Portability Instant via .kwvault file Automatic cloud background sync Manual sync (Dropbox/Syncthing)
Clipboard Sanitization Auto-wipe after 30 seconds Available in native apps Available in desktop apps
Cost & Subscription 100% Free Forever $3 - $10 / user / month 100% Free / Open Source

5. Defense Against In-Memory & Clipboard Threats

A robust password manager must protect credentials not just at rest on disk, but also while actively in use.

A. Automated Clipboard Sanitization (30-Second Self-Destruct)

When you copy a 24-character random password to paste it into a website, that password temporarily resides in your operating system's global clipboard buffer. On desktop operating systems, any background process running in user space (and on mobile, certain background apps) can silently query the clipboard contents.

KitWharf solves this with an active Clipboard Sanitization Routine:

  1. When you click "Copy", the credential is written to the system clipboard via navigator.clipboard.writeText().
  2. A high-priority 30-second countdown timer appears in the top navigation bar.
  3. When the countdown reaches zero, KitWharf programmatically calls navigator.clipboard.writeText(""), overwriting the clipboard with an empty string.
  4. Users can also click "Clear Now" at any moment to immediately flush the buffer.

B. Inactivity Auto-Lock Protection

If you leave your computer unlocked in an office, library, or coffee shop, an unauthorized person could view your credentials.

In KitWharf Password Vault Settings, you can configure an Inactivity Auto-Lock Timer:

  • Options: 1 minute, 5 minutes (Default), 15 minutes, 30 minutes, or 1 hour.
  • KitWharf listens for user interaction events (mousemove, keydown, click, touchstart).
  • If no input is received within your designated timeout period, the decrypted vault in RAM and the derived AES encryption key are immediately garbage collected and cleared. The UI returns to the locked master passphrase prompt.

6. How to Build an Unbreakable Master Passphrase

Because KitWharf operates with strict zero-knowledge security, there is no "Forgot Password" link. No administrator, developer, or automated server can reset your master passphrase.

To ensure your vault is impenetrable while remaining memorable, follow the Diceware Passphrase Method:

The Diceware Formula

Instead of short, convoluted passwords filled with random symbols that are hard to memorize (e.g. Tr8#mQ!9vL), select 4 to 6 random, unrelated words:

correct-horse-battery-staple

or:

orbit-velvet-crane-granite-whisper

Why Passphrases Beat Short Passwords

  • Shannon Entropy: A 5-word Diceware passphrase selected from a standard 7,776-word dictionary delivers approximately 64.6 bits of pure entropy. Combined with PBKDF2's 600,000 SHA-256 iterations, cracking this passphrase requires over 500,000 years of computation on modern supercomputers.
  • Cognitive Load: Four English words are trivial for the human brain to remember through visual imagery, but nearly impossible for dictionary cracking algorithms combining standard letter substitutions.

7. Step-by-Step: Using KitWharf Zero-Knowledge Password Vault

Getting started with KitWharf Password Vault takes less than 30 seconds:

Step 1: Create Your Master Passphrase

  1. Navigate to KitWharf Password Vault.
  2. Enter your chosen master passphrase. The real-time entropy meter will evaluate its strength.
  3. Confirm the passphrase and click "Create & Encrypt Vault".

Step 2: Organize Logins, Payment Cards & Secure Notes

Click "Add Item" to store your sensitive assets:

  • Logins: Title, Username, Email, Password (with integrated entropy generator), Website URL, and Custom Notes.
  • Payment Cards: Cardholder Name, Card Number, Expiration Date, CVV, and PIN.
  • Secure Notes: API keys, private SSH keys, server root passwords, and recovery seed phrases.
  • Identities: Full legal names, passport numbers, social security / tax IDs, and date of birth.

Organize items into custom folders (e.g. Personal, Work, Banking, Cloud Servers) and mark critical entries as Favorites for instant one-click access.

Step 3: Audit Your Password Health

Click the "Health" shield badge in the header. KitWharf instantly analyzes your vault for:

  • Duplicate Passwords: Re-using passwords across services is the #1 cause of credential stuffing breaches.
  • Weak Passwords: Identifies passwords with low entropy or fewer than 12 characters.
  • Compromised Habits: Guides you to update high-risk accounts with freshly generated 20+ character passwords.

Step 4: Download Your Portable .kwvault Backup

Click "Backup / Restore" in the top ribbon and select "Download Encrypted Backup (.kwvault)". Save this file to an external USB flash drive or secure backup folder.


8. Summary: Take Back Control of Your Digital Secrets

Centralized cloud databases will always be tempting targets for malicious actors. By adopting a zero-knowledge, offline-first workflow, you eliminate third-party trust and secure your credentials with the same military-grade AES-GCM-256 encryption used by leading security agencies — with zero cloud sync, zero subscriptions, and zero tracking.

Launch your private, offline secrets vault right now with KitWharf Zero-Knowledge Password Vault.

Ready to put this into practice?

Launch our free Zero-Knowledge Password Vault — instant client-side execution in your browser with zero registration required.

Open Tool