Application, mot de passe, gestion de mot de passe, sécurité, code de sécurité, pynthon
Les objectifs de ce TP sont :
- Coder une application sécuritaire de gestion de mots de passe ;
- Générer des mots de passe fort de manière aléatoire selon certains critères ;
- Générer une clé d'encryption symétrique qui servira à lire et décrypter les mots de passe stockés ;
- Utiliser les fonctions de hashing et la notion de "salt" pour ne pas stocker les mots de passe en clair mais bien le hash des mots de passe.
[...] Gestionnaire de mot de passe Précision Objectif Description général de l'application Implémentation CAS d'utilisation Grille de correction Précision Équipe de 2 max. Faites attention lorsque vous vous inspirez de code sur l'internet, si vous n'êtes pas capable de m'expliquer ce que vous avez copié . c'est du plagiat pur et la note de zéro sera donnée peu importe le reste du travail. Objectif Coder une application sécuritaire de gestion de mots de passe. [...]
[...] Utiliser les fonctions de hashing et la notion de "salt" pour ne pas stocker les mots de passe en clair mais bien le hash des mots de passe. Modules et structures Python qui vous seront utiles : https://docs.python.org/3/library/hashlib.html https://docs.python.org/3/library/hmac.html https://docs.python.org/3/library/stdtypes.html#bytes-objects [HYPERLINK: https://docs.python.org/3/library/stdtypes.html] (fromhex(), https://pypi.org/project/cryptography/ https://docs.python.org/3/library/json.html https://docs.python.org/3/library/string.html https://www.w3schools.com/python/python_dictionaries.asp https://www.w3schools.com/python/python_lists.asp https://www.w3schools.com/python/python_classes.asp https://www.w3schools.com/python/python_try_except.asp https://www.w3schools.com/python/python_file_handling.asp https://www.w3schools.com/python/python_file_open.asp https://www.w3schools.com/python/python_file_write.asp https://www.w3schools.com/python/python_file_remove.asp Description générale de l'application Interface à la ligne de commande Sauvegarde dans un fichier .json Doit obligatoirement utiliser les principes de base de la programmation orienté objet (OOP) avec le langage Python 3.X Implémentation 1ére application : gestionnaire_de_mot_de_passe.py Au premier lancement ou bien dans une option de menu : Création du fichier de base, vide "mdp.json" Création de la clé avec les classes du module Cryptography Stockage de la clé sur le disque dur dans un fichier "cle.cle", au format binaire Menu : Choix de lecture et récupération d'un mot de passe en fonction du site spécifié Lire le fichier de clé pour loader la clé Demander à l'utilisateur le nom d'un site Lire le fichier mdp.json Trouver le bon dictionnaire Décrypter le mot de passe grâce à la clé Afficher le mot de passe Ajout d'une nouvelle entrée (site:mdp) : Le mot de passe doit être généré de manière aléatoire : Doit contenir 16 caractères Au moins une lettre minuscule Au moins une lettre majuscule Au moins un caractère spécial parmis les suivants : ' Utiliser la clé symétrique pour crypter le mot de passe (classe Fernet) Demander le nom du site lié à ce mot de passe Créer un nouveau dictionnaire à partir de ces deux données (site, mdp). [...]
[...] CAS d'utilisation L'utilisateur lance son gestionnaire de mot de passe : Une clé est créée et sauvegardée en binaire sur le disque Si l'utilisateur choisit l'option il doit saisir le nom d'un site web: Un mot de passe est généré automatiquement puis encrypté et une nouvelle entrée est ajouté dans mdp.json L'utilisateur veut se connecter sur facebouette.com. Il lance son gestionnaire de mot de passe, recherche le mot de passe associé à facebouette.com, décrypte le mot de passe et ce mot de passe peut être copié/coller. On lance la 2e mini application (facebouette.com): Si l'utilisateur n'est PAS déjà inscrit, il choisit Inscription et fournit ses informations (notamment le mot de passe depuis le presse papier (ou copier coller manuellement). Si l'utilisateur EST déjà inscrit : on récupère le sel et le mot de passe haché. [...]
[...] L'utilisateur saisit son nom et son mot de passe, on calcule à nouveau le hash en utilisant le sel. SI le résultat est le même que le mot de passe haché dans la base de données de facebouette, on peut se connecter. Exemple de fichier des utilisateurs chez facebouette.com : Le mot de passe est haché avec sha256 (hashlib) et le sel est stocké au format hexadécimal. Dans ma solution, je n'ai que deux classes. [...]
[...] Après avoir exécuté l'application principale (tp02.py) et ensuite facebouette. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture