Retour aux projets
Projet de stage — 1ʳᵉ année BTS SIO SLAM

Coffre-fort de mots de passe sécurisé

Application desktop sécurisée développée en Python. Elle permet de stocker, gérer et protéger des mots de passe de façon chiffrée localement. Chaque utilisateur a un compte protégé par un mot de passe maître. Les données sont chiffrées avec une clé dérivée du mot de passe maître, assurant la confidentialité.

  • Python
  • Chiffrement symétrique
  • Fichier chiffré vault.enc
  • Architecture modulaire

Contexte du projet

Projet réalisé pendant mon stage de première année de BTS SIO option SLAM. L'objectif était de fournir un outil interne permettant de stocker les accès (sites, comptes techniques, outils) de façon plus sécurisée qu'un fichier texte ou un tableur partagé.

L'application fonctionne entièrement en local sur le poste de l'utilisateur et repose sur un mot de passe maître pour déverrouiller le coffre-fort.

Objectifs

  • Remplacer les fichiers Excel / blocs-notes par un outil dédié.
  • Protéger les mots de passe par chiffrement fort côté poste client.
  • Proposer une interface simple et accessible.
  • Faciliter la recherche et la mise à jour des identifiants.
Écran de connexion du coffre-fort

Écran de connexion : création de compte ou connexion avec un mot de passe maître.


Fonctionnalités principales

  • Création de compte avec mot de passe maître et confirmation
  • Connexion sécurisée avec verrouillage après 5 tentatives échouées
  • Gestion du coffre : ajout, modification, suppression d'entrées
  • Catégorisation des mots de passe (Perso, Travail, Banque…)
  • Générateur de mot de passe fort intégré (lettres, chiffres, symboles)
  • Recherche instantanée dans la liste par site, login ou catégorie
  • Copie rapide du mot de passe dans le presse-papiers
  • Déconnexion sécurisée avec effacement des données en mémoire
  • Stockage local chiffré dans vault.enc
Interface principale du coffre-fort

Interface principale : tableau des mots de passe avec recherche, génération et actions rapides.


Partie technique

Prérequis
  • Python 3.8 ou supérieur
  • Tkinter (inclus avec Python)
  • Packages : bcrypt, cryptography
Installation des dépendances
pip install bcrypt cryptography
Architecture
  • main.py : interface Tkinter, logique métier et gestion des utilisateurs
  • crypto_utils.py : dérivation de clé PBKDF2 + chiffrement Fernet
  • salt.bin : sel aléatoire pour dériver la clé maître
  • vault.enc : contenu du coffre chiffré en AES
Sécurité
  • Clé AES 256 bits dérivée via PBKDF2-HMAC-SHA256 (100 000 itérations)
  • Chiffrement symétrique Fernet (AES-128-CBC + HMAC)
  • Aucune donnée en clair sur le disque
  • Mot de passe maître hashé avec bcrypt

Compétences & apports

  • Conception et développement d'une interface graphique desktop avec Tkinter.
  • Mise en œuvre de bonnes pratiques de chiffrement côté client (PBKDF2, Fernet, bcrypt).
  • Organisation d'un projet Python en modules réutilisables (main.py / crypto_utils.py).
  • Gestion complète d'un projet de A à Z : besoin, développement, tests.
  • Sensibilisation à la sécurité des données sensibles en entreprise.

Ce projet m'a permis de faire le lien entre la programmation Python vue en cours et des problématiques concrètes de sécurité des mots de passe en entreprise.

Présentation de l'entreprise

Découvrez la présentation complète de l'entreprise où j'ai effectué mon stage.