Enterprise-Grade Password Security Application β Auspify Technologies Internship Submission (Task 1)
Developer: Roshan Siril Nadar Β |Β Version: 1.0 Β |Β Language: Python 3.10+
- Overview
- Why This App Is Unique
- Core Features
- Requirements & Installation
- How to Use
- File Structure
- Efficiency & Performance
- Use Cases
- FAQ
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) |
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 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
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.pyfor local review.
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.encto another machine makes it permanently unreadable - β Even the key file alone is not enough β the machine itself is part of the key
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 : ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ; : , . < > ?
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 |
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.
| 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 |
These modules are built into Python β no pip install required:
base64 Β Β·Β hashlib Β Β·Β math Β Β·Β os Β Β·Β secrets Β Β·Β string Β Β·Β subprocess Β Β·Β sys Β Β·Β typing
pip install cryptographyThe 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.
pip install pywin32python main.py=================================================================
π 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.
> 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.
> 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)
> 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.
> 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.
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.encanddevice_hardware.keyare excluded from git via.gitignore. Never commit these files to any repository.
| 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 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 |
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.
- π 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