KeepMyPass
Über KeepMyPass
KeepMyPass ist ein in Python erstelltes Passwortverwaltungssystem mit MySQL-Integration und einer grafischen Benutzeroberfläche. Es wurde im June/July, 2020
als Informatikprojekt der Klasse XII (CBSE) entwickelt. Es enthält außerdem ein Event-Management- und ein Kontakt-Management-System.
Anerkennung und Zertifizierung
Dieses Projekt wurde teilweise mit Unterstützung meines Informatiklehrers der 12. Klasse durchgeführt. Es erfüllt alle Anforderungen des Informatikprojekts der Klasse XII, 2020–21, und deckt die folgenden Konzepte ausführlich ab:
- Handhabung von Binärdatendateien über Python
- MySQL-Datenbankverwaltung durch Python-MySQL-Integration mit
mysql.connector
- Erstellen grafischer Benutzeroberflächen mit
tkinter
Einige Funktionen der App
Informationsfunktion
Auf verschiedenen Bildschirmen stehen Hilfeschaltflächen zur Verfügung, die den Benutzer bei der Navigation durch die App unterstützen.
Funktion „Passwort vergessen“.
Wenn ein Benutzer sein MasterPassword vergisst, kann er mit dieser Funktion sein verlorenes Konto wiederherstellen.
Funktion zur Passwortgenerierung
Der Secure-Vault enthält einen Passwort-Generator, der (pseudo-)zufällige Passwörter generiert.*
(Pseudo-)Sicherheitsfunktionen
- Binärdateien enthalten gefälschte Datensätze.*
- Die in die Binärdatei geschriebenen Daten werden zweimal verschlüsselt.*
- Es kann sich jeweils nur ein Benutzer anmelden.
- Alle Daten werden in verschlüsselter Form in der Datenbank gespeichert und nur entschlüsselt, wenn der Benutzer sie sehen möchte.
- Die Schlüssel zur Verschlüsselung/Entschlüsselung sind für jeden Benutzer einzigartig.
Admin-Modus-Funktion
Mithilfe eines passwortgeschützten Admin-Modus kann eine Person alle Benutzer-Tresore gleichzeitig durchsuchen.* Die Suche kann verwendet werden, um bestimmte Datensätze oder alle Datensätze eines bestimmten Typs zu durchsuchen.
Fußnoten und Sicherheitsprobleme
- Das Projekt ist anfällig für unsichere Deserialisierung, da es das Python-Modul
pickle
verwendet. - Das Projekt erwähnt (an mehreren Stellen), dass die generierten Passwörter „sicher“ sind. Beachten Sie, dass die Passwörter jedoch pseudozufällig sind, obwohl ein Element der Passwortgenerierungsfunktion
os.urandom()
verwendet. - Die Admin-Modus-Funktion wurde dem Projekt nur hinzugefügt, um die von CBSE festgelegten Anforderungen zu erfüllen. Auf keinen Fall sollte die Funktion ausgenutzt werden. Ich als Entwickler verstehe vollkommen, dass es problematisch und unethisch ist, auf alle gespeicherten Daten zugreifen zu können und diese den Endbenutzern zugänglich zu machen.
- Die implementierte Verschlüsselungstechnik besteht ausschließlich aus verschiedenen Zeichenzuordnungen und ROT-Chiffren, dh es wurde im Projekt kein echter Verschlüsselungsalgorithmus verwendet.
- Die Aufnahme gefälschter Datensätze in die Binärdateien hat keinen wirklichen Einfluss auf die Sicherheit tatsächlicher Datensätze.
- Die zweimalige Verschlüsselung der Daten hat im Vergleich zur nur einmaligen Verschlüsselung keinen zusätzlichen Vorteil.
- Die Typhinweise wurden zu einem späteren Zeitpunkt allen Funktionen hinzugefügt.
-
user_checker.py
wurde nur als Back-End-Funktionsprüfer hinzugefügt. Es ist nicht für den Gebrauch bestimmt.
Bildnachweis
Alle im Projekt verwendeten Illustrationen stammen von LastPass und ich behaupte, dass ich mein Projekt mit diesen Illustrationen in keiner Weise für kommerzielle Zwecke verwenden kann und werde.
Laufen
Klonen Sie zum Ausführen das Repository auf Ihrem Gerät, navigieren Sie zum Ordner und führen Sie Folgendes aus:
Zukunftspläne
- Beheben Sie alle möglichen Sicherheitsprobleme und die Einbeziehung echter Verschlüsselungs-/Entschlüsselungsalgorithmen
- Benutzeroberfläche/Design verbessern
- Verwendung eines alternativen Pakets zur Verarbeitung von Binärdateien oder Implementierung einer alternativen Methode zum Speichern von Verschlüsselungs-/Entschlüsselungsschlüsseln
- Das Passwort für den Admin-Modus sollte nicht fest in der Datei codiert sein
- Verzweigen Sie das Projekt, wobei der Admin-Modus entfernt wird
- Machen Sie den Code modularer
- Bessere und professionellere Typhinweise