Aller au contenu

Architecture, protocole et services de sécurité de TLS#


Architecture générale de TLS#


Vue d'ensemble#

  • Deux couches principales : Record Protocol et Handshake Protocol
  • Fonctionnement sur la couche Transport (TCP) du modèle OSI

Les couches de TLS: Record Protocol et Handshake Protocol#

  • Record Protocol
    • Fragmentation et assemblage des messages
    • Chiffrement et déchiffrement des données
    • Intégrité des données via MAC (Message Authentication Code)
  • Handshake Protocol
    • Négociation des paramètres de la connexion
    • Échange et vérification des certificats
    • Établissement des clés de chiffrement

Le processus de négociation de la connexion#

  • ClientHello : annonce des capacités du client
  • ServerHello : sélection des paramètres communs
  • Échange des certificats et vérification
  • Génération des clés de chiffrement et transmission sécurisée
  • Fin du Handshake et début du transfert de données sécurisé

Les services de sécurité offerts par TLS#


Vue d'ensemble#

  • Chiffrement des données pour la confidentialité
  • Authentification du serveur et du client pour éviter les attaques de type "man-in-the-middle"
  • Vérification de l'intégrité des données pour assurer qu'elles n'ont pas été modifiées durant le transfert

Confidentialité: Le chiffrement des données#

  • Utilisation d'algorithmes de chiffrement symétrique
  • AES, ChaCha20, 3DES (déconseillé pour des raisons de sécurité)
  • Génération de clés via l'échange de clés Diffie-Hellman ou ECDHE

Authentification: Authentification du serveur et du client#

  • Échange de certificats X.509
  • Vérification de la chaîne de confiance et des signatures
  • Optionnellement, authentification du client via certificats client

Intégrité: Vérification de l'intégrité des données#

  • Utilisation de codes d'authentification de messages (MAC)
  • HMAC avec des algorithmes de hachage tels que SHA-256, SHA-384

Protocoles et algorithmes utilisés dans TLS#


Vue d'ensemble#

  • Protocoles : SSL, TLS
  • Algorithmes de chiffrement : symétriques, asymétriques
  • Algorithmes de hachage et d'authentification

Algorithmes de chiffrement symétrique#

  • AES (recommandé)
  • ChaCha20 (performant sur les appareils mobiles)
  • 3DES (déconseillé)

Algorithmes de chiffrement asymétrique#

  • RSA (utilisé pour l'échange de clés et la signature)
  • DSA (pour la signature uniquement)
  • ECDSA (version elliptique de DSA)

Algorithmes de hachage et d'authentification#

  • SHA-256, SHA-384 (recommandés)
  • HMAC pour les codes d'authentification de messages

Les extensions TLS#


Enjeux des extensions TLS#

  • Améliorations du protocole TLS sans compromettre la compatibilité
  • Négociées durant le Handshake Protocol
  • Permettent d'ajouter des fonctionnalités et d'améliorer la sécurité
  • Peuvent être ajoutées ou supprimées pour répondre aux besoins spécifiques de sécurité

Exemples d'extensions courantes et leur utilisation#

  • Server Name Indication (SNI) : préciser le nom de domaine du serveur, permettant l'hébergement de plusieurs sites HTTPS sur une seule adresse IP
  • Application-Layer Protocol Negotiation (ALPN) : négocier le protocole de la couche application (ex. HTTP/2)
  • Extended Master Secret : améliorer la sécurité lors de la génération de la clé principale
  • Session Resumption : optimiser les performances en réutilisant les paramètres de sessions précédentes
  • Encrypt-then-MAC : améliorer la sécurité en modifiant l'ordre d'application du chiffrement et de l'authentification
  • Elliptic Curve Cryptography (ECC) : utiliser la cryptographie sur courbes elliptiques pour l'échange de clés et la signature

Exemples d'extensions courantes et leur utilisation#

  • Server Name Indication (SNI) * Permet au client de spécifier le nom d'hôte souhaité * Facilite l'hébergement de plusieurs sites sur une seule adresse IP
  • Application-Layer Protocol Negotiation (ALPN) * Négocie le protocole applicatif à utiliser (par exemple HTTP/2)
  • Session Ticket (RFC 5077) * Permet de réutiliser les paramètres de chiffrement pour les connexions ultérieures * Améliore les performances lors de la reconnexion