Aller au contenu principal

3.4. Interaction avec le TLS Session ID

Si un serveur prévoit d'émettre un ticket de session à destination d'un client qui n'en présente pas, il DEVRAIT (SHOULD) inclure un Session ID vide dans le ServerHello. Si le serveur rejette le ticket et revient au handshake complet, il peut alors inclure un Session ID non vide pour indiquer sa prise en charge de la reprise de session avec état (stateful session resumption). Si le client reçoit un ticket de session du serveur, il écarte alors tout Session ID qui a été envoyé dans le ServerHello.

Lorsqu'il présente un ticket, le client PEUT (MAY) générer et inclure un Session ID dans le TLS ClientHello. Si le serveur accepte le ticket et que le Session ID n'est pas vide, il DOIT (MUST) alors répondre avec le même Session ID que celui présent dans le ClientHello. Cela permet au client de distinguer facilement le moment où le serveur reprend une session de celui où il revient à un handshake complet. Comme c'est le client qui génère le Session ID, le serveur NE DOIT PAS (MUST NOT) se fier au fait que le Session ID ait une valeur particulière lors de la validation du ticket. Si un ticket est présenté par le client, le serveur NE DOIT PAS (MUST NOT) tenter d'utiliser le Session ID du ClientHello pour une reprise de session avec état. Alternativement, le client PEUT (MAY) inclure un Session ID vide dans le ClientHello. Dans ce cas, le client ignore le Session ID envoyé dans le ServerHello et détermine si le serveur reprend une session d'après les messages de handshake suivants.