7. Sicherheit initialer Nachrichten (Security of Initial Messages)
Initial-Pakete profitieren nicht von geheimnisbasierter Authentifizierung. Die Authentifizierung für diese Pakete stammt vollständig aus dem nachfolgenden Handshake. Ein Gegner könnte:
- Initial-Pakete injizieren, ändern oder löschen
- Initial-Pakete wiedergeben
- Große Mengen an reflektiertem Angriffsdatenverkehr verursachen
Die in diesem Abschnitt genannten Anforderungen begrenzen die Auswirkungen dieser Angriffe.
7.1. Verstärkungsangriffe (Amplification Attacks)
Verstärkungsangriffe sind ein Anliegen für alle Protokolle, aber QUIC fügt zusätzliche Einschränkungen hinzu. Ein Server MUSS (MUST) die in Abschnitt 8.1 von [QUIC-TRANSPORT] beschriebenen Anti-Verstärkungs-Mechanismen verwenden.
7.2. Authentifizierung der Versionsaushandlung (Version Negotiation Authentication)
Das Version Negotiation-Paket hat keinen kryptografischen Schutz. Endpunkte MÜSSEN (MUST) die Integrität des Ergebnisses der Versionsaushandlung überprüfen, indem sie prüfen, dass:
- Das ClientHello eine vom Client unterstützte Version enthält
- Die vom Server ausgewählte Version ebenfalls vom Client unterstützt wird
Diese Überprüfung verhindert, dass ein Angreifer eine Versionsherabstufung erzwingt, indem er Version Negotiation-Pakete ändert.
7.3. Erweiterte Integrität der Versionsaushandlung
Wie im vorherigen Abschnitt beschrieben, stellt der Basismechanismus sicher, dass bei erfolgreicher Herstellung einer QUIC-Verbindung eine für beide Peers akzeptable Version verwendet wird. Ein Angreifer könnte jedoch immer noch die Versionsauswahl beeinflussen, indem er selektiv Initial-Pakete löscht.
Um solche Angriffe zu erkennen, wird die tatsächlich verwendete Version authentifiziert, indem ihr Wert in die TLS-Handshake-Nachrichten einbezogen wird. Der Client fügt dem ClientHello eine Erweiterung hinzu, die alle Versionen enthält, die der Client zu verwenden versucht (siehe Abschnitt 8.1).
7.4. Denial of Service mit modifizierten Initial-Paketen
Ein Angreifer könnte Initial-Pakete modifizieren, um eine ineffiziente Ressourcennutzung zu verursachen. Beispielsweise könnte ein Angreifer Initial-Pakete modifizieren, um die Größe der Handshake-Nachrichten zu erhöhen, was zur Verschwendung von Server-Ressourcen führt.
Server DÜRFEN NICHT (MUST NOT) Verbindungsstatus (Ressourcen zuweisen) aufrechterhalten, bis die Informationen des Clients erfolgreich authentifiziert wurden.