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 :

Crédit image : waytolearnx.com

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


Geoffrey Sauvageot-Berland

Ingénieur diplômé par l’état en Informatique et Cybersécurité. Généraliste, à l'origine administrateur systèmes et réseaux, j’occupe actuellement un poste d’auditeur en sécurité offensive. J’apprécie également la programmation/automatisation. Fondateur du blog : "Le Guide du SecOps", anciennement "Le Guide du SysOps"