GardezMonPass
À propos de KeepMyPass
KeepMyPass est un système de gestion de mots de passe construit en Python utilisant l'intégration MySQL avec une interface utilisateur graphique. Il a été développé en June/July, 2020
en tant que projet informatique de niveau XII (CBSE). Il contient également un système de gestion d'événements et un système de gestion de contacts.
Reconnaissance et certification
Ce projet a été réalisé en partie avec l'aide de mon professeur d'informatique de XIIe année. Il répond à toutes les exigences du projet d'informatique de niveau XII, 2020-21, et couvre les concepts suivants de manière détaillée :
- Gestion des fichiers de données binaires via Python
- Gestion de base de données MySQL via l'intégration Python-MySQL à l'aide de
mysql.connector
- Création d'interfaces utilisateur graphiques à l'aide de
tkinter
Certaines fonctionnalités de l'application
Fonction d'information
Des boutons d'aide sont fournis sur différents écrans pour aider l'utilisateur à naviguer dans l'application.
Fonctionnalité de mot de passe oublié
Si un utilisateur oublie son mot de passe principal, il peut récupérer son compte perdu grâce à cette fonctionnalité.
Fonctionnalité de génération de mot de passe
Le Secure-Vault contient un générateur de mots de passe qui génère des mots de passe (pseudo) aléatoires.*
(Pseudo) Fonctionnalités de sécurité
- Les fichiers binaires incluent de faux enregistrements de données.*
- Les données écrites dans le fichier binaire sont cryptées deux fois.*
- Un seul utilisateur peut se connecter à la fois.
- Toutes les données sont stockées dans la base de données sous un format crypté et ne sont décryptées que si l'utilisateur souhaite les voir.
- Les clés de cryptage/déchiffrement sont uniques pour chaque Utilisateur.
Fonctionnalité du mode administrateur
En utilisant un mode administrateur protégé par mot de passe, une personne peut effectuer une recherche dans tous les coffres-forts d'utilisateurs à la fois.* La recherche peut être utilisée pour rechercher des enregistrements spécifiques ou tous les enregistrements d'un type particulier.
Notes de bas de page et problèmes de sécurité
- Le projet est vulnérable à la désérialisation non sécurisée car il utilise le module Python
pickle
. - Le projet mentionne (à plusieurs endroits) que les mots de passe générés sont « sécurisés ». Notez que les mots de passe sont cependant pseudo-aléatoires , bien qu'un élément de la fonction de génération de mot de passe utilise
os.urandom()
. - La fonctionnalité Admin-Mode a uniquement été ajoutée au projet pour répondre aux exigences définies par CBSE. Cette fonctionnalité ne doit en aucun cas être exploitée. Moi, le développeur, je comprends parfaitement que pouvoir accéder à toutes les données stockées et fournir leur accès aux utilisateurs finaux est problématique et contraire à l'éthique .
- La technique de chiffrement mise en œuvre comprend uniquement différents mappages de caractères et chiffrements ROT, c'est-à-dire qu'aucun véritable algorithme de chiffrement n'a été utilisé dans le projet.
- L'inclusion de faux enregistrements dans les fichiers binaires n'affecte pas vraiment la sécurité des enregistrements de données réels.
- Le chiffrement des données deux fois ne présente aucun avantage supplémentaire par rapport au chiffrement une seule fois.
- Les indices de type ont été ajoutés à toutes les fonctions ultérieurement.
-
user_checker.py
a uniquement été ajouté en tant que vérificateur de fonctionnalités back-end. Il n’est pas destiné à être utilisé.
Crédits d’illustration
Toutes les illustrations utilisées dans le projet proviennent de LastPass et j'affirme que je ne peux et n'utiliserai en aucun cas mon projet à des fins commerciales avec ces illustrations.
Courir
Pour exécuter, clonez le référentiel sur votre appareil, accédez au dossier et exécutez :
Projets futurs
- Corrigez tous les problèmes de sécurité possibles et impliquez de véritables algorithmes de cryptage/déchiffrement
- Améliorer l'interface utilisateur/la conception
- Utilisation d'un package alternatif pour gérer les fichiers binaires ou mise en œuvre d'une méthode alternative pour stocker les clés de cryptage/déchiffrement
- Le mot de passe du mode administrateur ne doit pas être codé en dur dans le fichier.
- Branchez le projet, dans lequel le mode administrateur sera supprimé
- Rendre le code plus modulaire
- Des indications de type meilleures et plus professionnelles