Cryptographie moderne (Chiffrement symétrique) – Théorie et mise en place
Le chiffrement symétrique, appelé aussi chiffrement conventionnel, est basé sur des fonctions mathématiques réversibles. Il repose sur un principe de clé unique pour chiffrer et déchiffrer.
Cette clé possède plusieurs appellations :
- clé partagée ou clé secrète
Le chiffrement symétrique se déroule en 5 étapes principales :
- (Génération) Définition de la clé secrète par X.
- Chiffrement du message par X avec la clé secrète.
- Envoi de cette clé secrète à Y.
- Envoi du message chiffré à Y.
- Déchiffrement du message de X avec la clé secrète reçu auparavant.
Schéma explicatif
Il existe deux types d’algorithmes de chiffrement :
- Le chiffrement par flux
- Le chiffrement par bloc
Différences entre les deux :
Avantages / Inconvénients
Avantages
- Le chiffrement/déchiffrement est très rapide, les algorithmes de chiffrement symétrique sont généralement beaucoup moins complexes que les algorithmes de chiffrement asymétrique.
- Utilise peu de ressources systèmes, toujours dans le même principe d’algorithme moins complexe
Inconvénients
- Le chiffrement symétrique n’assure que la confidentialité des données, contrairement au chiffrement asymétrique que nous aborderons juste après et qui permet d’assurer des principes de sécurité supplémentaire.
- Une clé symétrique correspond à un échange entre 2 personnes, pour communiquer avec d’autres personnes il faudra une autre clé symétrique.
- Soit un grand nombre de clé selon le nombre de personnes avec qui on communique
- L’utilisation d’une clé unique présente un problème :
- Communiquer la clé de manière sûre à la personne avec laquelle on souhaite dialoguer.
- Il est nécessaire de garantir la confidentialité de cette clé. Les échanges qui suivront reposent sur celle-ci. En d’autres termes, si une tierce personne accède à la clé, elle pourra lire, modifier, altérer tous les échanges qui s’effectueront entre les 2 protagonistes de départ.
Démonstration
Chiffrement
Dans cette section, nous allons voir comment réaliser à l’aide de la bibliothèque openssl, le chiffrement / déchiffrement d’un fichier nommé file.clear
.
Pour Plus d’informations sur les paramètres utilisés dans cette commande :
-pbkdf2 https://fr.wikipedia.org/wiki/PBKDF2
-salt : https://fr.wikipedia.org/wiki/Salage_(cryptographie)
cd /tmp
nano file.clear
# Bonjour le monde
openssl aes-256-cbc -pbkdf2 -e -salt -in file.clear -out /tmp/file.encrypted
# entrez un mot de passe
# entrez de nouveau votre mot de passe
Votre fichier a normalement bien été généré. Il se situe dans /tmp/ avec le nom file.encrypted.
Déchiffrement
openssl aes-256-cbc -pbkdf2 -d -in /tmp/file.encrypted -out /tmp/file.decrypted
# Entrez le mot de passe
cat /tmp/file.decrypted
Voilà, vous venez de voir comment réaliser un processus de chiffrement en partant d’un fichier « en clair » vers un fichier crypté.
++
Brlndtech
En savoir plus sur LGDS • Le Guide Du SecOps
Subscribe to get the latest posts sent to your email.