3.3. Inclusion de l'horodatage de certificat signé dans la négociation TLS
3.3. Inclusion de l'horodatage de certificat signé dans la négociation TLS
Les données SCT correspondant au certificat d'entité finale d'au moins un journal doivent être incluses dans la négociation TLS, soit en utilisant une extension de certificat X509v3 comme décrit ci-dessous, soit en utilisant une extension TLS (Section 7.4.1.4 de [RFC5246]) avec le type "signed_certificate_timestamp", soit en utilisant OCSP Stapling (également connu sous le nom d'extension TLS "Certificate Status Request" ; voir [RFC6066]), où la réponse inclut une extension OCSP avec l'OID 1.3.6.1.4.1.11129.2.4.5 (voir [RFC2560]) et le corps :
SignedCertificateTimestampList ::= OCTET STRING
Au moins un SCT DOIT être inclus. Les opérateurs de serveurs PEUVENT inclure plus d'un SCT.
De même, une autorité de certification PEUT soumettre un Précertificat à plus d'un journal, et tous les SCT obtenus peuvent être directement intégrés dans le certificat final, en encodant la structure SignedCertificateTimestampList comme une OCTET STRING ASN.1 et en insérant les données résultantes dans le TBSCertificate comme une extension de certificat X.509v3 (OID 1.3.6.1.4.1.11129.2.4.2). Lors de la réception du certificat, les clients peuvent reconstruire le TBSCertificate original pour vérifier la signature SCT.
Le contenu de l'OCTET STRING ASN.1 intégrée dans une extension OCSP ou une extension de certificat X509v3 est le suivant :
opaque SerializedSCT<1..2^16-1>;
struct {
SerializedSCT sct_list <1..2^16-1>;
} SignedCertificateTimestampList;
Ici, "SerializedSCT" est une chaîne d'octets opaque qui contient la structure TLS sérialisée. Cet encodage garantit que les clients TLS peuvent décoder chaque SCT individuellement (c'est-à-dire, s'il y a une mise à niveau de version, les clients obsolètes peuvent toujours analyser les anciens SCT tout en sautant les nouveaux SCT dont ils ne comprennent pas les versions).
De même, les SCT peuvent être intégrés dans une extension TLS. Voir ci-dessous pour plus de détails.
Les clients TLS DOIVENT implémenter les trois mécanismes. Les serveurs DOIVENT implémenter au moins un des trois mécanismes. Notez que les serveurs TLS existants peuvent généralement utiliser le mécanisme d'extension de certificat sans modification.
Les serveurs TLS devraient envoyer des SCT de plusieurs journaux au cas où un ou plusieurs journaux ne seraient pas acceptables pour le client (par exemple, si un journal a été rayé pour mauvaise conduite ou a eu une compromission de clé).