Summary

  • Une connexion QUIC possède un ensemble de repères de routage émis par les extrémités ; aucun CID n'est une identité permanente.
  • La migration dépend du stock inutilisé, des limites négociées et des retraits achevés, pas du seul fait que la connexion soit ouverte.
  • Un registre bidirectionnel du cycle de vie distingue erreur de routage, épuisement du stock et rotation de confidentialité.

Imaginons un mobile quittant le Wi-Fi pour le réseau cellulaire. Les clés restent valides et les flux applicatifs sont ouverts, mais le client ne peut sonder le nouveau chemin vers le serveur : il ne dispose plus d'un CID inutilisé émis par le serveur. Dans l'autre sens, le serveur a lui aussi besoin d'un ID inutilisé émis par le client. La connexion reste établie, mais une condition de continuité a disparu.

Le RFC 9000 §5.1 décrit non pas un nom unique, mais un ensemble d'identifiants. Chaque extrémité choisit indépendamment ceux que son pair utilisera. Leur fonction principale consiste à acheminer les paquets vers le bon état de connexion malgré un changement d'adresse de couche inférieure.

Le sens est essentiel. Une extrémité émet les identifiants utilisés pour lui envoyer des paquets et consomme ceux du pair pour lui répondre. Un CID de destination visible dans une capture n'est donc qu'un repère courant dans un sens. Il n'authentifie ni abonné, ni appareil, ni session applicative.

La section 5.1.1 associe des numéros de séquence aux CID émis. Les nouveaux identifiants arrivent dans NEW_CONNECTION_ID avec des séquences croissantes. La séquence sert à réconcilier le cycle de vie ; ce n'est ni une horloge ni un identifiant global.

Le paramètre active_connection_id_limit fixe le nombre d'identifiants actifs que le pair accepte de conserver. Un dépassement après ajout et retrait impose CONNECTION_ID_LIMIT_ERROR. Mais une limite n'est pas un stock disponible : on peut rester sous le plafond sans disposer d'un CID encore inutilisé pour un nouveau chemin.

La section 9.5 donne la conséquence : sans identifiant disponible, une extrémité ne peut ni sonder un nouveau chemin, ni migrer, ni répondre à la migration du pair. La connexion ouverte ne suffit donc pas à prouver la capacité de mobilité.

Le stock sert aussi la confidentialité. Réutiliser un CID stable sur plusieurs chemins permettrait de corréler le trafic. QUIC interdit sa réutilisation depuis plusieurs adresses locales ou vers plusieurs destinations. La rotation retire ce signal évident sans garantir l'impossibilité de corrélation : le temps et la taille des paquets subsistent.

Le retrait forme un échange. Selon la section 5.1.2, RETIRE_CONNECTION_ID promet de ne plus utiliser la valeur et demande son remplacement. Retire Prior To peut évincer les anciennes séquences. Tant que messages et accusés ne convergent pas, les deux extrémités peuvent avoir des vues différentes.

Ces trames étant chiffrées, un observateur passif voit parfois les valeurs changer sans connaître le stock, les séquences ou les retraits. Le RFC 9312 souligne précisément cette limite d'observation.

Un CID de longueur nulle renforce la frontière : une extrémité qui le choisit ne peut plus en émettre de nouveau. C'est une politique valide, mais elle abandonne la migration soutenue par les CID. Une négociation réussie ne promet donc pas la survie à un changement d'adresse.

À titre de recommandation éditoriale, le registre complet doit conserver : identifiant et heure de l'observation ; rôle de l'extrémité ; tuple d'adresses locale et distante ; sens d'émission ; séquence et empreinte du CID ; états actif, inutilisé, affecté, retrait demandé et retiré ; active_connection_id_limit ; plus grand Retire Prior To ; réception de NEW_CONNECTION_ID ; envoi et acquittement de RETIRE_CONNECTION_ID ; empreinte du jeton de réinitialisation sans état associé ; premier et dernier tuple de chemin ; négociation d'un CID nul ; nombre inutilisé dans chaque sens ; besoin de migration ou de sondage ; résultat du routage en aval ; réserves de confidentialité. Les empreintes évitent d'exposer les valeurs brutes.

Un CID seul prouve peu. Sa présence montre un repère placé dans un paquet. L'état cryptographique rattache le paquet à la connexion ; le cycle de vie et le chemin établissent la capacité de migration. Rien dans la valeur ne constitue l'identité humaine ou applicative souvent projetée par un tableau de bord.