Outils de déchiffrement pour les données chiffrées par Trans-Cryption utilisant RSA + AES.
- Vue d'ensemble
- Architecture du système
- Installation commune
- Outil 1 : Déchiffrement simple (decrypt.py)
- Outil 2 : Processeur d'emails (process_encrypted_emails.py)
- Sécurité
- Automatisation
- Dépannage
Ce projet propose deux outils complémentaires pour travailler avec des données chiffrées via le système hybride RSA + AES :
- decrypt.py - Outil de base pour déchiffrer directement des données chiffrées
- process_encrypted_emails.py - Outil avancé pour automatiser la récupération et le déchiffrement d'emails contenant des données chiffrées
Ces outils sont particulièrement adaptés pour traiter les soumissions de formulaires web sécurisés configurés avec la solution Trans-Cryption.
+---------------------+ +-----------------------+
| Formulaire web | | Serveur email |
| (Trans-Cryption) |------->| (Gmail, etc.) |
+---------------------+ +-----------------------+
| |
| Chiffrement RSA+AES | Email avec données chiffrées
v v
+---------------------+ +-----------------------+
| Email chiffré | | process_encrypted |
| (encrypted_data |------->| _emails.py |
| + encrypted_key) | | (Récupération IMAP) |
+---------------------+ +-----------------------+
|
| Extraction des données
v
+-----------------------+
| decrypt.py |
| (Déchiffrement |
| RSA + AES) |
+-----------------------+
|
| Données déchiffrées
v
+-----------------------+
| Fichiers de sortie |
| (.json ou .txt dans |
| le dossier output) |
+-----------------------+
-
Chiffrement initial : Le formulaire web Trans-Cryption chiffre les données utilisateur avec AES, puis chiffre la clé AES avec RSA (clé publique).
-
Transmission par email : Les données chiffrées sont envoyées par email avec deux éléments :
encrypted_data: Données du formulaire chiffrées avec AESencrypted_key: Clé AES chiffrée avec RSA
-
Récupération des emails :
process_encrypted_emails.pyse connecte à votre serveur de messagerie via IMAP et extrait les emails contenant des données chiffrées. -
Déchiffrement : Les données extraites sont traitées par
decrypt.pyqui :- Déchiffre la clé AES à l'aide de votre clé privée RSA
- Utilise cette clé AES pour déchiffrer les données du formulaire
-
Résultat final : Les données déchiffrées sont sauvegardées sous forme de fichiers JSON ou texte dans le dossier de sortie.
- Python 3.6 ou plus récent
- Bibliothèques requises :
- cryptography>=38.0.0
Clonez le dépôt et installez les dépendances :
git clone https://github.com/votre-username/trans-decryption.git
cd trans-decryption
pip install -r requirements.txtCet outil permet de déchiffrer directement des données chiffrées avec le système hybride RSA + AES.
Commande de base :
python decrypt.py --data "données_chiffrées" --key "clé_AES_chiffrée" --private-key "chemin_vers_clé_privée"| Option | Raccourci | Description |
|---|---|---|
--data |
-d |
Données chiffrées (sous forme de chaîne ou chemin vers un fichier) |
--key |
-k |
Clé AES chiffrée avec RSA (sous forme de chaîne ou chemin vers un fichier) |
--private-key |
-p |
Chemin vers le fichier de clé privée RSA |
--debug |
-v |
Active le mode verbose pour le débogage |
--output |
-o |
Fichier de sortie (optionnel) |
Déchiffrer des données directement depuis la ligne de commande :
python decrypt.py -d "Salted__xyz123..." -k "ABC123..." -p ./private.pemDéchiffrer des données à partir de fichiers :
python decrypt.py -d ./data.txt -k ./key.txt -p ./private.pem -o results.jsonCet outil vous permet d'automatiser la récupération et le déchiffrement des emails contenant des données chiffrées.
Gmail requiert quelques étapes spécifiques pour l'authentification :
-
Activer l'accès IMAP dans vos paramètres Gmail :
- Connectez-vous à votre compte Gmail
- Cliquez sur l'icône d'engrenage (paramètres) en haut à droite
- Sélectionnez "Voir tous les paramètres"
- Cliquez sur l'onglet "Transfert et POP/IMAP"
- Activez "Accès IMAP"
- Enregistrez les modifications
-
Créer un mot de passe d'application (nécessaire si vous utilisez l'authentification à deux facteurs) :
- Allez dans votre compte Google
- Sélectionnez "Sécurité"
- Dans la section "Connexion à Google", activez "Validation en deux étapes" si ce n'est pas déjà fait
- Retournez à la page Sécurité
- Sous "Validation en deux étapes", cliquez sur "Mots de passe des applications"
- Sélectionnez "Autre (nom personnalisé)" dans le menu déroulant
- Nommez l'application (ex : "Trans-Decryption")
- Cliquez sur "Générer"
- Copiez le mot de passe de 16 caractères généré (à utiliser avec le script)
-
Autoriser les applications moins sécurisées (si vous n'utilisez pas l'authentification à deux facteurs) :
- Allez dans les paramètres de sécurité
- Activez "Autoriser les applications moins sécurisées"
Pour afficher tous les dossiers/labels disponibles dans votre compte email :
python process_encrypted_emails.py --server imap.gmail.com --email votre@gmail.com --password "votre-mot-de-passe-d-application" --private-key ./private.pem --list-foldersPour récupérer et déchiffrer les emails non lus dans la boîte de réception :
python process_encrypted_emails.py --server imap.gmail.com --email votre@gmail.com --password "votre-mot-de-passe-d-application" --private-key ./private.pem| Option | Raccourci | Description |
|---|---|---|
--server |
-s |
Serveur IMAP (ex: imap.gmail.com) |
--email |
-e |
Adresse email |
--password |
-p |
Mot de passe ou mot de passe d'application |
--private-key |
-k |
Chemin vers le fichier de clé privée RSA |
--folder |
-f |
Dossier à traiter (par défaut: INBOX) |
--list-folders |
Lister tous les dossiers/labels disponibles | |
--limit |
-l |
Nombre maximum d'emails à traiter (par défaut: tous) |
--all |
-a |
Traiter tous les emails (pas seulement les non lus) |
--mark-read |
-m |
Marquer les emails traités comme lus |
--output-dir |
-o |
Dossier de sortie pour les fichiers déchiffrés (par défaut: ./output) |
--verbose |
-v |
Active le mode verbeux |
python process_encrypted_emails.py --server imap.gmail.com --email votre@gmail.com --password "votre-mot-de-passe" --private-key ./private.pem --folder "[Gmail]/All Mail" --allpython process_encrypted_emails.py --server imap.gmail.com --email votre@gmail.com --password "votre-mot-de-passe" --private-key ./private.pem --limit 5 --mark-readpython process_encrypted_emails.py --server imap.gmail.com --email votre@gmail.com --password "votre-mot-de-passe" --private-key ./private.pem --verbose --output-dir ./messages_dechiffres- Ne stockez pas votre mot de passe dans des scripts ou fichiers non chiffrés
- Envisagez de stocker les informations d'authentification dans des variables d'environnement
- Assurez-vous que votre clé privée RSA est stockée de manière sécurisée (permissions restreintes)
- Les données déchiffrées sont potentiellement sensibles, protégez également les fichiers de sortie
Pour automatiser le traitement régulier des emails, vous pouvez configurer une tâche cron (Linux/Mac) ou une tâche planifiée (Windows).
Exemple de configuration cron pour exécuter le script toutes les heures :
0 * * * * cd /chemin/vers/trans-decryption && python process_encrypted_emails.py --server imap.gmail.com --email votre@gmail.com --password "votre-mot-de-passe" --private-key ./private.pem --mark-read
- Vérifiez que vous utilisez bien un "mot de passe d'application" si vous avez activé l'authentification à deux facteurs
- Assurez-vous que l'accès IMAP est activé dans vos paramètres Gmail
- Si vous n'utilisez pas l'authentification à deux facteurs, vérifiez que vous avez autorisé l'accès aux applications moins sécurisées
- Vérifiez que vous cherchez dans le bon dossier (utilisez
--list-folderspour voir tous les dossiers) - Assurez-vous que les emails contiennent bien les champs "encrypted_data" et "encrypted_key"
- Utilisez l'option
--allpour traiter également les emails déjà lus - Activez le mode verbeux (
--verbose) pour plus d'informations sur le traitement