Skip to content

prcx-mg23/OKULT-version1-TerminalUI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OKULT — Gestionnaire de mots de passe

Version 1.0

OKULT est un gestionnaire de mots de passe en ligne de commande, écrit en Python. Il permet de générer, chiffrer et stocker des mots de passe de façon sécurisée pour chaque site ou service utilisé.


Fonctionnalités

  • Génération de mots de passe aléatoires et forts
  • Chiffrement des mots de passe avec une clé dérivée d'un mot de passe maître
  • Stockage des identifiants chiffrés dans un fichier JSON local

Structure du projet

OKULT-version1-TerminalUI/
├── main_app.py           # Point d'entrée principal
├── crypto_funct.py       # Fonctions de chiffrement / déchiffrement
├── generate_password.py  # Génération de mots de passe aléatoires
├── store_passwords.py    # Lecture et écriture dans login_data.json
├── login_data.json       # Stockage persistant des identifiants (chiffrés)
└── salt.bin              # Sel cryptographique (généré automatiquement)

Bibliothèques utilisées

cryptography

Bibliothèque Python de référence pour la cryptographie. Deux composants sont utilisés :

  • PBKDF2HMAC (Password-Based Key Derivation Function 2) : permet de dériver une clé cryptographique solide à partir du mot de passe maître de l'utilisateur. L'algorithme applique la fonction de hachage SHA-256 de façon répétée (390 000 itérations), ce qui rend les attaques par force brute très coûteuses. Un sel aléatoire de 128 bits est intégré dans la dérivation pour garantir l'unicité de la clé.

  • Fernet : schéma de chiffrement symétrique authentifié (AES-128-CBC + HMAC-SHA256). Il garantit à la fois la confidentialité (personne ne peut lire le mot de passe sans la clé) et l'intégrité (toute altération du message chiffré est détectée). Le format Fernet inclut un horodatage et un vecteur d'initialisation (IV) aléatoire dans chaque message chiffré.

secrets

Module de la bibliothèque standard Python, conçu pour la génération de valeurs aléatoires cryptographiquement sûres. Il est utilisé à la place de random car ce dernier est prévisible et ne doit jamais être utilisé pour générer des mots de passe ou des tokens de sécurité.

os

Module standard utilisé pour :

  • Générer le sel via os.urandom(), une source d'entropie sûre fournie par le système d'exploitation.
  • Vérifier l'existence de fichiers (os.path.exists).

json

Module standard utilisé pour la persistance des données : les identifiants chiffrés sont sérialisés et stockés dans login_data.json, et rechargés à chaque nouvelle sauvegarde.

base64

Module standard utilisé pour encoder la clé dérivée par PBKDF2 en format URL-safe Base64, format attendu par Fernet.

string

Module standard fournissant les ensembles de caractères (lettres, chiffres, ponctuation) utilisés pour construire le pool de caractères des mots de passe générés.


Utilisation

python main_app.py

Le programme demande :

  1. Le mot de passe maître (utilisé pour dériver la clé de chiffrement)
  2. Le nom du site concerné
  3. Le nom d'utilisateur

Un mot de passe de caractères est ensuite généré, chiffré, puis sauvegardé dans login_data.json.


Sécurité

  • Le mot de passe maître n'est jamais stocké.
  • Seuls les mots de passe chiffrés sont persistés.
  • Le sel (salt.bin) doit être conservé : sans lui, il est impossible de retrouver la clé et donc de déchiffrer les mots de passe.

OKULT v1 — projet personnel, usage local uniquement.

About

OKULT est un outils de gestion de mots de passe en ligne de commande. L'objectif est de centraliser, sécuriser et automatiser la gestion des identifiants tout en garantissant une confidentialité totale grâce à une architecture de chiffrement robuste.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages