5. Record Protocol (Protocole d'enregistrement)
Le protocole d'enregistrement TLS prend les messages à transmettre, fragmente les données en blocs gérables, protège les enregistrements et transmet le résultat. Les données reçues sont vérifiées, déchiffrées, réassemblées, puis livrées aux clients de niveau supérieur.
Les enregistrements TLS sont typés, ce qui permet de multiplexer plusieurs protocoles de niveau supérieur sur la même couche d'enregistrement. Ce document spécifie quatre types de contenu: handshake, application_data, alert et change_cipher_spec. L'enregistrement change_cipher_spec n'est utilisé qu'à des fins de compatibilité (voir Annexe D.4).
Une implémentation PEUT recevoir un enregistrement non chiffré de type change_cipher_spec composé de la valeur d'octet unique 0x01 à tout moment après l'envoi ou la réception du premier message ClientHello et avant la réception du message Finished du pair, et DOIT simplement le rejeter sans traitement supplémentaire.
5.1. Record Layer (Couche d'enregistrement)
La couche d'enregistrement fragmente les blocs d'informations en enregistrements TLSPlaintext transportant des données en morceaux de 2^14 octets ou moins. Les limites des messages sont gérées différemment selon le ContentType sous-jacent.
Les messages de handshake PEUVENT être fusionnés en un seul enregistrement TLSPlaintext ou fragmentés sur plusieurs enregistrements, à condition que:
- Les messages de handshake NE DOIVENT PAS être entrelacés avec d'autres types d'enregistrements.
- Les messages de handshake NE DOIVENT PAS s'étendre sur les changements de clé.
Les implémentations NE DOIVENT PAS envoyer de fragments de longueur zéro des types Handshake.
Les messages d'alerte NE DOIVENT PAS être fragmentés sur plusieurs enregistrements, et plusieurs messages d'alerte NE DOIVENT PAS être fusionnés en un seul enregistrement TLSPlaintext.
Les messages Application Data contiennent des données opaques pour TLS. Les messages Application Data sont toujours protégés.
5.2. Record Payload Protection (Protection de la charge utile d'enregistrement)
Les fonctions de protection d'enregistrement traduisent une structure TLSPlaintext en structure TLSCiphertext. Les fonctions de déprotection inversent le processus. Dans TLS 1.3, contrairement aux versions précédentes de TLS, tous les chiffrements sont modélisés comme "Authenticated Encryption with Associated Data" (AEAD) [RFC5116].
5.3. Per-Record Nonce (Nonce par enregistrement)
Les algorithmes AEAD prennent en entrée une clé unique, un nonce, un texte clair et des "données supplémentaires" à inclure dans la vérification d'authentification.
5.4. Record Padding (Remplissage d'enregistrement)
Cela offre aux expéditeurs la possibilité de rembourrer tout enregistrement TLS d'un montant choisi tant que le total reste dans les limites de taille d'enregistrement.
5.5. Limits on Key Usage (Limites d'utilisation des clés)
Il existe des limites cryptographiques sur la quantité de texte clair qui peut être chiffrée en toute sécurité sous une clé donnée.