Zum Hauptinhalt springen

3.3. Including the Signed Certificate Timestamp in the TLS Handshake (SCT im TLS-Handshake)

3.3. Including the Signed Certificate Timestamp in the TLS Handshake (SCT im TLS-Handshake)

Die SCT-Daten zum End-Entity-Zertifikat aus mindestens einem Log MÜSSEN in den TLS-Handshake einbezogen werden, entweder über eine unten beschriebene X509v3-Zertifikatserweiterung, über eine TLS-Erweiterung (Abschnitt 7.4.1.4 von [RFC5246]) vom Typ signed_certificate_timestamp, oder über Online Certificate Status Protocol (OCSP) Stapling (auch „Certificate Status Request“-TLS-Erweiterung; siehe [RFC6066]), wobei die Antwort eine OCSP-Erweiterung mit OID 1.3.6.1.4.1.11129.2.4.5 (siehe [RFC2560]) und folgendem Body enthält:

    SignedCertificateTimestampList ::= OCTET STRING

Mindestens ein SCT MUSS enthalten sein. Server-Betreiber KÖNNEN mehr als einen SCT einfügen.

Ebenso KANN eine Zertifizierungsstelle ein Precertificate an mehrere Logs senden, und alle erhaltenen SCTs können direkt im Endzertifikat eingebettet werden, indem die SignedCertificateTimestampList-Struktur als ASN.1 OCTET STRING kodiert und als X509v3-Zertifikatserweiterung (OID 1.3.6.1.4.1.11129.2.4.2) ins TBSCertificate eingefügt wird. Beim Empfang des Zertifikats können Clients die ursprüngliche TBSCertificate rekonstruieren, um die SCT-Signatur zu verifizieren.

Der Inhalt des in einer OCSP- oder X509v3-Erweiterung eingebetteten ASN.1 OCTET STRING ist wie folgt:

     opaque SerializedSCT<1..2^16-1>;

struct {
SerializedSCT sct_list <1..2^16-1>;
} SignedCertificateTimestampList;

Hier ist SerializedSCT eine opake Bytekette mit der serialisierten TLS-Struktur. Diese Kodierung stellt sicher, dass TLS-Clients jeden SCT einzeln dekodieren können (d. h. bei Versionswechsel können veraltete Clients alte SCTs weiter parsen und neuere SCTs mit unbekannter Version überspringen).

Ebenso können SCTs in einer TLS-Erweiterung eingebettet werden. Siehe unten.

TLS-Clients MÜSSEN alle drei Mechanismen implementieren. Server MÜSSEN mindestens einen der drei Mechanismen implementieren. Bestehende TLS-Server können üblicherweise die Zertifikatserweiterung ohne Änderung nutzen.

TLS-Server SOLLEN SCTs mehrerer Logs senden, falls ein oder mehrere Logs für den Client inakzeptabel sind (z. B. wegen Fehlverhaltens oder Kompromittierung eines Schlüssels).