AirV's Blog

Just another blog

SSL

Fonctionnement de SSL

SSL consiste en 2 protocoles :

  • SSL Handshake protocol : avant de communiquer, les 2 programmes SSL négocient des clés et des protocoles de chiffrement communs.
  • SSL Record protocol: Une fois négociés, ils chiffrent toutes les informations échangées et effectuent divers contrôles.

 

  • La négociation SSL (« handshake« )

Au début de la communication le client et le serveur s’échangent :

  • la version SSL avec laquelle ils veulent travailler,
  • la liste des méthodes de chiffrement (symétrique et asymétrique) et de signature que chacun connaît (avec longueurs de clés),
  • les méthodes de compression que chacun connaît,
  • des nombres aléatoires,
  • les certificats.

Client et serveur essaient d’utiliser le protocole de chiffrement le plus puissant et diminuent jusqu’à trouver un protocole commun aux deux. Une fois que cela est fait, ils peuvent commencer à échanger des données.

  • La communication SSL (« record« )

Avec SSL, l’expéditeur des données:

  • découpe les données en paquets,
  • compresse les données,
  • signe cryptographiquement les données,
  • chiffre les données,
  • les envoie.

Celui qui réceptionne les données:

  • déchiffre les données,
  • vérifie la signature des données,
  • décompresse les données,
  • réassemble les paquets de données.

 

Protection des communications

SSL utilise:

  • un système de chiffrement asymétriques (comme RSA ou Diffie-Hellman). Il est utilisé pour générer la master key (clé principale) qui permettra de générer des clés de session.
  • un système de chiffrement symétrique (DES, 3DES, IDEA, RC4…) en utilisant les clés de session pour chiffrer les données.
  • un système de signature cryptographique des messsages (HMAC, utilisant MD5, SHA…) pour s’assurer que les messages ne sont pas corrompus.

C’est lors de la négociation SSL que le client et le serveur choisissent des systèmes communs (chiffrement asymétrique, symétrique, signature et longueur de clé).

Dans votre navigateur, vous pouvez voir la liste des systèmes utilisés en plaçant votre curseur sur le petit cadenas quand vous ètes dans une page en HTTPS.

 

Les certificats

Lors d’une négociation SSL, il faut s’assurer de l’identité de la personne avec qui on communique. Comment être sûr que le serveur auquel vous parlez est bien celui qu’il prétend être ?

C’est là qu’interviennent les certificats. Au moment de vous connecter sur un serveur web sécurisé, ce dernier vous enverra un certificat contenant le nom de l’entreprise, son adresse, etc. C’est une sorte de pièce d’identité.

  • Vérifier l’authenticité de cette pièce d’identité

Ce sont les PKI (Public Key Infrastructure), des sociétés externes (auxquelles vous faites implicitement confiance), qui vont vérifier l’authenticité du certificat.
(La liste de ces PKI est incluse dans votre navigateur. Il y a généralement VeriSign, Thawte, etc.)

Ces PKI signent cryptographiquement les certificats des entreprises (et ils se font payer pour ça).

 

Les utilisations de SSL: HTTPS, SSH, FTPS, POPS…

SSL peut être utilisé pour sécuriser pratiquement n’importe quel protocole utilisant TCP/IP.

Certains protocoles ont été spécialement modifiés pour supporter SSL:

  • HTTPS: c’est HTTP+SSL. Ce protocole est inclus dans pratiquement tous les navigateurs, et vous permet (par exemple) de consulter vos comptes bancaires par le web de façon sécurisée.
  • FTPS est une extension de FTP (File Transfer Protocol) utilisant SSL.
  • SSH (Secure Shell): c’est une sorte de telnet (ou rlogin) sécurisé. Cela permet de se connecter à un ordinateur distant de façon sûre et d’avoir une ligne de commande. SSH possède des extensions pour sécuriser d’autres protocoles (FTP, POP3 ou mème X Windows).

mardi 16 octobre 2007 Posté par à 20:58 | Linux | pas de commentaire