Skip to content

Lif28/PyPass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PyPass – Secure E2EE Password Manager with USB 2FA & WebDAV Sync

PyPass is an open-source password manager that implements end-to-end encryption (E2EE) and two-factor authentication (2FA) to ensure the highest security for your sensitive data. This tool is designed to provide a secure, reliable, and easy-to-use solution for password management.


🔒 Security

End-to-End Encryption (E2EE)

PyPass Manager uses the cryptography.fernet library to encrypt data locally before it is saved or synchronized. This means:

  • Only you can access your data, as encryption happens on your device.
  • Data is protected even during synchronization via WebDAV.

Two-Factor Authentication (2FA)

  • The master key is stored on an external USB drive, ensuring that only someone with physical access to the USB can access the encrypted data.
  • The master key is required to encrypt and decrypt data, adding an extra layer of security.
  • Without the USB key you can't access your logins even if their downloaded on your computer.

Secure Password Generation

  • Generated passwords include a combination of uppercase letters, lowercase letters, numbers, and symbols.
  • Password generation happens locally on your device, ensuring that passwords are never transmitted in plaintext.

📋 Features

  • Secure Password Generation: Generates complex and secure passwords.
  • End-to-End Encryption: All passwords are encrypted before being saved or synchronized.
  • WebDAV Synchronization: Syncs encrypted data with a WebDAV server.
  • Two-Factor Authentication (2FA): Additional protection for accessing passwords and logins.
  • QR Codes: Generates QR codes for secure sharing of information.
  • Intuitive User Interface: Developed with nicegui for a simple and modern user experience.

📦 Libraries Used

  • nicegui: Framework for creating interactive web user interfaces.
  • qrcode: Library for generating QR codes.
  • cryptography: Library for encrypting and decrypting data, using secure algorithms like Fernet (AES in CBC mode with HMAC).
  • webdav3: Client for synchronizing with WebDAV servers.
  • pyperclip: Library for managing the system clipboard.
  • os, json, base64, string, random, ctypes: System libraries for file management, random data generation, and secure memory manipulation.

✨ Strengths

  • Advanced Security: Implementation of end-to-end encryption and two-factor authentication (2FA).
  • Portability: Ability to synchronize encrypted data via WebDAV (Nextcloud).
  • Intuitive User Interface: Uses nicegui for a simple and modern user experience.
  • Robust Password Generation: Generates secure and complex passwords that comply with security standards.

🔧 How to use PyPass (Windows Only)

STEP 1 - Installing the dependencies:

  • Install python from the official website: https://www.python.org/downloads/
  • Install the libraries: pip install nicegui qrcode cryptography webdav3 pyperclip
  • Install pyinstaller: pip install pyinstaller
  • Create a Nextcloud account at https://kai.nl.tab.digital/apps/registration/. You don’t need to add or use it for anything else — Nextcloud is only used to securely and encrypt your stored logins. Just make sure to remember your Nextcloud credentials.

STEP 2 - Installing PyPass & Setup:

  • Download the most recent version of PyPass
  • Open a terminal inside the folder PyPass.
  • Type pyinstaller --noconfirm --onedir --windowed --icon "PyPass.ico" --name "PyPass" --clean --add-data "####\site-packages\nicegui;nicegui/" --add-data "connect.py;." --exclude-module "PyQt6" --exclude-module "PySide6" "main.py" (replace #### with the directory of nicegui)
  • Insert your USB drive into the computer, create a folder named PyPass, and inside it add a file called masterkey.key. This file will be replaced automatically, so you can leave it empty or write anything you like inside.

STEP 3 - Using PyPass:

  1. Open PyPass.


image
  1. Enter your nextcloud credentials.


image
  1. Start adding your logins (you can adjust the lenght of the password).


image

Functionalities

  1. You can see your logins by clicking the Personal button.


image
  1. You can change the token by clicking the Token button. Make sure to always keep a copy of both the new and old tokens on another USB drive.


image
  1. Copy, Share and see your password.


image

image