Aller au contenu principal

7. Négociation cryptographique et de transport

7. Négociation cryptographique et de transport

QUIC s'appuie sur une négociation cryptographique et de transport combinée pour minimiser la latence d'établissement de connexion. QUIC utilise la trame CRYPTO (Section 19.6) pour transmettre la négociation cryptographique. La version 1 de QUIC utilise TLS 1.3 comme décrit dans [QUIC-TLS]; une version différente de QUIC pourrait utiliser un protocole de négociation cryptographique différent.

QUIC fournit une livraison fiable et ordonnée des données de négociation cryptographique. La protection des paquets QUIC est utilisée pour chiffrer autant que possible du protocole de négociation. La négociation cryptographique DOIT fournir les propriétés suivantes:

  • échange de clés authentifié, où

    • un serveur est toujours authentifié,
    • un client est facultativement authentifié,
    • chaque connexion produit des clés distinctes et non liées,
    • le matériel de clé est utilisable pour la protection des paquets pour les paquets 0-RTT et 1-RTT, et
    • les clés 1-RTT ont la confidentialité persistante
  • échange authentifié de valeurs pour les paramètres de transport des deux points de terminaison, et protection de confidentialité pour les paramètres de transport du serveur (voir Section 7.4)

  • négociation authentifiée d'un protocole d'application (TLS utilise ALPN [ALPN] à cette fin)

La trame CRYPTO peut être envoyée dans différents espaces de numéros de paquet (Section 12.3). Les décalages utilisés par les trames CRYPTO pour assurer la livraison ordonnée des données de négociation cryptographique commencent à zéro dans chaque espace de numéros de paquet.

[QUIC-TLS] décrit comment TLS 1.3 est utilisé avec QUIC.

7.1 Exemples de flux de négociation

Les détails de l'intégration de TLS avec QUIC sont fournis dans [QUIC-TLS], mais quelques exemples d'utilisation de la négociation sont fournis ici.

7.2 Négociation des ID de connexion

Un ID de connexion est utilisé pour assurer un routage cohérent des paquets. L'en-tête long contient deux ID de connexion: l'ID de connexion de destination est choisi par le destinataire du paquet et est utilisé pour fournir un routage cohérent; l'ID de connexion source est utilisé pour définir l'ID de connexion de destination utilisé par le pair.

7.3 Authentification des ID de connexion

Le choix que chaque point de terminaison fait concernant les ID de connexion pendant la négociation est authentifié en incluant toutes les valeurs envoyées dans les paramètres de transport; voir Section 7.4.

7.4 Paramètres de transport

Lors de l'établissement de la connexion, les deux points de terminaison font des déclarations authentifiées de leurs paramètres de transport. Les points de terminaison DOIVENT se conformer aux restrictions impliquées par ces paramètres; la description de chaque paramètre inclut des règles pour sa gestion.

7.5 Mise en tampon des messages cryptographiques

Les implémentations doivent maintenir un tampon de données CRYPTO reçues hors ordre.