Aller au contenu principal

3. Aperçu du protocole (Protocol Overview)

QUIC [QUIC-TRANSPORT] est responsable de la protection de la confidentialité et de l'intégrité des paquets. Pour ce faire, il utilise des clés dérivées du handshake TLS [TLS13], mais contrairement à TLS sur TCP, les messages de handshake et d'alerte TLS sont directement transportés par la couche de transport QUIC, qui reprend le rôle de la couche d'enregistrement TLS, comme illustré dans la Figure 3.

+--------------+--------------+ +-------------+
| TLS | TLS | | QUIC |
| Handshake | Alerte | | Application |
| | | | (h3, etc.) |
+--------------+--------------+-+-------------+
| |
| Couche de transport QUIC |
| (flux, fiabilité, contrôle de congestion) |
| |
+---------------------------------------------+
| |
| Protection des paquets QUIC |
| |
+---------------------------------------------+

Figure 3: Couches de QUIC

QUIC s'appuie également sur TLS pour l'authentification et la négociation de paramètres critiques pour la sécurité et les performances.

Ces deux protocoles ne sont pas strictement en couches, mais coopèrent : QUIC utilise le handshake TLS ; TLS utilise la fiabilité, la livraison ordonnée et la couche d'enregistrement fournies par QUIC.

À un niveau élevé, il existe deux interactions principales entre les composants TLS et QUIC :

  • Le composant TLS envoie et reçoit des messages via le composant QUIC, QUIC fournissant une abstraction de flux fiable à TLS.

  • Le composant TLS fournit une série de mises à jour au composant QUIC, y compris (a) de nouvelles clés de protection de paquets à installer et (b) des changements d'état tels que la fin du handshake, le certificat du serveur, etc.

La Figure 4 montre ces interactions plus en détail, avec la protection des paquets QUIC particulièrement mise en évidence.

+------------+                               +------------+
| |<--- Messages de handshake --->| |
| |<- Vérifier les paramètres ---->| |
| |<--------- Clés 0-RTT ---------| |
| QUIC |<------- Clés handshake -------| TLS |
| |<--------- Clés 1-RTT ---------| |
| |<---- Handshake terminé -------| |
+------------+ +------------+
| ^
| Protéger| Paquets
v | protégés
+------------+
| QUIC |
| Protection|
| de paquet |
+------------+

Figure 4: Interactions QUIC et TLS

Contrairement à TLS sur TCP, les applications QUIC qui souhaitent envoyer des données ne les envoient pas à l'aide d'enregistrements de données d'application TLS. Au lieu de cela, ils les envoient sous forme de trames STREAM QUIC ou d'autres types de trames, qui sont ensuite transportées dans des paquets QUIC.