Logo
Back to Projects

Fortress

Repository

Privacy-focused password manager and identity gateway with email aliasing capabilities, built with ASP.NET Core backend, Next.js frontend, and Chrome extension.

Project Overview

  • I built Fortress, a privacy-focused password manager and identity gateway designed to securely generate, store, and auto-fill credentials.
  • The system includes email aliasing capabilities to prevent identity leakage and protect users from data tracking and spam.
  • Fortress is built as a full-stack application with three main components: an ASP.NET Core REST API backend, a Next.js frontend dashboard, and a Chrome/Edge browser extension.

Problem Statement

  • Users need a secure way to manage passwords and identities across multiple online services without exposing their real email addresses.
  • Traditional password managers lack identity isolation features, making users vulnerable to data breaches and identity tracking.
  • Browser-based credential management requires seamless integration with websites while maintaining strict security standards.
  • Cryptographic operations must be performed securely on the backend to prevent exposure of encryption keys and sensitive logic to client applications.

Technology Stack Used

  • Backend: ASP.NET Core 9, Entity Framework Core, PostgreSQL
  • Frontend: Next.js,
  • Browser Extension: Chrome Extension APIs, JavaScript
  • Security: JWT authentication, Argon2id password hashing, AES-GCM encryption
  • Database: PostgreSQL with encrypted data storage
  • Architecture: Clean Architecture pattern with API, Application, Domain, and Infrastructure layers

System Architecture

System Architecture diagram 1
System Architecture diagram 2
  • I architected the backend using Clean Architecture principles, organizing code into four distinct layers: API layer for controllers, Application layer for use cases and business logic, Domain layer for entities, and Infrastructure layer for data access and security.
  • The client layer consists of a Next.js frontend dashboard for managing credentials and identities, and a Chrome/Edge browser extension for password generation and auto-fill functionality.
  • All client applications communicate with the backend using HTTPS and JWT-secured REST APIs, ensuring authenticated and encrypted communication.
  • The Infrastructure layer handles Entity Framework Core with PostgreSQL provider for data persistence, AES-GCM encryption key management for credential encryption, Argon2id password hashing for user authentication, and JWT validation for identity context management.
  • PostgreSQL serves as the primary database, storing encrypted credential data and user information securely.

Key Features

  • Secure password generation with customizable complexity requirements
  • Email alias generation for identity isolation across different online services
  • Encrypted credential storage using AES-GCM encryption
  • Browser-based auto-fill functionality that detects login forms and injects credentials securely
  • Central dashboard for managing identities, credentials, and email aliases
  • JWT-based authentication with secure token management
  • One-click identity generation directly from browser extension on any website

Implementation Details

  • I implemented the backend as an ASP.NET Core 9 REST API following Clean Architecture, with clear separation between API controllers, application use cases, domain entities, and infrastructure concerns.
  • The Application layer orchestrates business logic for password generation, email alias creation, credential storage, and retrieval operations.
  • I used Entity Framework Core as the ORM for database interactions, configuring it with PostgreSQL provider and implementing database migrations for schema management.
  • The Infrastructure layer encapsulates all security operations, including Argon2id password hashing, AES-GCM encryption for stored credentials, and JWT token generation and validation.
  • I built the Next.js frontend dashboard to provide a user interface for managing credentials, viewing email aliases, and configuring identity settings.
  • The Chrome/Edge browser extension detects login forms on web pages, communicates with the backend API using JWT tokens, and securely injects generated credentials into form fields.
  • All cryptographic operations, including password hashing and credential encryption, are performed exclusively on the backend to ensure encryption keys and sensitive logic are never exposed to client applications.

Security & Data Protection

  • I implemented JWT-based authentication where tokens are securely generated on the backend and transmitted to clients for subsequent API requests.
  • User passwords are hashed using Argon2id algorithm before storage, providing strong protection against brute-force attacks.
  • Stored credentials are encrypted using AES-GCM encryption, with encryption keys managed securely on the backend infrastructure layer.
  • All API communication between clients and backend is secured using HTTPS, and JWT tokens are required for authenticated requests.
  • I ensured that no encryption keys, hashing algorithms, or sensitive cryptographic logic are exposed to the frontend or browser extension.
  • The Infrastructure layer handles all security operations, including JWT validation and identity context management, ensuring consistent security enforcement across the application.
  • PostgreSQL database stores encrypted data, and Entity Framework Core manages secure database connections and transactions.

Key Achievements

  • Built a privacy-focused password manager and identity gateway that securely generates, stores, and auto-fills credentials across websites.
  • Architected a full-stack system using Clean Architecture principles with ASP.NET Core 9 REST API backend, Next.js frontend dashboard, and Chrome/Edge browser extension.
  • Implemented secure credential storage with AES-GCM encryption and Argon2id password hashing, ensuring all cryptographic operations occur exclusively on the backend.
  • Designed email aliasing functionality to prevent identity leakage by generating unique email addresses for each online service.
  • Created a browser extension that detects login forms and securely auto-fills credentials using JWT-authenticated API calls.