Anhang B. AEAD-Algorithmusanalyse (AEAD Algorithm Analysis)
Dieser Anhang enthält eine Analyse der Nutzungsgrenzen der in QUIC verwendeten AEAD-Algorithmen. Diese Analyse wurde verwendet, um die in Abschnitt 6.6 dokumentierten Grenzen abzuleiten.
B.1. AES-GCM-Analyse (AES-GCM Analysis)
Der Galois/Counter Mode (GCM) von AES bietet sowohl Vertraulichkeit als auch Integrität. Die Analyse in [AEBounds] stellt fest, dass der zugrunde liegende AES-Algorithmus gegen gewählte Klartextangriffe sicher ist.
Die Analyse stellt fest, dass der maximale Informationsleck begrenzt ist durch:
(ℓ × q)² / 2^129
wobei:
ℓdie maximale Länge des Chiffretextes in 128-Bit-Blöcken istqdie Anzahl der Chiffretexte ist
AES-128-GCM
Für AEAD_AES_128_GCM wird die Vertraulichkeitsgrenze wie folgt berechnet:
Vertraulichkeitsgrenze: 2^23 Pakete
Diese Grenze wird unter der Annahme einer maximalen Paketgröße von 2^11 Bytes (2048 Bytes) abgeleitet, was eine maximale Länge von 2^7 Blöcken pro Paket ergibt.
Integritätsgrenze: 2^52 fehlgeschlagene Authentifizierungsversuche
Diese Grenze stellt sicher, dass die Wahrscheinlichkeit, dass ein Angreifer erfolgreich ein Paket fälscht, vernachlässigbar bleibt.
AES-256-GCM
Für AEAD_AES_256_GCM sind die Grenzen ähnlich wie bei AES-128-GCM, da die Eigenschaften von GCM unabhängig von der AES-Schlüsselgröße sind:
Vertraulichkeitsgrenze: 2^23 Pakete
Integritätsgrenze: 2^52 Authentifizierungsversuche
B.2. ChaCha20-Poly1305-Analyse (ChaCha20-Poly1305 Analysis)
ChaCha20-Poly1305 kombiniert die ChaCha20-Stream-Verschlüsselung mit dem Poly1305-Authentifikator. Die Analyse in [NAN] und die Sicherheitsüberlegungen in [RFC8439] legen die folgenden Grenzen fest.
Vertraulichkeitsgrenze: 2^23 Pakete
Das Risiko einer Nonce-Kollision wird nach dieser Anzahl von Paketen signifikant.
Integritätsgrenze: 2^36 Fälschungsversuche
Diese Grenze ist konservativer als die von AES-GCM aufgrund der unterschiedlichen Eigenschaften von Poly1305.
B.3. AES-CCM-Analyse (AES-CCM Analysis)
Counter with CBC-MAC (CCM) ist ein Betriebsmodus für AES, der den Counter-Modus (CTR) für Verschlüsselung mit CBC-MAC für Authentifizierung kombiniert.
AES-128-CCM
Für AEAD_AES_128_CCM werden die Grenzen aus [CCM-ANALYSIS] abgeleitet:
Vertraulichkeitsgrenze: 2^21.5 Pakete (ungefähr 2,9 Millionen Pakete)
Diese restriktivere Grenze spiegelt die Einschränkungen des CCM-Modus wider.
Integritätsgrenze: 2^23.5 Authentifizierungsversuche (ungefähr 11,8 Millionen Versuche)
B.4. Zusammenfassung der Grenzen (Summary of Limits)
Die folgende Tabelle fasst die Grenzen für alle unterstützten AEAD-Algorithmen zusammen:
| AEAD-Algorithmus | Vertraulichkeitsgrenze | Integritätsgrenze |
|---|---|---|
| AEAD_AES_128_GCM | 2^23 Pakete | 2^52 Versuche |
| AEAD_AES_256_GCM | 2^23 Pakete | 2^52 Versuche |
| AEAD_CHACHA20_POLY1305 | 2^23 Pakete | 2^36 Versuche |
| AEAD_AES_128_CCM | 2^21.5 Pakete | 2^23.5 Versuche |
Tabelle B.1: AEAD-Nutzungsgrenzen
B.5. Implikationen für Implementierungen
Implementierungen MÜSSEN (MUST) diese Grenzen bei Verwendung dieser Algorithmen mit QUIC befolgen. Wenn eine Grenze erreicht wird:
- Für die Vertraulichkeitsgrenze: Eine Schlüsselaktualisierung initiieren (siehe Abschnitt 6), bevor die Grenze erreicht wird
- Für die Integritätsgrenze: Alle fehlgeschlagenen Entschlüsselungsversuche zählen und die Verbindung schließen, wenn die Grenze erreicht wird
Referenzen für diesen Anhang:
- [AEBounds]: Limits on Authenticated Encryption Use in TLS
- [NAN]: Nonces Are Noticed: AEAD Revisited
- [RFC8439]: ChaCha20 and Poly1305 for IETF Protocols
- [CCM-ANALYSIS]: Analytical studies of CCM mode