RFC 9287 - Greasing del bit QUIC (Greasing the QUIC Bit)
- Stato: Proposed Standard
- Pubblicato: August 2022
- Stream: IETF
- Errata: Nessun errata
Sommario (Abstract)
Il presente documento descrive un metodo per negoziare la capacità di inviare un valore arbitrario per il secondo bit più significativo nei pacchetti QUIC.
Stato di questo memo (Status of This Memo)
Questo è un documento Internet Standards Track.
Il presente documento è un prodotto dell'Internet Engineering Task Force (IETF). Rappresenta il consenso della comunità IETF. Ha ricevuto revisione pubblica ed è stato approvato per la pubblicazione dall'Internet Engineering Steering Group (IESG). Ulteriori informazioni sugli Internet Standards sono disponibili nella Sezione 2 di RFC 7841.
Informazioni sullo stato corrente di questo documento, eventuali errata e su come fornire feedback sono disponibili all'indirizzo https://www.rfc-editor.org/info/rfc9287.
Avviso di copyright (Copyright Notice)
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.
Il presente documento è soggetto a BCP 78 e alle disposizioni legali dell'IETF Trust relative ai documenti IETF (https://trustee.ietf.org/license-info) in vigore alla data di pubblicazione di questo documento. Si prega di esaminare attentamente tali documenti, poiché descrivono i diritti e le restrizioni relativi a questo documento. I componenti di codice estratti da questo documento devono includere il testo della Revised BSD License descritto nella Sezione 4.e delle Trust Legal Provisions e sono forniti senza garanzia come descritto nella Revised BSD License.
Indice (Table of Contents)
-
- Introduzione
-
- Convenzioni e definizioni
-
- Parametro di trasporto Grease QUIC Bit
-
- Considerazioni sulla sicurezza
-
- Considerazioni IANA
-
- Riferimenti
- Indirizzo dell'autore
1. Introduzione
La definizione indipendente dalla versione di QUIC [QUIC-INVARIANTS] descrive intenzionalmente un insieme molto ristretto di campi visibili a entità diverse dagli endpoint. Al di là di tali caratteristiche invarianti, molto poco dell'«immagine sul filo» (wire image) [RFC8546] di QUIC è visibile.
Il secondo bit più significativo del primo byte di ogni pacchetto QUIC è definito come avente un valore fisso in QUIC versione 1 [QUIC]. Lo scopo di un valore fisso è consentire agli endpoint di distinguere in modo efficiente QUIC da altri protocolli; vedere [DEMUX] per la descrizione di un sistema che potrebbe usare questa proprietà. Poiché questo bit può identificare un pacchetto come QUIC, a volte è chiamato «bit QUIC» (QUIC Bit).
Quando gli endpoint e gli intermediari che li supportano non dipendono da un valore fisso del bit QUIC, inviare lo stesso valore in ogni pacchetto è più una passività che un asset. Se i sistemi arrivano a dipendere da un valore fisso, potrebbe diventare impraticabile definire una versione di QUIC che attribuisca una semantica a questo bit.
Al fine di salvaguardare l'uso futuro di questo bit, il presente documento definisce un parametro di trasporto QUIC che indica che un endpoint è disposto a ricevere pacchetti QUIC contenenti un valore qualsiasi per questo bit. Inviando valori diversi per questo bit, si spera che il valore rimanga disponibile per un uso futuro [USE-IT].
2. Convenzioni e definizioni
Le parole chiave "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" e "OPTIONAL" nel presente documento devono essere interpretate come descritto in BCP 14 [RFC2119] [RFC8174] quando, e solo quando, appaiono tutte in maiuscolo.
Il presente documento usa termini e convenzioni notazionali da [QUIC].
3. Parametro di trasporto Grease QUIC Bit
Il parametro di trasporto grease_quic_bit (0x2ab2) è definito per QUIC versione 1 [QUIC]. Questo parametro di trasporto può essere inviato sia dal client sia dal server. Il parametro di trasporto è inviato con un valore vuoto; un endpoint che comprende questo parametro di trasporto MUST trattare la ricezione di un valore non vuoto come un errore di connessione di tipo TRANSPORT_PARAMETER_ERROR.
Un endpoint che annuncia il parametro di trasporto grease_quic_bit MUST accettare pacchetti con il bit QUIC impostato al valore 0. Il bit QUIC è definito come il secondo bit più significativo del primo byte dei pacchetti QUIC (cioè il valore 0x40).
3.1. Azzeramento del bit QUIC
Gli endpoint che ricevono il parametro di trasporto grease_quic_bit da un peer SHOULD impostare il bit QUIC a un valore imprevedibile a meno che un'altra estensione non assegni un significato specifico al valore del bit.
Gli endpoint possono impostare il bit QUIC a 0 su tutti i pacchetti inviati dopo la ricezione e l'elaborazione dei parametri di trasporto. Ciò può includere pacchetti Initial, Handshake e Retry.
Un client MAY anche impostare il bit QUIC a 0 nei pacchetti Initial, Handshake o 0-RTT inviati prima di ricevere i parametri di trasporto dal server. Tuttavia, un client MUST NOT impostare il bit QUIC a 0 se invia anche un token fornito in un pacchetto Retry o in un frame NEW_TOKEN (Sezione 19.7 di [QUIC]).
3.2. Uso del bit QUIC
Il presente documento descrive un uso del bit QUIC compatibile con la definizione in [QUIC].
4. Considerazioni sulla sicurezza
Il greasing del bit QUIC è inteso a salvaguardare l'uso futuro del bit. Non fornisce alcuna proprietà di sicurezza.
5. Considerazioni IANA
Il presente documento registra il parametro di trasporto grease_quic_bit nel registro «QUIC Transport Parameters» stabilito nella Sezione 22.3 di [QUIC].
Campi registrati:
- Value: 0x2ab2
- Parameter Name: grease_quic_bit
- Status: Permanent
- Specification: RFC 9287
6. Riferimenti
6.1. Riferimenti normativi
[QUIC] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based Multiplexed and Secure Transport", RFC 9000, DOI 10.17487/RFC9000, May 2021, https://www.rfc-editor.org/info/rfc9000.
[QUIC-INVARIANTS] Thomson, M., "Version-Independent Properties of QUIC", RFC 8999, DOI 10.17487/RFC8999, May 2021, https://www.rfc-editor.org/info/rfc8999.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, https://www.rfc-editor.org/info/rfc2119.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, https://www.rfc-editor.org/info/rfc8174.
6.2. Riferimenti informativi
[DEMUX] Kühlewind, M. and C. Huitema, "Multiplexing Scheme Updates for QUIC", Work in Progress, Internet-Draft, draft-ietf-quic-multiplexing-02, 22 October 2020, https://datatracker.ietf.org/doc/html/draft-ietf-quic-multiplexing-02.
[RFC8546] Trammell, B. and M. Kühlewind, "The Wire Image of a Network Protocol", RFC 8546, DOI 10.17487/RFC8546, April 2019, https://www.rfc-editor.org/info/rfc8546.
[USE-IT] Thomson, M., "Use It or Lose It", RFC 9170, DOI 10.17487/RFC9170, December 2021, https://www.rfc-editor.org/info/rfc9170.
Indirizzo dell'autore
Martin Thomson Mozilla Email: [email protected]