Skip to content

About

Hardware-bound Python password suite & vault using WMI device fingerprinting, PBKDF2HMAC, and AES-256 Fernet encryption to lock credentials strictly to local machine hardware. Includes entropy scoring

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ” Hardware-Bound Password Suite & Smart Vault

Enterprise-Grade Password Security Application β€” Auspify Technologies Internship Submission (Task 1)

Python Platform Encryption Security Offline

Developer: Roshan Siril Nadar Β |Β  Version: 1.0 Β |Β  Language: Python 3.10+


πŸ“– Table of Contents


πŸ” Overview

The Hardware-Bound Password Suite & Smart Vault is an enterprise-grade cybersecurity application written in pure Python, built by Roshan Siril Nadar as Task 1 of the Auspify Technologies internship submission.

Unlike conventional password managers that rely solely on a master password, this application uses a fundamentally stronger approach β€” it binds encryption keys directly to the physical machine it runs on. Even if the encrypted vault file is copied or stolen, it is completely unreadable on any other device.

Property Details
Language Python 3.10+
Platform Windows
Encryption AES-256 (Fernet)
Key Derivation PBKDF2HMAC β€” SHA-256
RNG Engine secrets module (CSPRNG)
Network ❌ 100% Offline
External Dependencies 1 (cryptography)

πŸ’‘ Why This App Is Unique

Most password tools stop at generating a random string. This application is built around five integrated security modules that form a complete password security ecosystem:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         SECURITY LAYERS β€” PASSWORD SUITE & VAULT         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Layer 1 β”‚ Machine-Bound Device Identity Engine          β”‚
β”‚  Layer 2 β”‚ Hardware-Derived Cryptographic Key            β”‚
β”‚  Layer 3 β”‚ AES-256 Authenticated Encryption (Vault)      β”‚
β”‚  Layer 4 β”‚ CSPRNG Password Generator (Batch up to 100)   β”‚
β”‚  Layer 5 β”‚ Entropy Auditor with Penalty Scoring          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

⭐ Core Features

1. πŸ–₯️ Machine-Bound Device Identity

On every startup, the app silently computes a unique identity tied to the local machine. This identity is:

  • Never stored to disk in readable form
  • Automatically regenerated on each run
  • Displayed in your terminal only as a short anonymous ID

πŸ”’ The internal mechanism that generates this identity is intentionally not documented here for security reasons. It is visible in main.py for local review.


2. πŸ”’ Hardware-Bound AES-256 Encrypted Vault

The vault (vault.enc) is encrypted using a key that is mathematically derived from the machine's identity. This means:

  • βœ… The vault opens only on the machine it was created on
  • βœ… Copying vault.enc to another machine makes it permanently unreadable
  • βœ… Even the key file alone is not enough β€” the machine itself is part of the key

3. 🎲 CSPRNG Password Generator (Batch β€” Up to 100)

Generates cryptographically secure passwords using Python's secrets module (OS-level entropy):

  • πŸ”§ Configurable character sets β€” lowercase, uppercase, digits, symbols
  • πŸ“ Configurable length β€” minimum 4, default 18 characters
  • πŸ“¦ Batch mode β€” generate 1 to 100 passwords at once
  • πŸ”€ Guaranteed character class inclusion β€” always balanced
  • πŸƒ CSPRNG shuffle β€” eliminates positional bias
Character sets:
  Lowercase  :  a–z
  Uppercase  :  A–Z
  Digits     :  0–9
  Symbols    :  ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ; : , . < > ?

4. πŸ“Š Shannon Entropy & Security Auditor

Every password is evaluated using Shannon Entropy:

Entropy (bits) = Password Length Γ— logβ‚‚(Character Pool Size)

Penalties are applied for weak patterns:

Penalty Trigger Deduction
Common dictionary words detected High penalty
Consecutive repeated characters Moderate penalty

Rating Scale:

Score Rating
Very low entropy πŸ”΄ Very Weak
Low entropy 🟠 Weak
Moderate entropy 🟑 Moderate
High entropy 🟒 Strong
Very high entropy πŸ›‘οΈ Critical Grade

5. πŸ’‘ Smart Dual Password Upgrader

When a weak password is detected, the app offers two strong alternatives:

Option Type Best For
A Pure Random API keys, system accounts, DB passwords
B Memorable Hybrid Human-remembered accounts

Both suggestions are generated fresh every time using the CSPRNG engine and are only visible in your local terminal.


πŸ“¦ Requirements & Installation

System Requirements

Requirement Specification
Python Version 3.10+ recommended (3.8+ minimum)
Operating System Windows 10 / Windows 11
RAM < 20 MB
Disk Space < 5 MB (with dependencies)
Network ❌ Not required

Standard Library (No Installation Needed)

These modules are built into Python β€” no pip install required:

base64 Β Β·Β  hashlib Β Β·Β  math Β Β·Β  os Β Β·Β  secrets Β Β·Β  string Β Β·Β  subprocess Β Β·Β  sys Β Β·Β  typing

External Dependency

pip install cryptography

The cryptography package (by the Python Cryptographic Authority β€” PyCA) is the only external dependency. It provides AES-256 encryption and the key derivation function used by the vault.

Optional Package

pip install pywin32

Run the App

python main.py

πŸš€ How to Use

Startup

=================================================================
 πŸ” PASSWORD GENERATOR & DEVICE-LOCKED VAULT (Task 1)
 πŸ’» Device ID: [β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’]
=================================================================

 [1] Generate Secure Random Password(s) [Batch Up to 100]
 [2] Audit Password Score & Get Smart Strong Suggestions
 [3] Save & Encrypt Password to Vault (Auto Device Key)
 [4] Read Encrypted Vault (vault.enc)
 [5] Exit
-----------------------------------------------------------------
Select an option (1-5):

πŸ”’ The Device ID is unique to your machine and computed locally. It is never stored or transmitted.


Option 1 β€” Generate Secure Passwords

> Select: 1

How many passwords to generate? (1-100) [default 1]: 3
Enter length [default 18]: 20
Include uppercase? (Y/n): Y
Include digits? (Y/n): Y
Include symbols? (Y/n): Y

πŸ” Generated Password(s) [3]:
  01. β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’  | Score: β€’β€’/100 (β€’β€’β€’ bits)
  02. β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’  | Score: β€’β€’/100 (β€’β€’β€’ bits)
  03. β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’  | Score: β€’β€’/100 (β€’β€’β€’ bits)

Enter number to save to vault (or press Enter to skip): 1
βœ… Password #1 encrypted & saved to 'vault.enc' with Device Key!

πŸ”’ Passwords are shown only in your local terminal β€” never logged or transmitted.


Option 2 β€” Audit a Password

> Select: 2

Enter password to evaluate: <your-password>

πŸ“Š Current Score:  β€’β€’/100 | Entropy: β€’β€’.β€’β€’ bits
πŸ”΄ Current Rating: <Rating>

πŸ’‘ SMART SUGGESTED UPGRADES:
 1. Pure Random:      β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’
    🟒 Score:         β€’β€’/100 (β€’β€’β€’ bits)
 2. Memorable Hybrid: β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’
    🟒 Score:         β€’β€’/100 (β€’β€’β€’ bits)

Option 3 β€” Save & Encrypt to Vault

> Select: 3

Enter password to store: <your-password>

πŸ“Š Password Security Score: β€’β€’/100

⚠️  Weak password detected β€” upgrade suggestions available:
 Option [A] Pure Random:      β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’
 Option [B] Memorable Hybrid: β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’

Use suggestion? (a / b / N to keep original): a

βœ… Password encrypted & saved to 'vault.enc' with Device Key!

If the password scores below 80/100, the app gates saving and offers smarter alternatives.


Option 4 β€” Read the Vault

> Select: 4

πŸ”“ Decrypted Vault Contents:
β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’

πŸ”’ Vault contents are visible only in your local terminal session.

If accessed from a different machine:

❌ Access Error: Access Denied! Vault file or key belongs to a different computer.

πŸ“ File Structure

Task1 Password Generator/
β”‚
β”œβ”€β”€ main.py                  # Core application β€” all logic, all modules
β”œβ”€β”€ vault.enc                # Encrypted vault file (auto-created on first save)
β”œβ”€β”€ device_hardware.key      # Cryptographic binding file (auto-created, local only)
β”œβ”€β”€ device_master.key.dpapi  # Optional key backup (Windows, local only)
β”œβ”€β”€ README.MD                # This documentation
└── .gitignore               # Excludes sensitive files from git

⚠️ vault.enc and device_hardware.key are excluded from git via .gitignore. Never commit these files to any repository.


⚑ Efficiency & Performance

Operation Performance
App startup < 1 second
Single password generation < 1 ms
Batch of 100 passwords < 50 ms
Entropy scoring < 1 ms per password
Vault encrypt / decrypt ~50 ms
RAM usage < 20 MB
External packages 1 only
Network calls 0 β€” fully offline

πŸ’Ό Use Cases

Use Case Description
Personal Developer Secure generation and local storage of API keys, tokens, credentials
Corporate Workstation Machine-locked credentials that cannot leave the device
Security Training Live entropy scoring to teach teams what makes a password strong or weak
Air-Gapped Systems Fully offline β€” no cloud, no network, no data leakage risk
Bulk Provisioning Sysadmins can generate up to 100 unique passwords in seconds
Compliance Audits Entropy-based scoring aligns with NIST SP 800-63B password guidelines

❓ Frequently Asked Questions

Can I open the vault on a different machine?

No. The vault is strictly bound to the machine it was created on. Moving vault.enc to another device will result in an Access Denied error. This is the core security feature β€” by design.

What if I change or upgrade my hardware?

Major hardware changes may affect vault access. Always decrypt and back up your vault contents before any significant hardware changes.

Is the `secrets` module truly secure for passwords?

Yes. Python's secrets module uses the OS-level cryptographic random number generator β€” suitable for tokens, passwords, and keys. It is fundamentally different from the random module, which is not cryptographically secure.

Does the app store anything in plain text?

Never. Passwords exist as plaintext only in active memory during your session. Nothing is written to disk in readable form. No logs, no temp files.

Does it need an internet connection?

No. Every operation β€” identity computation, key derivation, password generation, encryption β€” happens entirely offline on your local machine.

Where can I review the internal implementation?

All logic is in main.py. The internal security mechanisms (fingerprinting, key derivation steps, word pools) are intentionally not documented in this public README. Review main.py locally for full implementation details.


βœ… Summary

  • πŸ”’ Vault is machine-locked β€” unreadable if moved to another device
  • 🎲 All passwords use OS-level CSPRNG β€” cryptographically unpredictable
  • πŸ” AES-256 authenticated encryption β€” detects any tampering
  • πŸ“Š Entropy scoring with penalty system β€” prevents weak password storage
  • πŸ’‘ Two upgrade options on every weak password β€” balances security and usability
  • πŸ“¦ One external dependency β€” minimal, audited, production-grade
  • 🌐 100% offline β€” no network, no cloud, no exposure

πŸ” Hardware-Bound Password Suite & Smart Vault

Auspify Technologies β€” Task 1 Submission | Developer: Roshan Siril Nadar

About

Hardware-bound Python password suite & vault using WMI device fingerprinting, PBKDF2HMAC, and AES-256 Fernet encryption to lock credentials strictly to local machine hardware. Includes entropy scoring

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages