Skip to main content

Iron Dome - A secure CLI password manager with AES-256 encryption and zero-knowledge architecture

Project description

King Hippopotamus


IronDome

Fortified CLI Password Manager — AES-256 | Zero-Knowledge | Hardware-Bound

PyPI Python License Downloads

Quick StartFeaturesSecurityDevelopersContributing



Your passwords. Your machine. Your rules.

IronDome encrypts everything locally with AES-256, binds keys to your hardware, and operates on a zero-knowledge model — your master password is never stored. Nothing leaves your device. Ever.


Quick Start

pip install IronDome
bunker

Two commands. You're protected.


Features

Security

  • AES-256 encryption via Fernet
  • Zero-knowledge — only salted PBKDF2 hash stored
  • 600,000 PBKDF2 iterations (OWASP 2023)
  • Hardware-linked keys — data tied to your machine
  • Brute force protection — adaptive lockouts
  • Auto-timeout — session expires after 30min

Management

  • Generate strong, customizable passwords
  • Real-time strength evaluation
  • Search by domain or username
  • Encrypted backup & restore
  • Detailed logging (no secrets exposed)
  • Intuitive CLI navigation

How It Works

                    ┌─────────────────────────┐
                    │     Master Password      │
                    │    (never stored)        │
                    └───────────┬─────────────┘
                                │
                    ┌───────────▼─────────────┐
                    │   PBKDF2-HMAC-SHA256    │
                    │   600,000 iterations    │
                    │   + unique salt         │
                    └───────────┬─────────────┘
                                │
                 ┌──────────────┼──────────────┐
                 ▼                             ▼
    ┌────────────────────┐        ┌────────────────────┐
    │  Machine-Specific  │        │   User-Specific    │
    │    System Key      │        │  Encryption Key    │
    │ (hardware-bound)   │        │ (user+pass+salt)   │
    └────────┬───────────┘        └────────┬───────────┘
             │                             │
             ▼                             ▼
    ┌────────────────────┐        ┌────────────────────┐
    │ Encrypts master    │        │ Encrypts password  │
    │ credentials        │        │ database           │
    └────────────────────┘        └────────────────────┘

Usage

First-Time Setup

On first run, create your master account:

  1. Enter a master username (min 4 characters)
  2. Create a strong master password (min 8 characters)
  3. Confirm your master password

Main Menu

╔══════════════════════════════╗
║     === Password Manager === ║
║     Logged in as: nir        ║
╠══════════════════════════════╣
║  1. Generate a new password  ║
║  2. Save a password          ║
║  3. Find passwords           ║
║  4. List all websites        ║
║  5. Delete a password        ║
║  6. Create backup            ║
║  7. Show storage location    ║
║  8. Logout                   ║
║  9. Exit                     ║
╚══════════════════════════════╝

Security Architecture

Encryption Layers

Layer Purpose Scope
Machine-specific system key Encrypts master credentials Ties data to your hardware
User-specific encryption key Encrypts password database Requires both username + password

Authentication Security

Feature Implementation
Brute force protection Adaptive attempt limits with progressive lockout
Session management Auto-timeout after 30 min inactivity
Sensitive operations Require re-authentication
Device tracking Per-device lockout with identifier tracking

Cryptographic Stack

Component Implementation
Symmetric Encryption AES-256-CBC + PKCS7 padding (Fernet)
Key Derivation PBKDF2HMAC-SHA256, 600k iterations
Password Hashing PBKDF2-HMAC-SHA256 + unique salt
Random Generation Python secrets (CSPRNG)

Data Storage

~/.password_manager/
├── password_manager.log           # Non-sensitive log
├── backups/
│   └── .passwords_backup_*.enc    # Encrypted backups
└── secrets/                       # Restricted (0o700)
    ├── .passwords.enc             # Encrypted password DB
    ├── salt.bin                   # Key derivation salt
    ├── .master_user.enc           # Encrypted master user
    ├── .master_hash.enc           # Encrypted master hash
    └── .login_attempts.dat        # Lockout tracking

Password Strength Scoring

 Excellent  ██████████████████████████████  80+
 Very Strong ████████████████████████░░░░░░  60-79
 Strong      ██████████████████░░░░░░░░░░░░  40-59
 Medium      ████████████░░░░░░░░░░░░░░░░░░  25-39
 Weak        ██████░░░░░░░░░░░░░░░░░░░░░░░░  <25

For Developers

Clone & Run from Source

git clone https://github.com/TheKingHippopotamus/IronDome-Bunker.git
cd IronDome-Bunker
pip install -r requirements.txt
python -m password_manager

Project Structure

password_manager/
├── __init__.py       # Package init + version
├── __main__.py       # Entry point
├── manager.py        # Main SecurePasswordManager class
├── auth.py           # Authentication & master account
├── encryption.py     # Encryption utilities
├── session.py        # Session management & timeout
├── storage.py        # File storage operations
├── generator.py      # Password generation
├── utils.py          # Utility functions
├── logger.py         # Logging setup
└── constants.py      # Constants & configuration

Contributing

We welcome contributions! Please read:


Screenshots & Demo

Application Interface

Login Screen Secure authentication login

Dashboard Main dashboard interface

Password Details Password details view

Video Demo

Watch the demo

Click the image above to watch the full demonstration


Requirements

  • Python 3.8+
  • cryptography library
  • Windows, macOS, or Linux

License

GNU General Public License v3.0

  • Attribution — credit the original author
  • Share Source — distribute source with binaries
  • Same License — derivatives must use GPL-3.0
  • State Changes — indicate modifications

King Hippopotamus
Created & maintained by King Hippopotamus
Built with security in mind. No data leaves your machine. Ever.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

irondome-1.1.0.tar.gz (21.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

irondome-1.1.0-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

Details for the file irondome-1.1.0.tar.gz.

File metadata

  • Download URL: irondome-1.1.0.tar.gz
  • Upload date:
  • Size: 21.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for irondome-1.1.0.tar.gz
Algorithm Hash digest
SHA256 6c437597ce9505a6eef8709817c4363915e7752d226faf1ba64838b9eebe0334
MD5 ad2446aec1c507de5c15182b092e4844
BLAKE2b-256 c3435aa8866ff5d8f2c30b621ad5bceb72943d24a14a043c9a92d20c30365cc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for irondome-1.1.0.tar.gz:

Publisher: publish.yml on TheKingHippopotamus/IronDome-Bunker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file irondome-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: irondome-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 25.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for irondome-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 46c11e7e46e4824002364264e6bbc0ecc55998b711fb0a2f2dc1a2fd14c5c1f6
MD5 a7d0eb5ddf506bf5bb7ecaf29e8335cc
BLAKE2b-256 9952d1313ac0ee6a4decff04517102107383d1acbfd5bf628030d4b4ad14318d

See more details on using hashes here.

Provenance

The following attestation bundles were made for irondome-1.1.0-py3-none-any.whl:

Publisher: publish.yml on TheKingHippopotamus/IronDome-Bunker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page