Jump to main content
Back to Projects
Web Security ApplicationProject20254 months

LockIn - Password Manager

A secure, zero-knowledge password manager web application with client-side encryption, designed to protect user privacy while providing seamless password management across any browser.

Role

Full Stack Developer & UI/UX Designer

Client

Academic Project - Digital Security Course

Team

5-person Team

Timeline

4 months • 2025

LockIn - Password Manager — project cover

Skills & Tools

Skills Applied

Web SecurityCryptographyJavaScriptUI/UX DesignFirebaseIcon Design

Tools & Software

FigmaVS CodeFirebase ConsoleAdobe Illustrator

Final Results

LockIn - Password Manager — final result 1
LockIn - Password Manager — final result 2
LockIn - Password Manager — final result 3
LockIn - Password Manager — final result 4
LockIn - Password Manager — final result 5
LockIn - Password Manager — final result 6
LockIn - Password Manager — final result 7
LockIn - Password Manager — final result 8

Applications

LockIn - Password Manager — application 1
LockIn - Password Manager — application 2

Exploration Results

LockIn - Password Manager — exploration 1
LockIn - Password Manager — exploration 2
LockIn - Password Manager — exploration 3
LockIn - Password Manager — exploration 4
LockIn - Password Manager — exploration 5

Challenges

The primary challenge was implementing a robust zero-knowledge architecture where the server never has access to user passwords or decrypted data. Ensuring proper key derivation, secure client-side encryption/decryption, and maintaining security while providing a seamless user experience across different browsers were critical technical hurdles.

Solutions

Implemented client-side key derivation using PBKDF2 with unique salts, utilized Web Crypto API for AES-256-GCM encryption/decryption, separated verification keys from encryption keys, and designed a secure authentication system that never transmits the master password to the server. All sensitive operations are performed locally in the browser.

Impact

Successfully demonstrated that secure password management can be achieved without compromising user privacy. The zero-knowledge architecture ensures that even if the server is compromised, user data remains completely secure. The project serves as a proof-of-concept for privacy-first web applications in the digital security domain.

Project Overview

LockIn is a web-based password manager built on a zero-knowledge architecture: all encryption and decryption happen in the browser, so the server never sees a user's master password or plaintext data. It was developed as a Digital Security course project by a 5-person team, where I led both full-stack development and visual design.

The Security Model

Traditional password managers require trusting the provider with server-stored secrets. LockIn removes that trust:

  • Key derivation — the master password never leaves the browser; PBKDF2 with a unique per-user salt derives separate encryption and verification keys.
  • Client-side encryption — all sensitive data is encrypted with AES-256-GCM (Web Crypto API) before transmission; keys exist only in memory during a session.
  • Server storage — the backend stores only opaque encrypted blobs and authenticates via the verification key, so a server compromise leaks nothing readable.

Architecture

  • Authentication — registration generates a salt and verification key; login authenticates with the verification key, never the master password. Logout clears all cryptographic material from memory.
  • Data flow — master password to key derivation to local encryption to API call to encrypted blob storage. Retrieval decrypts entirely client-side.
  • Frontend — vanilla JavaScript for full control over crypto, Web Crypto API primitives, plus CSP and input sanitization against XSS.
  • Backend — Firebase (Firestore for encrypted data, Storage for uploads, Auth for token-based sessions) with no server-side decryption capability.

Key Features

  • Encrypted vault — full CRUD on credentials, each encrypted client-side before storage.
  • Password generator — cryptographically secure generation with entropy feedback and secure clipboard handling.
  • Security dashboard — password strength analysis and a calculated security score.
  • Emergency deletion — multi-step confirmed vault destruction and key invalidation.
  • Profile management — master-password changes trigger key re-derivation and vault re-encryption.

My Role & Design Work

Beyond the client-side cryptography and Firebase integration, I designed the full interface and a custom set of 5+ security-focused icons in Adobe Illustrator, applying a trust-oriented color palette, high-contrast accessibility, and a responsive layout consistent across browsers.

Results

  • 100% client-side encryption; zero server-side password exposure (verified in testing).
  • AES-256-GCM with PBKDF2 key derivation (100,000+ iterations).
  • Sub-second encryption/decryption for typical vaults; cross-browser support (Chrome, Firefox, Safari, Edge) without security compromise.
  • Usability testing with 12 participants confirmed the zero-knowledge model stayed intuitive.

Key Takeaways

  • Client-side cryptography is fully feasible for web apps without sacrificing UX.
  • Separating encryption keys from verification keys is what enables true zero-knowledge authentication.
  • Browser compatibility needs careful Web Crypto feature detection, and in-memory keys must be cleared deliberately.
  • User education about the security model matters as much as the cryptography itself.

Live App: lock-in-vert.vercel.app · Source: GitHub

Project Metrics

Zero server-side password exposure

AES-256-GCM encryption implementation

100% client-side cryptography

Cross-browser compatibility achieved

Zero-knowledge architecture verified

Credits & Acknowledgments

Web Crypto API documentation by MDN

Firebase by Google

Security best practices by OWASP

Custom icons and illustrations designed in-house

Team collaboration and backend development

Academic supervision by Digital Security Course faculty

Project Tags

More Visuals

LockIn - Password Manager — additional material 1
LockIn - Password Manager — additional material 2
LockIn - Password Manager — additional material 3
LockIn - Password Manager — additional material 4
LockIn - Password Manager — additional material 5
LockIn - Password Manager — additional material 6

Related Projects

View all projects →