Passa al contenuto principale

Appendice A. Esempio Protezione Pacchetti (Sample Packet Protection)

Questa sezione mostra esempi di protezione dei pacchetti in modo che le implementazioni possano essere verificate gradualmente. Vengono definiti campioni di pacchetti Initial da client e server, oltre a un pacchetto Retry. Questi pacchetti utilizzano un Destination Connection ID di 8 byte scelto dal client: 0x8394c8f03e515708. Sono inclusi alcuni valori intermedi. Tutti i valori sono mostrati in esadecimale.

A.1. Chiavi (Keys)

Le etichette (ovvero HkdfLabel.label) generate durante l'esecuzione della funzione HKDF-Expand-Label e parte del valore fornito alla funzione HKDF-Expand per produrre l'output sono:

client in:  00200f746c73313320636c69656e7420696e00
server in: 00200f746c7331332073657276657220696e00
quic key: 00100e746c7331332071756963206b657900
quic iv: 000c0d746c733133207175696320697600
quic hp: 00100d746c733133207175696320687000

Il segreto iniziale è comune:

initial_secret = HKDF-Extract(initial_salt, cid)
= 7db5df06e7a69e432496adedb0085192
3595221596ae2ae9fb8115c1e9ed0a44

Le chiavi per proteggere i pacchetti client includono:

client_initial_secret
= HKDF-Expand-Label(initial_secret, "client in", "", 32)
= c00cf151ca5be075ed0ebfb5c80323c4
2d6b7db67881289af4008f1f6c357aea

key = HKDF-Expand-Label(client_initial_secret, "quic key", "", 16)
= 1f369613dd76d5467730efcbe3b1a22d

iv = HKDF-Expand-Label(client_initial_secret, "quic iv", "", 12)
= fa044b2f42a3fd3b46fb255c

hp = HKDF-Expand-Label(client_initial_secret, "quic hp", "", 16)
= 9f50449e04a0e810283a1e9933adedd2

Le chiavi per proteggere i pacchetti server includono i segreti corrispondenti derivati utilizzando l'etichetta "server in".


Nota: Per i dettagli tecnici completi, inclusi esempi di pacchetti completi, valori intermedi e calcoli di protezione dell'intestazione, consultare il testo originale RFC 9001 Appendice A:
https://www.rfc-editor.org/rfc/rfc9001.html#appendix-A

Questa appendice include:

  • A.1. Chiavi (Keys)
  • A.2. Pacchetto Initial Client (Client Initial)
  • A.3. Pacchetto Initial Server (Server Initial)
  • A.4. Pacchetto Retry (Retry)
  • A.5. Pacchetto ChaCha20-Poly1305 Short Header (ChaCha20-Poly1305 Short Header Packet)