Zum Hauptinhalt springen

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 ist
  • q die 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-AlgorithmusVertraulichkeitsgrenzeIntegritätsgrenze
AEAD_AES_128_GCM2^23 Pakete2^52 Versuche
AEAD_AES_256_GCM2^23 Pakete2^52 Versuche
AEAD_CHACHA20_POLY13052^23 Pakete2^36 Versuche
AEAD_AES_128_CCM2^21.5 Pakete2^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:

  1. Für die Vertraulichkeitsgrenze: Eine Schlüsselaktualisierung initiieren (siehe Abschnitt 6), bevor die Grenze erreicht wird
  2. 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