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.

 

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 :

Chiffrement de César
Déchiffrer le message suivant, sachant que la clef de chiffrement est 11.

LFGPCRYP

Décrypter maintenant le message ci-dessous, en utilisant la force brute !

LJMXXSVW

 

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\)

 

Chiffrement XOR
Déchiffrer le message suivant (caractères ascii au format hexadécimal), sachant que la clef de chiffrement est « NSI ».

1D 32 20 20 27 69 00 36 2A 3A 32 20 3C 36

Table des caractères ASCII
Table du code ASCII normalisé B6 0 0 0 0 1 1 1 1
B5 0 0 1 1 0 0 1 1
B4 0 1 0 1 0 1 0 1
 

B3

 

B2

 

B1

 

B0

Poids fort

Poids faible

$0 $1 $2 $3 $4 $5 $6 $7
0 0 0 0 $0 NUL DLE SP 0 @ P ` p
0 0 0 1 $1 SOH DC1 ! 1 A Q a q
0 0 1 0 $2 STX DC2 «  2 B R b r
0 0 1 1 $3 ETX DC3 # 3 C S c s
0 1 0 0 $4 EOT DC4 $ 4 D T d t
0 1 0 1 $5 ENQ NAK % 5 E U e u
0 1 1 0 $6 ACK SYN & 6 F V f v
0 1 1 1 $7 BEL ETB 7 G W g w
1 0 0 0 $8 BS CAN ( 8 H X h x
1 0 0 1 $9 HT EM ) 9 I Y i y
1 0 1 0 $A LF SUB * : J Z j z
1 0 1 1 $B VT ESC + ; K [ k {
1 1 0 0 $C FF FS , < L \ l |
1 1 0 1 $D CR GS = M ] m }
1 1 1 0 $E SO RS . > N ^ n ~
1 1 1 1 $F SI US / ? O __ o DEL

 

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.

Méthodes possibles pour se placer en homme du milieu
  • l’imposture ARP (ARP Spoofing) : si l’un des interlocuteurs et l’attaquant se trouvent sur le même réseau local, il est possible, voire relativement aisé, pour l’attaquant de forcer les communications à transiter par son ordinateur en se faisant passer pour un « relais » (routeur, passerelle) indispensable. Il est alors assez simple de modifier ces communications ;
  • l’empoisonnement DNS (DNS Poisoning) : l’attaquant altère le ou les serveur(s) DNS des parties de façon à rediriger vers lui leurs communications sans qu’elles s’en aperçoivent ;
  • l’analyse de trafic afin de visualiser d’éventuelles transmissions non chiffrées ;
  • le déni de service : l’attaquant peut par exemple bloquer toutes les communications avant d’attaquer un parti. L’ordinateur ne peut donc plus répondre et l’attaquant a la possibilité de prendre sa place.

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
Lecture d'un certificat
À l’aide de Firefox, accéder à votre site web préféré (https://info.blaisepascal.fr). Afficher son certificat en cliquant sur … et en suivant les liens….

Identifier dans ce certificat :

  • L’autorité de certification
  • Sa date d'(expiration

 

 

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

Sécuriser un serveur

Connexion PuTTY SSH avec clés asymétriques

 

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *