Aller au contenu principal

3.2. Extension TLS SessionTicket

L'extension TLS SessionTicket est basée sur [RFC4366]. Le format du ticket est une structure opaque utilisée pour transporter des informations d'état spécifiques à une session. Cette extension peut être envoyée dans le ClientHello et le ServerHello.

Si le client possède un ticket qu'il souhaite utiliser pour reprendre une session, il inclut alors le ticket dans l'extension SessionTicket du ClientHello. Si le client n'a pas de ticket et est prêt à en recevoir un dans le message de handshake NewSessionTicket, il DOIT (MUST) inclure un ticket de longueur nulle dans l'extension SessionTicket. Si le client n'est pas prêt à recevoir un ticket dans le message de handshake NewSessionTicket, il NE DOIT PAS (MUST NOT) inclure d'extension SessionTicket, sauf s'il envoie un ticket non vide qu'il a reçu du serveur par un autre moyen.

Le serveur utilise une extension SessionTicket de longueur nulle pour indiquer au client qu'il enverra un nouveau ticket de session à l'aide du message de handshake NewSessionTicket décrit à la section 3.3. Le serveur DOIT (MUST) envoyer cette extension dans le ServerHello s'il souhaite émettre un nouveau ticket à destination du client à l'aide du message de handshake NewSessionTicket. Le serveur NE DOIT PAS (MUST NOT) envoyer cette extension s'il n'en reçoit pas une dans le ClientHello.

Si le serveur ne parvient pas à vérifier le ticket, il revient alors à l'exécution d'un handshake complet. Si le ticket est accepté par le serveur mais que le handshake échoue, le client DEVRAIT (SHOULD) supprimer le ticket.

L'extension SessionTicket s'est vu attribuer le numéro 35. Le champ extension_data de l'extension SessionTicket contient le ticket.