Accueil🇫🇷Chercher

Suite cryptographique

Une suite cryptographique (cipher suite en anglais) est le nom de la combinaison des algorithmes d'échange de clés, d'authentification, de chiffrement par bloc et génération du code d'authentification de message (MAC) utilisée afin d'établir le paramétrage de sécurité pour une connexion réseau utilisant le protocole de communication Secure Socket Layer (SSL) et Transport Layer Security (TLS).

Usage

Lors de l'établissement d'une connexion TLS, un handshake s'effectue entre un client et un serveur. Au cours de ce processus, un message client hello (ClientHello) ainsi qu'un message server hello (ServerHello) sont échangés[1]. En premier lieu, le client émet au serveur la liste des suites cryptographiques qu'il supporte, par ordre de préférence (de la plus robuste à la plus faible). En retour, le serveur renvoie la suite cryptographique préférée pour l'établissement de la communication[2].

Il est possible d'obtenir la liste des suites cryptographiques supportées par un serveur à l'aide de logiciels scanner SSL/TLS (TLSSLed[3] ou TestSSLServer[4] par exemple).

Description détaillée

Chaque suite cryptographique définit un algorithme d'échange de clés et d'authentification, de chiffrement par bloc et de code d'authentification de message (MAC) usuellement représentés dans cet ordre[5] - [6].

  • L'algorithme d'Ă©change de clĂ©s est utilisĂ© pour dĂ©terminer la mĂ©thode permettant au client et au serveur d'Ă©tablir un canal de communication sĂ©curisĂ© (chiffrement asymĂ©trique).
  • L'algorithme d'authentification est utilisĂ© pour dĂ©terminer si et comment le client et le serveur vont s'authentifier mutuellement durant la poignĂ©e de main[7] ;
  • L'algorithme de chiffrement par bloc est utilisĂ© pour chiffrer le flux de donnĂ©es (chiffrement symĂ©trique). Il inclut Ă©galement la taille de la clĂ© ainsi que la longueur du vecteur d'initialisation (Nonce cryptographique) ;
  • L'algorithme de code d'authentification de message (MAC) est utilisĂ© pour crĂ©er un condensat (ou empreinte) afin de vĂ©rifier l'intĂ©gritĂ© de chaque bloc composant le flux de donnĂ©es[8].

De plus, une fonction pseudo-aléatoire (PRF) est utilisée pour générer un secret partagé de 48 octets et utilisé entre les deux pairs lors de la connexion. Le secret partagé est utilisé comme source d'entropie lors de la création de la clé de session, utilisé pour la génération du MAC[9].

Par exemple, la suite ECDHE-RSA-AES128-GCM-SHA256 utilise l'algorithme ECDHE pour l'échange de clés, RSA pour l'authentification, AES (128bits) en mode GCM pour le chiffrement par bloc et enfin SHA256 pour le calcul du MAC.

Il existe un très grand nombre de suites cryptographiques supportés dans OpenSSL[10]. Certaines ne proposent pas d'authentification, ni chiffrement, ni contrôle d'intégrité.

Exemples des algorithmes utilisés

Echange de clés
RSA, Diffie-Hellman, ECDH, SRP, PSK.
Authentification
RSA, DSA, ECDSA.
Chiffrement symétrique
RC4, Triple DES, AES, IDEA, DES, ChaCha20 ou Camellia. Dans l'ancienne version de SSL, RC2 était également utilisé.
Authentification de message
Pour TLS, un HMAC basé sur l'algorithme MD5 ou l'un des algorithmes de hachage SHA peut être utilisé. Pour SSL, SHA, MD5, MD4 et MD2 peuvent être utilisés.

Références en programmation

En programmation, la syntaxe différencie deux éléments :

CipherSuite cipher_suites
représente la liste des suites cryptographiques supportées par le client[11].
CipherSuite cipher_suite
représente la suite cryptographique sélectionnée par le serveur et retournée dans le message ServerHello[12].

Notes et références

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Cipher suite » (voir la liste des auteurs).
  1. (en) « The Transport Layer Security (TLS) Protocol Version 1.2 », Request for comments no 5246, , p. 37.
  2. (en) « The Transport Layer Security (TLS) Protocol Version 1.2 », Request for comments no 5246, , p. 40.
  3. (en) « TLSSLed v1.3 », sur taddong.com (consulté le ).
  4. « TestSSLServer », sur bolet.org (consulté le ).
  5. (en) « CipherSuites and CipherSpecs », IBM (consulté le )
  6. (en) « Cipher Suites in Schannel », Microsoft MSDN (consulté le )
  7. (en) « The Transport Layer Security (TLS) Protocol Version 1.2 », Request for comments no 5246, , p. 47.
  8. (en) « The Transport Layer Security (TLS) Protocol Version 1.2 », Request for comments no 5246, , p. 17.
  9. (en) « The Transport Layer Security (TLS) Protocol Version 1.2 », Request for comments no 5246, , p. 16-17, 26.
  10. https://openssl.org/docs/manmaster/apps/ciphers.html
  11. (en) « The Transport Layer Security (TLS) Protocol Version 1.2 », Request for comments no 5246, , p. 41.
  12. (en) « The Transport Layer Security (TLS) Protocol Version 1.2 », Request for comments no 5246, , p. 42-43, 64.


Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.