Aller au contenu

Sécurisation des Communications

Merci à Quentin CHAMUSSY, enseignant de l'académie de Lyon, pour la conception de certains des schémas de cette partie.

Lorsque deux personnes souhaitent échanger des messages privés, cet échange peut se dérouler dans plusieurs situations :

  1. Isolés dans une pièce
    échange isolé

  2. Observés dans une pièce échange observé

  3. Utiliser un intermédiaire pour transporter le message échange lointain

Dans la première situation, l’échange est forcément privé. Dans les deux autres situations, il leur faut chiffrer (crypter) le message pour qu’il soit incompréhensible aux personnes non autorisées qui entendraient et/ou intercepteraient ce message.

Définition

Pour chiffrer des informations, il faut :

  • un algorithme de chiffrement ;
  • une clef qui permet de crypter le message grâce à algorithme.

Généralement, cette clef est une suite de caractères ou un très grand nombre entier.

Chiffrement symétrique

Un algorithme de chiffrement symétrique utilise la même clef pour crypter ou décrypter le message.

Exemples de chiffrements symétriques

  • ROTn (généralisation du chiffre de César) ; César
  • Vigenere ;
  • XOR ;
  • AES (Advanced Encryption Standard).
    Ce dernier algorithme, très efficace, est le plus utilisé à l’heure actuelle.

Avantages :

Le chiffrement et le déchiffrement sont rapides et nécessitent peu de ressources.

Inconvénients :

Comment échanger la clef de manière sécurisée, en particulier lorsqu’il faut faire appel à un intermédiaire ?

Chiffrement asymétrique

Pour que le chiffrement symétrique soit sans faille, il faut donc que les deux correspondants se mettent d’accord (de manière « sécurisée ») sur la clef de chiffrement. Mais comment faire s’ils ne peuvent pas s’isoler ?

Le chiffrement asymétrique utilise deux clefs, l’une dite « privée » et l’autre dite « publique ». Un message crypté par la clef publique n’est alors lisible que par le propriétaire de la clef privée.

Inconvénients :

  • La création des clefs et le ()cryptage nécessitent des ressources.
  • Pour créer une communication à double sens, chaque correspondant doit créer son propre couple (clef privée ; clef publique).

Avantages :

  • La clef publique peut être divulguée sans problème.
  • Lorsque le canal de communication sécurisé par chiffrement asymétrique est créé, les correspondants peuvent s’échanger une clef de chiffrement symétrique.

Authentification de l’expéditeur

Avec un chiffrement asymétrique, l'échange de clé n'est plus un problème. Cependant, comme la clé de chiffrement est publique, n'importe qui peut envoyer un message chiffré. Il faut donc s'assurer de l'identité de l'émetteur du message.

Pour pallier à ce problème, il suffit de disposer d'un troisième intervenant dont on ne peut pas douter de l'identité. Ce tiers de confiance va garantir l'identité de l'émetteur des clés publiques utilisées.

C'est le principe qui gouverne les certificats utilisés sur le web par le protocole HTTPS. Les organismes privés ou publiques qui délivrent ces certificats sont reconnus par les autorités de contrôle de l’internet.

Exemple

Pour consulter les clefs publiques de ces organismes sur votre système d'exploitation avec le navigateur Firefox, choisir :

[Préférences] → [Vie privée et sécurité] → [Afficher les certificats]

HTTPS

Le protocole HTTPS est basé sur le protocole HTTP auquel on ajoute une couche supplémentaire, le protocole TLS, pour sécuriser les échanges :

  1. TLS établit une communication par chiffrement asymétrique et génère une clef de chiffrement symétrique : TLS

  2. HTTP utilise cette clef pour chiffrer la communication entre le client et le serveur. HTTP

Principe d'authentification durant la première phase

HTTP

  1. Le client dit « Bonjour » au serveur.
  2. Le serveur renvoie « Bonjour », accompagné de son certificat.
    Ce dernier contient la clef publique du serveur et la signature de l’organisme de certification.
  3. Le client vérifie l’authenticité auprès de l’organisme de certification.
  4. Le client envoie alors une clef de chiffrement symétrique cryptée avec la clef publique du serveur. Ce dernier la décrypte à l’aide de sa clef privée.