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

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 :

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

Related Posts

Reconstruction d’OS non chiffrés : Analyse post-exploitation

Reconstruction d’OS non chiffrés : Analyse post-exploitation

Exfiltrer des données depuis une session meterpreter (Post Exploitation)

Exfiltrer des données depuis une session meterpreter (Post Exploitation)

Reverse/Bind shell – Quésaco

Reverse/Bind shell – Quésaco

Analyser la sécurité de vos images docker avec Trivy (mais pas que !)

Analyser la sécurité de vos images docker avec Trivy (mais pas que !)