Sécurisation pour diverses applications

Ce document présente les principes fondamentaux de la sécurisation des communications informatiques à l'aide des certificats SSL, ainsi que leurs applications variées. Il s'adresse aux étudiants et professionnels souhaitant comprendre comment SSL protège les échanges de données sur Internet et au-delà, notamment dans les protocoles et services divers. Qu'est-ce que SSL et à quoi sert-il ?

D'après le document Sécurisation pour diverses applications

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Sécurisation pour diverses applications

Document source

Ce document présente les principes fondamentaux de la sécurisation des communications informatiques à l'aide des certificats SSL, ainsi que leurs applications variées. Il s'adresse aux étudiants et professionnels souhaitant comprendre comment SSL protège les échanges de données sur Internet et au-delà, notamment dans les protocoles et services divers.

Qu'est-ce que SSL et à quoi sert-il ?

SSL signifie Secure Socket Layer. C'est un protocole qui permet d'échanger des informations entre deux ordinateurs de manière sécurisée. SSL garantit trois aspects essentiels :

  • Confidentialité : il est impossible d'espionner les informations échangées.
  • Intégrité : il est impossible de modifier ou truquer les informations échangées sans être détecté.
  • Authentification : il permet de vérifier l'identité du programme, de la personne ou de l'entreprise avec laquelle on communique.

SSL fonctionne en complément du protocole TCP/IP et peut potentiellement sécuriser n'importe quel protocole ou programme utilisant TCP/IP.

Pourquoi utiliser SSL et OpenSSL ?

  • SSL est standardisé, ce qui facilite son adoption et son interopérabilité.
  • OpenSSL est une implémentation libre et opensource de SSL, disponible gratuitement sans royalties, accessible à tous pour intégration dans leurs programmes.
  • Le code source d'OpenSSL est accessible à tous, permettant une vérification indépendante de sa sécurité. La sécurité repose sur le secret des clés, non sur celui de l'algorithme.
  • SSL a été largement analysé par des experts en cryptographie, ce qui en fait un protocole fiable.
  • SSL est très répandu, facilitant la communication sécurisée entre différents logiciels.

Il est important de se méfier des systèmes propriétaires dont les algorithmes sont secrets, car la sécurité doit reposer sur la robustesse des clés, pas sur le secret de l'algorithme.

Fonctionnement de SSL

SSL est composé de deux protocoles principaux :

  • SSL Handshake protocol : avant toute communication, le client et le serveur négocient les clés et les méthodes de chiffrement à utiliser.
  • SSL Record protocol : une fois la négociation terminée, toutes les données échangées sont chiffrées et contrôlées.

La négociation SSL (« handshake »)

Au début de la communication, client et serveur échangent :

  • La version de SSL qu'ils souhaitent utiliser.
  • La liste des méthodes de chiffrement (symétrique et asymétrique) et de signature qu'ils connaissent, avec les longueurs de clés.
  • Les méthodes de compression disponibles.
  • Des nombres aléatoires.
  • Les certificats d'identité.

Ils choisissent ensuite le protocole de chiffrement le plus puissant commun aux deux parties. Une fois ce protocole sélectionné, la communication sécurisée peut commencer.

La communication SSL (« record »)

Lors de l'envoi des données, l'expéditeur :

  • Découpe les données en paquets.
  • Compresse les données.
  • Applique une signature cryptographique aux données.
  • Chiffre les données.
  • Envoie les paquets.

Le récepteur, quant à lui :

  • Déchiffre les données.
  • Vérifie la signature cryptographique.
  • Décompresse les données.
  • Réassemble les paquets.

Les mécanismes cryptographiques utilisés par SSL

SSL combine plusieurs systèmes cryptographiques :

  • Chiffrement asymétrique (ex. RSA, Diffie-Hellman) : utilisé pour générer la master key (clé principale) qui servira à créer les clés de session.
  • Chiffrement symétrique (ex. DES, 3DES, IDEA, RC4) : utilise les clés de session pour chiffrer les données échangées.
  • Signature cryptographique (ex. HMAC avec MD5, SHA) : garantit que les messages ne sont pas corrompus ou modifiés.

Lors de la négociation SSL, client et serveur choisissent les algorithmes communs pour ces trois fonctions ainsi que la longueur des clés.

Dans un navigateur web, il est possible de voir les algorithmes utilisés en plaçant le curseur sur le petit cadenas affiché lors d'une connexion HTTPS.

Le rôle des certificats

Pour garantir l'authenticité de l'interlocuteur lors d'une connexion SSL, on utilise des certificats. Un certificat contient des informations comme le nom de l'entreprise, son adresse, etc. C'est une sorte de pièce d'identité numérique.

Pour vérifier que cette pièce d'identité est authentique, on fait appel à des infrastructures de gestion de clés publiques, appelées PKI (Public Key Infrastructure). Ce sont des sociétés tierces de confiance, comme VeriSign ou Thawte, qui signent cryptographiquement les certificats des entreprises.

Votre navigateur contient une liste de PKI reconnues, et il valide les certificats reçus en fonction de cette liste.

Applications de SSL : HTTPS, SSH, FTPS, POPS...

SSL peut sécuriser presque tous les protocoles utilisant TCP/IP. Certains protocoles ont été adaptés pour intégrer SSL :

  • HTTPS : HTTP sécurisé par SSL, utilisé pour naviguer sur Internet en toute sécurité (ex. consultation bancaire).
  • FTPS : extension sécurisée du protocole FTP.
  • SSH (Secure Shell) : permet une connexion sécurisée à un ordinateur distant avec une interface en ligne de commande. SSH peut aussi sécuriser d'autres protocoles comme FTP, POP3 ou X Windows.

Il est également possible de sécuriser des protocoles non modifiés en créant des tunnels SSL. Une fois le tunnel établi, n'importe quel protocole (SMTP, POP3, HTTP, NNTP...) peut passer à l'intérieur, avec toutes les données chiffrées automatiquement.

Des outils comme STunnel ou SSH permettent de créer ces tunnels SSL.

Exemple : sécurisation du protocole POP3 avec STunnel

Le protocole POP3, utilisé pour récupérer les emails, transmet habituellement les mots de passe et messages en clair, ce qui expose à un risque d'interception.

En utilisant STunnel, il est possible de créer un tunnel SSL entre le client et le serveur POP3 sans modifier les logiciels eux-mêmes. Ainsi, tous les échanges sont chiffrés et protégés contre l'espionnage.

Cette solution nécessite d'installer STunnel à la fois sur le client et sur le serveur. Certains fournisseurs d'accès proposent ce service, mais il reste encore rare.

Versions de SSL

  • SSL version 2.0 : première version, avec un nombre limité d'algorithmes de chiffrement.
  • SSL version 3.0 : version améliorée, supportant plus d'algorithmes et plus sécurisée.
  • TLS version 1.0 : protocole similaire basé sur SSL. Les applications TLS 1.0 peuvent communiquer avec celles utilisant SSL 3.0.

Le cadenas dans le navigateur : que garantit-il ?

Le petit cadenas affiché dans un navigateur indique que la communication entre le navigateur et le site web est sécurisée. Cela signifie :

  • Les données échangées ne peuvent pas être espionnées.
  • Les données ne peuvent pas être modifiées à l'insu des parties.

Cependant, ce cadenas ne garantit rien d'autre. Pour illustrer :

HTTPS (le cadenas) est comme un fourgon blindé : il assure la sécurité du transport, mais ne garantit pas la sécurité des coffres de la banque ni l'honnêteté de la banque elle-même.

De la même manière, un site web malveillant peut très bien utiliser SSL et afficher un cadenas. Il faut donc rester vigilant et ne pas confier d'informations sensibles à n'importe quel site, même sécurisé.

Glossaire des termes clés

  • SSL (Secure Socket Layer) : protocole de sécurisation des échanges sur TCP/IP.
  • OpenSSL : implémentation libre et opensource de SSL.
  • Handshake : phase de négociation des clés et algorithmes entre client et serveur.
  • Record protocol : protocole de chiffrement et d'intégrité des données échangées.
  • Chiffrement asymétrique : méthode cryptographique utilisant une paire de clés publique/privée (ex. RSA, Diffie-Hellman).
  • Chiffrement symétrique : méthode cryptographique utilisant une clé secrète partagée (ex. DES, 3DES, RC4).
  • Signature cryptographique : mécanisme garantissant l'intégrité et l'authenticité des messages (ex. HMAC, MD5, SHA).
  • Certificat : document numérique attestant l'identité d'une entité, signé par une autorité de confiance.
  • PKI (Public Key Infrastructure) : infrastructure assurant la gestion et la validation des certificats.
  • HTTPS : HTTP sécurisé par SSL/TLS.
  • FTPS : FTP sécurisé par SSL.
  • SSH (Secure Shell) : protocole de connexion sécurisée à distance.
  • STunnel : logiciel permettant de créer des tunnels SSL pour sécuriser des protocoles non modifiés.
  • TLS (Transport Layer Security) : protocole successor de SSL, compatible avec SSL 3.0.

Points clés à retenir

  • SSL assure la confidentialité, l'intégrité et l'authentification des échanges sur TCP/IP.
  • OpenSSL est une implémentation libre et largement utilisée de SSL.
  • La négociation SSL (handshake) permet de choisir les algorithmes et clés à utiliser.
  • Les certificats, validés par des PKI, garantissent l'identité des interlocuteurs.
  • SSL peut sécuriser de nombreux protocoles, soit nativement (HTTPS, FTPS, SSH), soit via des tunnels (STunnel).
  • Le cadenas dans un navigateur garantit la sécurité du transport, mais pas la fiabilité du site lui-même.
  • Il faut rester vigilant et ne pas confondre sécurité du transport et sécurité globale d'un service.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions