Annexe A. Hypothèses incorrectes (Incorrect Assumptions)
Il existe plusieurs caractéristiques de QUIC version 1 [QUIC-TRANSPORT] qui ne sont pas protégées contre l'observation mais qui sont néanmoins considérées comme modifiables lors du déploiement d'une nouvelle version.
Cette section énumère un échantillon d'hypothèses incorrectes qui pourraient être faites sur QUIC sur la base de la connaissance de QUIC version 1. Certaines de ces déclarations ne sont même pas vraies pour QUIC version 1. Cette liste n'est pas exhaustive ; elle est destinée à être illustrative uniquement.
Toutes les déclarations suivantes peuvent être fausses pour une version QUIC donnée :
-
QUIC utilise TLS [QUIC-TLS], et certains messages TLS sont visibles sur le fil.
-
Les en-têtes longs QUIC sont échangés uniquement pendant l'établissement de la connexion.
-
Chaque flux sur un 5-tuple donné inclura une phase d'établissement de connexion.
-
Les premiers paquets échangés sur un flux utilisent l'en-tête long.
-
Le dernier paquet avant une longue période de silence peut être supposé ne contenir qu'un accusé de réception (Acknowledgment).
-
QUIC utilise une fonction de chiffrement authentifié avec données associées (AEAD) (AEAD_AES_128_GCM ; voir [RFC5116]) pour protéger les paquets qu'il échange pendant l'établissement de la connexion.
-
Les numéros de paquet QUIC (Packet Numbers) sont chiffrés et apparaissent comme les premiers octets chiffrés.
-
Les numéros de paquet QUIC augmentent de un pour chaque paquet envoyé.
-
QUIC a une taille minimale pour le premier paquet de poignée de main envoyé par un client.
-
QUIC stipule qu'un client parle en premier.
-
Les paquets QUIC ont toujours le deuxième bit du premier octet (0x40) défini.
-
Un paquet de négociation de version QUIC est uniquement envoyé par un serveur.
-
Un ID de connexion QUIC change rarement.
-
Les points de terminaison QUIC changent la version qu'ils utilisent s'ils reçoivent un paquet de négociation de version.
-
Le champ Version dans un en-tête long QUIC est le même dans les deux directions.
-
Un paquet QUIC avec une valeur particulière dans le champ Version signifie que la version correspondante de QUIC est utilisée.
-
Une seule connexion à la fois est établie entre une paire de points de terminaison QUIC.