Cryptographie moderne (Chiffrement symétrique) – Théorie et mise en place

Publié par Geoffrey Sauvageot-Berland le

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


En savoir plus sur Le Guide Du SecOps

Subscribe to get the latest posts sent to your email.


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"

En savoir plus sur Le Guide Du SecOps

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Continuer la lecture