← Latest papers
💻 computer science

WebAuthn PRF-Based Vault Key Wrapping and Zero-Knowledge PWA Storage Architecture

This paper presents a client-side security architecture for web-based credential vaults that achieves strong zero-knowledge properties by combining WebAuthn's PRF extension with symmetric cryptography and optimized browser storage patterns.

Original authors: Ian Pinto

Published 2026-07-08✓ Author reviewed
📖 5 min read🧠 Deep dive

Original authors: Ian Pinto

Original paper licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you have a digital safe (a "vault") where you keep your most important secrets, like passwords or private notes. Usually, to open this safe, you need a master key (a password). But what if you could open it using your face, your fingerprint, or a physical security key instead? And what if, even if a hacker stole a copy of your safe's contents, they still couldn't read a single word inside without your specific biometric key?

This paper by Ian Pinto describes a new way to build that kind of ultra-secure digital safe for web browsers. It combines a few high-tech concepts into a system that keeps your data "zero-knowledge"—meaning the server or the storage system knows nothing about what's inside, not even the key to open it.

Here is how it works, broken down into simple parts:

1. The Magic Key: WebAuthn PRF

Think of your passkey (the one you use to log in with your face or fingerprint) not just as a "Yes/No" gatekeeper, but as a secret recipe generator.

  • The Old Way: You prove you are you, and the system says "Access Granted."
  • The New Way (PRF): When you prove you are you, your device secretly runs a complex math recipe (called a Pseudo-Random Function or PRF) using a special "salt" (a random ingredient). This recipe produces a unique, high-quality "secret sauce" (a 32-byte code) that only your specific device knows how to make.
  • The Catch: This secret sauce is created inside your device's secure chip. It never leaves the device, and it is never saved to the hard drive. It exists for a split second, just long enough to unlock your safe, and then it is immediately wiped clean.

2. The Lock: Wrapping the Vault Key

Your vault has a master key (let's call it Key K) that actually locks the data.

  • The system takes that fleeting "secret sauce" from your passkey and uses it to wrap Key K in a digital envelope (encryption).
  • Once wrapped, Key K is locked inside this envelope. The system saves this envelope to your browser's storage (IndexedDB).
  • Crucial Point: The system never saves the secret sauce or the unwrapped Key K. It only saves the locked envelope. If a hacker steals the storage, they only have a locked box with no key.

3. The Safe House: IndexedDB Storage

The paper proposes a specific way to organize this data in the browser's storage (IndexedDB), which is like a digital filing cabinet.

  • The Filing System: The system creates three specific folders:
    1. The Vaults: Where the locked envelopes (the wrapped keys) live.
    2. The Credentials: A list of your passkeys and their "serial numbers" (to make sure no one is using a fake copy of your key).
    3. The Meta: General notes for the app.
  • Zero-Knowledge Guarantee: The paper argues that because the storage only contains the locked envelopes and public metadata, a thief who steals the entire filing cabinet cannot reconstruct the key. They are stuck with the locked box and no way to open it without your physical device.

4. The Backup Plan: The "Password Fallback"

What if your browser doesn't support this fancy "secret sauce" feature (like on some Android tablets)?

  • The system has a backup plan called pw-v1. Instead of using the passkey's secret sauce, it uses a very slow, heavy-duty math puzzle (scrypt) based on a traditional password you type in.
  • This is slower and less convenient, but it ensures you can still open your safe even if the fancy hardware feature isn't available. It's like having a physical keyhole next to the biometric scanner.

5. Safety Checks: Stopping Replay Attacks

The paper emphasizes a "replay check."

  • Imagine a thief records your "unlock" signal and tries to play it back later to open the safe.
  • The system keeps a counter (like a mileage tracker on a car). Every time you unlock the safe, the counter goes up. If the system sees a signal with an old counter number, it knows it's a recording and rejects it.
  • Note: The paper admits this isn't perfect for all devices (some synced passkeys don't update the counter), but it adds a layer of defense.

6. What This Paper Does NOT Do

The author is very careful to say what this system doesn't protect against:

  • It doesn't protect against a virus on your computer. If a hacker is already inside your browser watching you type, they can steal the key while it's being used. This system only protects the data at rest (when it's sitting in storage).
  • It doesn't protect against "side-channel" leaks. If the app compresses data before locking it, or if the size of the locked box changes based on how long your password is, a clever hacker might guess what's inside just by measuring the box size. The paper warns developers to pad their data (make all boxes the same size) to prevent this.

Summary

This paper presents a blueprint for a web-based password vault that is mathematically proven to be unreadable to anyone who doesn't have your specific physical passkey. It uses your passkey to generate a temporary, one-time code that locks your data, ensures that code is never saved, and organizes the storage so that even a total theft of the database yields nothing but locked boxes. It's a "Zero-Knowledge" system where the storage provider (or a hacker) knows nothing about your secrets.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →