Introduction
Aujourd’hui, la sécurité des informations est une préoccupation majeure. Qu’il s’agisse de protéger nos communications personnelles, nos transactions bancaires ou nos données professionnelles, la cryptographie joue un rôle essentiel.
La cryptographie est une méthode de communication qui utilise les mathématiques pour protéger les messages et les informations transmis de l’expéditeur au destinataire. Un monde sans cryptographie, c’est un monde où tout le monde peut lire vos messages privés sur Instagram et où n’importe qui pourrait effectuer des virements bancaires à votre place. La cryptographie protège nos informations personnelles au quotidien, pour qu’elles ne puissent être lues ou modifiées par des personnes non autorisées.
1. Qu’est-ce que la cryptographie ?
Histoire de la cryptographie
👨🏫 Débutons un petit cours d’histoire.
Le premier « document » chiffré connu remonte à l’Antiquité. Il s’agit d’une tablette d’argile retrouvée en Irak, datant du XVIe siècle avant Jésus-Christ. Un potier y avait gravé sa recette secrète en supprimant certaines consonnes et en modifiant l’orthographe des mots pour dissimuler le contenu.
Les Grecs utilisaient des techniques reposant sur le changement de position des lettres dans le message, en utilisant un bâton de diamètre déterminé appelé scytale.
Une autre méthode, plus connue, a fait son apparition un peu plus tard. Le chiffrement de César est une méthode de chiffrement très simple qui consiste à décaler chaque lettre de l’alphabet d’un certain nombre de positions. Par exemple, avec un décalage de 3 positions, « A » devient « D », « B » devient « E », et ainsi de suite.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Exemple :
- Message original : « CHAT »
- Décalage de 3 : C → F, H → K, A → D, T → W
- Message chiffré : « FKDW »
Ainsi, le message « CHAT » est chiffré en « FKDW » avec un décalage de 3.
Le Moyen Âge a vu l’émergence de techniques plus sophistiquées, avec des substitutions polyalphabétiques comme le chiffre de Vigenère. Durant la Seconde Guerre mondiale, des dispositifs comme la machine Enigma ont révolutionné la cryptographie.
Avec l’avènement de l’ère numérique, les besoins en sécurité des communications ont conduit à la création de méthodes de cryptographie plus avancées et robustes. Les algorithmes modernes tels que RSA, AES et ECC sont devenus des éléments clés de la sécurité des systèmes informatique
Les différents types d’algorithmes de cryptographie
Un algorithme est une série d’instructions précises utilisées pour résoudre un problème ou effectuer une tâche.
Algorithme de Chiffrement
Un algorithme de chiffrement est une méthode mathématique utilisée pour transformer des données lisibles (texte en clair) en une forme illisible (texte chiffré) afin de protéger la confidentialité des informations.
Par exemple :
Hello, World!
Deviens après chiffrement :
g6K9v1Fh56/oAWhXZd9dUg==
Le texte chiffré ci-dessus est le résultat de l’application de l’algorithme AES avec une clé de chiffrement sur le texte original « Hello, World! ». Le texte chiffré semble être une séquence aléatoire de caractères, rendant le contenu illisible et protégé contre les accès non autorisés. Pour déchiffrer ce fichier et retrouver le message original, il est nécessaire de disposer de la clé de déchiffrement correcte.
Asymétrique
L’algorithme asymétrique utilise une paire de clés : une clé publique pour chiffrer les données et une clé privée pour les déchiffrer. Cette méthode assure que seuls les destinataires possédant la clé privée peuvent accéder aux informations.
1. Alice envoie un message à Bob en utilisant la clé publique de Bob.
Alice ---> [Chiffre avec clé publique de Bob] ---> Message chiffré
2. Le message est chiffré et envoyé à Bob.
Message chiffré ---> [En transit] ---> Bob
3. Bob utilise sa clé privée pour déchiffrer le message.
Bob ---> [Déchiffre avec clé privée de Bob] ---> Message déchiffré
Avantages et inconvénients
- Avantages : Sécurité élevée, idéale pour les échanges sécurisés.
- Inconvénients : Lenteur en raison de la complexité des calculs.
Symétrique
L’algorithme symétrique utilise la même clé pour chiffrer et déchiffrer les données. C’est plus rapide mais nécessite un échange sécurisé de la clé.
1. Alice et Bob partagent une clé secrète.
[Clé secrète] Alice <---------> Bob
2. Alice chiffre un message avec la clé et l'envoie à Bob.
Alice ---> [Chiffre avec clé secrète] ---> Message chiffré
3. Bob utilise la même clé pour déchiffrer le message.
Bob ---> [Déchiffre avec clé secrète] ---> Message déchiffré
Alice et Bob partagent le même secret (clé secrète). Cela leur permet de communiquer en toute sécurité, sachant que seul l’autre interlocuteur pourra lire le message.
Pour qu’un hacker puisse intercepter les messages, il doit découvrir le secret partagé, ce qui est loin d’être facile.
Avantages et inconvénients
- Avantages : Rapidité, efficace pour des volumes de données importants.
- Inconvénients : Gestion complexe des clés, risque si la clé est compromise.
Fonctions de hachage
Les fonctions de hachage transforment les données en une chaîne de caractères fixe (haché) de manière irréversible. Elles sont utilisées pour vérifier l’intégrité des données.
1. Alice crée un document "Contrat de vente" et génère son haché.
Document : "Contrat de vente" Haché (SHA-256) : e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
2. Alice envoie le document et le haché à Bob.
Alice ---> [Document + Haché] ---> Bob
3. Bob génère un haché du document reçu et le compare à celui d'Alice pour vérifier l'intégrité.
Bob ---> [Génère haché du document reçu] ---> Compare avec haché reçu Si les hachés correspondent, l'intégrité est vérifiée.
Dans l’exemple précédent, la fonction de hachage est utilisée pour vérifier l’intégrité du contrat de vente. Mais qu’est-ce que l’intégrité ? Brièvement, le principe d’intégrité permet de garantir que les données n’ont pas été altérées entre l’envoi et la réception.
Grâce au haché envoyé par Alice, Bob peut générer le haché du document reçu puis le comparer avec le haché reçu pour vérifier si le document est bien le même que celui envoyé par Alice. Un hacker pourrait se mettre entre Alice et Bob et modifier le fichier PDF, compromettant ainsi l’intégrité des données.
Les fonctions de hachage sont également utilisées pour stocker les mots de passe de manière sécurisée. Lorsque vous créez un compte sur un site internet, le site doit se souvenir de votre mot de passe pour vous permettre de vous reconnecter ultérieurement. Cependant, il est crucial que le site ne connaisse pas directement votre mot de passe et qu’un hacker ne puisse pas y accéder en cas de violation de sécurité.
C’est pour cette raison que le mots de passe est stocké sous sa forme haché dans les bases de données. ÒLe hachage est un processus irréversible, ce qui signifie qu’il est théoriquement impossible de retrouver le mot de passe original à partir du haché. Cependant, dans un futur article, nous examinerons des scénarios où cela peut ne pas toujours être le cas.
1. Création du compte :
Utilisateur -> Choisit un mot de passe -> "monMotDePasse"
2. Génération du haché :
motDePasse + sel -> Fonction de hachage -> Haché (SHA-256, bcrypt, etc.)
Exemple avec SHA-256 :
"monMotDePasse" + "selAleatoire" -> SHA-256 -> "5f4dcc3b5aa765d61d8327deb882cf99"
3. Stockage dans la base de données :
Stockage du sel et du haché :
Base de données ->
utilisateur_id | sel | haché
1 | selAleatoire | 5f4dcc3b5aa765d61d8327deb882cf99
4. Vérification du mot de passe (connexion) :
- L'utilisateur saisit "monMotDePasse"
- Le système récupère le sel stocké et génère un haché avec le mot de passe fourni
- Compare le haché généré avec le haché stocké :
"monMotDePasse" + "selAleatoire" -> SHA-256 -> "5f4dcc3b5aa765d61d8327deb882cf99"
- Si les hachés correspondent, l'utilisateur est authentifié
En utilisant les fonctions de hachage et en ajoutant des sels, le stockage des mots de passe devient beaucoup plus sécurisé. Même si la base de données est compromise, les attaquants ne peuvent pas facilement retrouver les mots de passe originaux.
Avantages et inconvénients
- Avantages : Vérification rapide de l’intégrité, sécurité des mots de passe.
- Inconvénients : Non réversible, vulnérable aux attaques par collision si le hachage est faible.
2. Applications et Utilisations
Sécurisation des communications
Protocoles SSL/TLS pour les sites web sécurisés (HTTPS)
Les protocoles SSL/TLS utilisent la cryptographie pour sécuriser les communications entre un navigateur et un serveur web. Lorsqu’un utilisateur accède à un site web sécurisé (HTTPS), un certificat SSL/TLS authentifie l’identité du site web. Ensuite, une connexion chiffrée est établie pour protéger les données échangées.
VPN (Virtual Private Network) pour des connexions sécurisées
Les VPN chiffrent tout le trafic internet entre votre appareil et le serveur VPN, assurant une navigation privée et sécurisée.
Authentification et gestion des identités
Signatures numériques et certificats numériques
Les signatures numériques, basées sur la cryptographie asymétrique, assurent l’authenticité et l’intégrité des documents électroniques. Les certificats numériques sont utilisés pour vérifier l’identité des utilisateurs et des appareils.
Applications dans les transactions en ligne et les communications sécurisées
La cryptographie protège les transactions en ligne, comme les paiements par carte bancaire, et sécurise les communications sur des plateformes de messagerie telles que WhatsApp et Signal.
Protection des données
Chiffrement des fichiers et des disques
Le chiffrement des fichiers et des disques protège les données stockées sur des appareils contre les accès non autorisés, même en cas de perte ou de vol.
Sur Windows, la solution de chiffrement la plus connue est Bitlocker. Bitlocker est un outil intégré aux versions professionnelles et ultérieures de Windows, conçu pour chiffrer les disques durs entiers. Il utilise l’algorithme de chiffrement AES (Advanced Encryption Standard) pour protéger les données contre les accès non autorisés.
Utilisation dans les services de messagerie sécurisée (WhatsApp, Signal)
Les services de messagerie sécurisée utilisent la cryptographie pour garantir que seuls les destinataires prévus peuvent lire les messages.
Conclusion
La cryptographie est un pilier fondamental de la sécurité numérique moderne. Les algorithmes tels que RSA, AES et ECC assurent la confidentialité, l’intégrité et l’authenticité des données dans divers contextes, des communications quotidiennes aux transactions en ligne. En comprenant ces technologies, chacun peut mieux apprécier l’importance de la cryptographie et sa contribution à un monde numérique sécurisé.
Si la cryptographie vous intéresse mais que vous n’y connaissez pas grand-chose, j’ai rédigé un article sur PicoCTF, une plateforme de type « Capture The Flag » avec des défis guidés sur la cybersécurité. Conçue pour les étudiants, c’est un excellent moyen de débuter.
Une autre plateforme très intéressante que je vous recommande est CryptoHack. CryptoHack propose des défis de cryptographie ludiques et éducatifs, permettant aux utilisateurs d’améliorer leurs compétences en cryptographie à travers une série d’énigmes et de jeux interactifs. C’est une ressource idéale pour ceux qui veulent approfondir leurs connaissances en cryptographie tout en s’amusant.