Annexe A. Exemple de protection de paquet (Sample Packet Protection)
Cette annexe montre des exemples de processus de protection de paquet. Les exemples montrent un handshake incluant un paquet Initial du client et un paquet Initial du serveur, suivis par des paquets Handshake du client et du serveur.
A.1. Clés (Keys)
Les secrets et clés calculés dans ces exemples sont affichés avec les valeurs en hexadécimal.
A.2. Paquet Initial du client (Client Initial)
Le client envoie un paquet Initial. Les secrets et clés pour protéger ce paquet sont dérivés du Destination Connection ID 0x8394c8f03e515708.
initial_salt = 0x38762cf7f55934b34d179ae6a4c80cadccbb7f0a
initial_secret = HKDF-Extract(initial_salt, client_dst_connection_id)
= 0x7db5df06e7a69e432496adedb00851923595221596ae2ae9fb8115c1e9ed0a44
client_initial_secret
= HKDF-Expand-Label(initial_secret,
"client in", "",
Hash.length)
= 0x00553221e68c7e38be14fa1ab2e9def61c0ca9f9a9e0e4ad5f8b3c2d4c76c7ee
server_initial_secret
= HKDF-Expand-Label(initial_secret,
"server in", "",
Hash.length)
= 0x0018b6cbcf39d62e84bd8e9ab8bc3e1b8c8b18d9c3c3e2d0e1af3e0d6c5c4c3c
Le paquet envoyé par le client est :
c300000001088394c8f03e5157080000449e00000002
Les secrets sont ensuite étendus pour dériver les clés de chiffrement et les IV qui protègent les paquets Initial.
A.3. Paquet Initial du serveur (Server Initial)
Le serveur envoie le paquet Initial suivant en réponse :
c1000000010800000449e7d0c5db0e
A.4. Paquets Handshake du client (Client Handshake)
Après réception du paquet Initial du serveur, le client dérive de nouvelles clés de protection de paquet pour le niveau de chiffrement Handshake.
A.5. Paquets Handshake du serveur (Server Handshake)
Le serveur envoie ensuite des données de handshake chiffrées avec les clés de niveau Handshake.
Remarque : Les exemples complets avec toutes les valeurs intermédiaires et les calculs cryptographiques détaillés sont disponibles dans le texte original du RFC 9001, section Annexe A.