Zum Hauptinhalt springen

3. Protokollüberblick (Protocol Overview)

QUIC [QUIC-TRANSPORT] ist für den Schutz der Vertraulichkeit und Integrität von Paketen verantwortlich. Dazu verwendet es Schlüssel, die aus dem TLS-Handshake [TLS13] abgeleitet werden, aber im Gegensatz zu TLS über TCP werden TLS-Handshake- und Alert-Nachrichten direkt von der QUIC-Transportschicht getragen, die die Rolle der TLS-Datensatzschicht übernimmt, wie in Abbildung 3 dargestellt.

+--------------+--------------+ +-------------+
| TLS | TLS | | QUIC |
| Handshake | Alert | | Application |
| | | | (h3, etc.) |
+--------------+--------------+-+-------------+
| |
| QUIC-Transportschicht |
| (Streams, Zuverlässigkeit, Congestion) |
| |
+---------------------------------------------+
| |
| QUIC-Paketschutz |
| |
+---------------------------------------------+

Abbildung 3: QUIC-Schichten

QUIC verlässt sich auch auf TLS für die Authentifizierung und Aushandlung von Parametern, die für Sicherheit und Leistung kritisch sind.

Diese beiden Protokolle sind nicht streng geschichtet, sondern kooperieren: QUIC verwendet den TLS-Handshake; TLS verwendet die Zuverlässigkeit, geordnete Lieferung und Datensatzschicht, die von QUIC bereitgestellt werden.

Auf hoher Ebene gibt es zwei Hauptinteraktionen zwischen den TLS- und QUIC-Komponenten:

  • Die TLS-Komponente sendet und empfängt Nachrichten über die QUIC-Komponente, wobei QUIC TLS eine zuverlässige Stream-Abstraktion bietet.

  • Die TLS-Komponente stellt der QUIC-Komponente eine Reihe von Updates bereit, einschließlich (a) neuer zu installierender Paketschutzschlüssel und (b) Statusänderungen wie Handshake-Abschluss, Serverzertifikat usw.

Abbildung 4 zeigt diese Interaktionen detaillierter, wobei der QUIC-Paketschutz besonders hervorgehoben wird.

+------------+                               +------------+
| |<--- Handshake-Nachrichten ---->| |
| |<-- Parameter überprüfen ------>| |
| |<--------- 0-RTT-Schlüssel ----| |
| QUIC |<------- Handshake-Schlüssel ---| TLS |
| |<--------- 1-RTT-Schlüssel ----| |
| |<---- Handshake abgeschlossen --| |
+------------+ +------------+
| ^
| Schützen| Geschützte
v | Pakete
+------------+
| QUIC |
| Paket- |
| schutz |
+------------+

Abbildung 4: QUIC- und TLS-Interaktionen

Im Gegensatz zu TLS über TCP senden QUIC-Anwendungen, die Daten senden möchten, diese nicht mit TLS-Anwendungsdatensätzen. Stattdessen senden sie sie als QUIC-STREAM-Frames oder andere Frametypen, die dann in QUIC-Paketen transportiert werden.