Sécurisation des communications
Sources : https://www.cnil.fr/fr/comprendre-les-grands-principes-de-la-cryptologie-et-du-chiffrement
La sécurisation des communications peut être réalisée grâce à une science appelée cryptologie (du grec « science du secret »), qui réunit la cryptographie (« écriture secrète ») et la cryptanalyse (étude des attaques contre les mécanismes de cryptographie).
La sécurisation doit permettre d’assurer :
- la confidentialité du message échangé,
- son authenticité (qui a envoyé ce message ?),
- son intégrité (est-ce qu’il a été modifié ?).
Ces objectifs sont atteints grâce à 4 principales fonctions : le hachage avec ou sans clé, la signature numérique et le chiffrement.
Vocabulaire
Coder (ou encoder) : représenter de l’information par un ensemble de signes prédéfinis.
exemple : le codage binaire naturel pour encoder les nombres entiers
Décoder : interpréter un ensemble de signes pour extraire l’information qu’ils représentent
Coder et décoder sont des opérations pour lesquelles il n’y a pas de secret : les procédures de codage et de décodage sont connues de tous.
Chiffrer : rendre une suite de signes incompréhensible à l’aide d’une clé de chiffrement
Déchiffrer : retrouver la suite de signes originale à partir d’un message chiffré, en utilisant une clé de déchiffrement.
Décrypter : retrouver la suite de signes originale à partir d’un message chiffré, sans utiliser de clé de déchiffrement. La technique la plus simple (mais pas la plus rapide !) consiste à tester toutes les clefs de chiffrement possible : la technique de la force brute.
Cryptanalyse : ensemble des techniques utilisées pour décrypter un message. Une tentative de décryptage s’appelle une attaque.
- Attaque par force brute : application de l’algorithme de déchiffrement avec toutes les clefs possibles.
- Attaque statistique, par canal auxiliaire, …
On ne dit pas crypter mais chiffrer !
Chiffrement symétrique
On parle de chiffrement symétrique (ou chiffrement à clé symétrique) lorsqu’une même clé sert à chiffrer et déchiffrer un message.
Cette méthode de chiffrement fait appel à deux fonctions :
Fonction de chiffrement \(c(m,k)\)
-
- \(m\) : message en clair
- \(k\) : clé de chiffrement
Fonction de déchiffrement \(d(s,k)\)
-
- \(s\) : message chiffré
- \(k\) : clé de chiffrement
Une seule et même clé pour chiffre/déchiffrer ⇒ elle doit être connue des deux parties.
Code de César
Chiffrement par décalage : la clef de chiffrement/déchiffrement est un nombre entier. La lettre chiffrée est obtenu en décalant la lettre non chiffrée d’un certain nombre de rangs, dans l’ordre des lettres de l’alphabet :
Exemple de chiffrement avec les clés -4 et 10 :
Code XOR
Au lieu de réaliser un décalage de toute les lettres du message à chiffrer d’un nombre fixe de lettres, on réalise une opération ou exclusif (XOR) sur les codes (ascii, unicode, …) des lettres du message avec celle d’une clé (chaîne de caractères de taille quelconque).
Exemple de chiffrage avec la clé « info » :
Rappel : l’opérateur \(\oplus\) est réversible : \(a\oplus b=c \Rightarrow b\oplus c=a\) et \(c\oplus a=b\)
Algorithme AES
AES (Advanced Encryption Standard) est un des algorithmes de chiffrement symétrique les plus utilisés.
Il est très similaire au chiffrement XOR :
- une clé initiale est étendue (mais pas par simple répétition)
taille de la clé : 128, 192 ou 256 bits - le message et la clé sont mélangés (mais pas uniquement par l’opération \(\oplus\)), de façon réversible
À retenir :
Les algorithmes de dé/chiffrement symétriques sont sûrs et peu couteux.
Mais il suppose que les participants se soient échangé auparavant la clé symétrique.
Ils ne peuvent pas suffire pour obtenir une communication sécurisée.
Chiffrement asymétrique
Pour que deux participants à une communication puissent obtenir une clé symétrique commune, il existe plusieurs possibilités :
- soit ils se l’échangent par un canal de communication non sûr, ce qui présente un fort risque ;
- soit ils se rencontrent physiquement pour faire l’échange sur un support physique (papier, clé USB, …)
- soit ils utilisent une des techniques de cryptographie asymétrique …
Protocole d’échange de clés de Diffie-Hellman
Afin d’utiliser une méthode de chiffrement symétrique, deux participants doivent au préalable convenir d’une clé de chiffrement commune, via un canal de communication non sûr.
Le protocole repose sur une fonction de « mélange » \(M\) à deux variables entières telle que :
- si on connait \(M(x,y)\) et \(x\), alors on ne peut pas retrouver \(y\) (ou alors très difficilement)
- pour tous entiers \(x\), \(y\) et \(z\) : \(M(M(x,y),z)=M(M(z,x),y)\)
Par analogie, on peut comparer cette fonction à une opération de mélange de peinture. Le protocole peut alors être présenté ainsi :
Le seul inconvénient de cette méthode est qu’elle ne comprend pas l’authentification des participants. Si un attaquant joue le rôle d’homme du milieu, il peut facilement remplacer les clés échangées dans le but de connaitre la valeur de la clé secrète partagée.
Le système RSA
Le système de chiffrement asymétrique RSA est le plus couramment utilisé aujourd’hui.
Il a été proposé dans les années 1970 par 3 cryptologues : Ron Rivest, Adi Shamir et Len Adleman.
Il consiste en la création, pour chacun des deux participants, de deux clés (publique et privée), liées entre elles de telle sorte que le chiffrement d’un message par la clé publique, puis par la clé privé redonne le message original, et que l’opération inverse est vraie aussi.
Pour générer une paire de clés, on peut utiliser le logiciel PuTTYgen
Authentification des participants
Attaque de l’homme du milieu
Il ne suffit pas de chiffrer les messages échangés : si une personne malveillante parvient à se faire passer pour un des correspondants, elle peut intercepter les données, et même les modifier.
Certificats de tiers de confiance
Pour authentifier les serveurs lors des communications sur Internet, on leur demande de fournir un certificat numérique (ou certificat à clé publique).
Analogie : pour retirer un colis dans un bureau de poste ou point relais, on demande une pièce d’identité (carte d’identité, passeport, permis de conduire). Ce document permet d’identifier la personne qui se présente. Cela est possible, car le bureau de poste ou le point relais fait confiance au tiers qui a délivré cette pièce d’identité (l’État) et que cette pièce est réputée infalsifiable.
Les certificats numériques sont délivrés aux administrateurs de sites par des autorités de certification (Certificate Authority – CA) : des organismes habilités (entreprises spécialisées, associations à but non lucratifs, états). Pour Internet il sont au format X.509, un format de fichier binaire comprenant :
- l’identifiant de l’AC
- l’identifiant de l’entité certifiée
- la date de validité
- la clé publique de l’entité certifiée
- l’algorithme utilisé pour la signature du certificat
- la signature du certificat
- …
Protocole HTTPS
Afin d’envoyer à des sites de confiance des données sensibles (mot de passe, identité, santé, …), il faut utiliser une stratégie mettant en œuvre le protocole TLS (Transport Layer Security), utilisant les deux types de chiffrement :
- le chiffrement symétrique (AES) à l’aide d’une clé secrète
- le chiffrement asymétrique (RSA) pour l’échange en toute sécurité de cette clé secrète
HTTPS = HTTP + TLS
Ressources
Comment chiffrer ses email avec Thunderbird ?
Mon mot de passe est-il sûr ? (testez la robustesse de vos mots de passe)
Protection numérique : les bases
Connexion PuTTY SSH avec clés asymétriques