it-swarm.com.de

Was genau bedeutet es, wenn Chrome meldet, dass vom Server keine Informationen zur Zertifikatstransparenz bereitgestellt wurden?)

Wenn ich beim Besuch von Google Mail in Chrome auf das Schlosssymbol in der Adressleiste klicke und zur Registerkarte "Verbindung" gehe, wird die Meldung "Vom Server wurden keine Informationen zur Zertifikatstransparenz bereitgestellt" angezeigt (vor Chrome) = 45 wurde die Meldung angezeigt als "Die Identität dieser Website wurde von Google Internet Authority G2 überprüft, verfügt jedoch nicht über öffentliche Prüfungsaufzeichnungen".

Was genau bedeutet es, dass das Zertifikat keine öffentlichen Prüfungsunterlagen enthält? Sind ihre bestimmten Bedrohungen eine Site, die ein Zertifikat ohne öffentliche Audit-Aufzeichnungen verwendet, eine Site, die ein Zertifikat mit öffentlichen Audit-Aufzeichnungen verwendet, nicht?

(Examples of the message as of Chrome 45 and before Chrome 45

156
Andrew

Hinweis: Wenn Sie hier sind, weil Chrome Ihrem Zertifikat nicht vertraut, ist dies der Fall nicht der Grund. Chrome vertraut weiterhin Zertifikaten ohne CT-Informationen. Wenn Ihr Zertifikat nicht vertrauenswürdig ist, gibt es einen zusätzlichen Faktor, den Sie möglicherweise übersehen haben.

Comparison of auditable versus no audit record

Dies hat mit dem Konzept von Zertifikatstransparenz zu tun.

Das Problem

Browser vertrauen derzeit Zertifikaten, wenn vier Bedingungen erfüllt sind: (a) das Zertifikat wird von einer vertrauenswürdigen Zertifizierungsstelle signiert, (b) die aktuelle Zeit liegt innerhalb des gültigen Zeitraums des Zertifikats und der Signaturzertifikate (zwischen notBefore und notAfter times), (c) weder das Zertifikat noch ein Signaturzertifikat wurden widerrufen, und schließlich (d) stimmt das Zertifikat mit dem Domainnamen der gewünschten URL überein.

Aber diese Regeln lassen die Tür für Missbrauch offen. Eine vertrauenswürdige Zertifizierungsstelle kann weiterhin Zertifikate an Personen ausstellen, die diese nicht haben sollten. Dies umfasst gefährdete Zertifizierungsstellen (wie DigiNotar ) und auch Zertifizierungsstellen wie Trustwave , die mindestens ein Zwischensignaturzertifikat ausgestellt haben, um das Man-in-the-Middle-Abfangen von SSL-Verkehr durchzuführen . Eine kuratierte Historie von CA-Fehlern finden Sie unter CAcert's Historie von Risiken und Bedrohungsereignissen für CAs und PKI .

Ein Hauptproblem hierbei ist, dass Zertifizierungsstellen diese Zertifikate im Geheimen ausstellen. Sie werden nicht wissen, dass Trustwave oder DigiNotar ein betrügerisches Zertifikat ausgestellt haben, bis Sie tatsächlich siehe das Zertifikat. In diesem Fall sind Sie wahrscheinlich das Ziel des Täters und nicht jemand, der tatsächlich eine echte Prüfung durchführen kann . Um Missbrauch oder Fehler zu vermeiden, benötigen wir Zertifizierungsstellen, um die Historie der von ihnen signierten Zertifikate zu erstellen öffentlich.

Die Lösung

Wir gehen damit um, indem wir ein Protokoll der ausgestellten Zertifikate erstellen. Dies kann vom Emittenten oder von einer anderen Person verwaltet werden. Der wichtige Punkt ist jedoch, dass (a) das Protokoll nicht bearbeitet werden kann, Sie nur anhängen neue Einträge und (b) die Zeit dass a Das dem Protokoll hinzugefügte Zertifikat wird durch eine ordnungsgemäße Zeitstempelung überprüft. Natürlich ist alles kryptografisch gesichert, um Manipulationen zu verhindern, und die Öffentlichkeit kann den Inhalt des Protokolls überprüfen, um festzustellen, ob ein Zertifikat für eine Domain ausgestellt wurde, von der sie wissen, dass sie es nicht haben sollte.

Wenn Ihr Browser dann ein Zertifikat sieht, das sollte sein im Protokoll, aber nicht, oder das im Protokoll ist, aber etwas nicht übereinstimmt (z. B. der falsche Zeitstempel usw.), dann das Browser kann entsprechende Maßnahmen ergreifen.

In Chrome wird also angezeigt, ob für das betreffende Zertifikat ein öffentlich hörbares Protokoll vorhanden ist. Wenn dies der Fall ist, kann Chrome auch prüfen, ob und wann der entsprechende Protokolleintrag vorgenommen wurde.

Wie weit verbreitet ist es?

Google führt eine Liste "bekannter Protokolle" auf ihrer Website . Zum jetzigen Zeitpunkt werden von Google, Digicert, Izenpe und Certly Protokolle verwaltet, von denen jedes den Prüfpfad für eine beliebige Anzahl von Zertifizierungsstellen verwalten kann.

Das Chrome Team hat angegeben , dass EV-Zertifikate, die nach dem 1. Januar 2015 ausgestellt wurden, einen öffentlichen Prüfpfad haben müssen, um als EV zu gelten. Und nach den Erfahrungen, die mit dem Umgang mit EV-Zertifikaten gesammelt wurden Wenn Überwachungsprotokolle angewendet wurden, wird der Rollout für alle Zertifikatsaussteller fortgesetzt.

So überprüfen Sie die Protokolle

Google hat seinem Standardtransparenzbericht ein Formular zur Suche nach Zertifikatstransparenz hinzugefügt. Dies bedeutet, dass Sie jetzt nach den Domänen abfragen können, die Sie interessieren, um festzustellen, welche Zertifikate für diese Domänen in den Transparenzprotokollen angezeigt werden. Auf diese Weise können Sie beispielsweise sehen, welche Zertifikate derzeit für Ihre Domain gültig sind, sofern die Zertifizierungsstellen zusammenarbeiten.

Suchen Sie hier danach: https://www.google.com/transparencyreport/https/ct/

Denken Sie daran, dass Sie den Protokollen direkt folgen sollten, wenn Sie verfolgen einen bestimmten Domainnamen möchten, der benachrichtigt werden soll, wenn ein Zertifikat aktualisiert wird. Dieses Formular ist nützlich, um Abfragen zu bestimmten Zeitpunkten durchzuführen und keine Warnungen zu generieren.

150
tylerl

Dies ist ein Projekt von Google mit dem Namen Zertifikatstransparenz , das versucht, Fehler im SSL-Zertifikatsystem zu beheben.

Es hat im Wesentlichen drei Hauptziele. (Aufgehoben von http://www.certificate-transparency.org/what-is-ct )

  • Machen Sie es einer Zertifizierungsstelle unmöglich (oder zumindest sehr schwierig), ein SSL-Zertifikat für eine Domäne auszustellen, ohne dass das Zertifikat für den Eigentümer dieser Domäne sichtbar ist.
  • Stellen Sie ein offenes Überwachungs- und Überwachungssystem bereit, mit dem jeder Domäneninhaber oder jede Zertifizierungsstelle feststellen kann, ob Zertifikate fälschlicherweise oder in böswilliger Absicht ausgestellt wurden.
  • Schützen Sie Benutzer (so weit wie möglich) davor, durch versehentlich oder böswillig ausgestellte Zertifikate betrogen zu werden.

Quelle: http://www.certificate-transparency.org/certificate-transparency-in-chrome

40
user10211

Ab dem 1. Januar 2015 müssen alle EV-Zertifikate über öffentliche Audit-Aufzeichnungen (Signed Certificate Timestamps) verfügen. Die häufigste Art, diese Datensätze einzuschließen, sind eingebettete SCTs. Diese Methode enthält eine neue Zertifikatserweiterung/OID (1.3.6.1.4.1.11129.2.4.2) in der Zertifikatdatei.

Bei OV- und DV-Zertifikaten können Sie von Ihrer Zertifizierungsstelle verlangen, dass sie Ihre Zertifikate zu ihren CT-Protokollen hinzufügt. Ich weiß, dass DigiCert dies tun wird. Für diese Zertifikatstypen muss wahrscheinlich auch CT aktiviert sein.

Um die SCTs einbetten zu können, müssen Sie jedes Zertifikat erneut ausstellen, für das Sie die öffentlichen Audit-Aufzeichnungen haben möchten, nachdem Ihre Zertifizierungsstelle sie für Ihre Zertifikate aktiviert hat.

5
clintwilson

Was genau bedeutet es, wenn Chrome ein Zertifikat meldet, dass keine öffentlichen Prüfungsaufzeichnungen vorhanden sind)?

Ich denke, Tyler hat die Nachricht und die CT hervorragend erklärt, so dass es nicht nötig ist, sie erneut aufzuwärmen.

Basierend auf dem Kommentar von @Colonel Panic für eine Testsite sieht das Endentitätszertifikat (Serverzertifikat) wie folgt aus. Hinweis: Sie müssen TLS 1.0 (oder höher) und Server Name Indication verwenden, um das richtige Zertifikat zu erhalten. Das ist das -servername Option unten.

$ openssl s_client -connect embed.ct.digicert.com:443 -tls1 -servername embed.ct.digicert.com | \
    openssl x509 -text -noout
depth=1 C = US, O = DigiCert Inc, CN = DigiCert SHA2 Secure Server CA
verify error:num=20:unable to get local issuer certificate
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            03:e0:aa:80:19:13:06:8a:28:73:f0:24:29:3e:e4:61
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, O=DigiCert Inc, CN=DigiCert SHA2 Secure Server CA
        Validity
            Not Before: Nov 13 00:00:00 2014 GMT
            Not After : Nov 18 12:00:00 2015 GMT
        Subject: C=US, ST=Utah, L=Lehi, O=DigiCert, Inc., CN=embed.ct.digicert.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:9a:64:73:61:53:66:b8:aa:80:c7:cc:53:67:6a:
                    df:da:a9:b1:6a:c5:53:63:55:5f:14:4c:b3:27:d1:
                    3c:e4:0a:1a:e7:16:48:bc:15:46:7e:63:e8:27:3c:
                    c5:28:bd:79:cf:34:d5:9a:67:1e:0c:27:6e:ec:00:
                    5e:69:38:5b:a7:16:4f:b9:09:ec:fc:7e:f2:41:b7:
                    f9:54:f4:6c:c3:22:a6:f5:99:f4:be:9d:64:26:75:
                    9e:b2:b9:16:d7:f5:51:9f:53:ce:74:ca:d6:d6:7a:
                    4a:d4:4d:0e:4d:73:93:30:3c:b9:b8:1d:a0:d8:94:
                    8c:59:7e:82:a4:4c:82:fc:c3:73:7f:b1:56:28:4e:
                    b5:f7:73:53:ac:7b:30:a4:bc:b9:6c:c0:b6:67:0d:
                    19:5e:40:22:11:11:8c:6d:3a:87:47:08:e6:5c:7b:
                    17:7c:64:7a:a1:ff:8c:7c:37:b6:b7:91:2c:c2:90:
                    7e:cc:48:1f:57:1e:f9:db:d4:ac:cf:d9:2b:60:ff:
                    13:2d:88:c5:7e:d8:eb:ec:ed:85:d7:9e:f9:56:32:
                    ca:c1:6b:24:64:9f:63:ba:83:ee:a1:85:4a:e3:ad:
                    45:8c:92:95:3a:e0:80:91:9b:60:b5:75:88:86:4e:
                    0f:81:8c:b5:f4:77:fd:e5:f3:36:f6:33:d6:2b:a0:
                    c4:91
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Authority Key Identifier: 
                keyid:0F:80:61:1C:82:31:61:D5:2F:28:E7:8D:46:38:B4:2C:E1:C6:D9:E2

            X509v3 Subject Key Identifier: 
                88:4F:83:16:87:AD:AE:1E:FF:04:4A:79:66:92:C6:9F:62:69:4F:B1
            X509v3 Subject Alternative Name: 
                DNS:embed.ct.digicert.com
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://crl3.digicert.com/ssca-sha2-g3.crl

                Full Name:
                  URI:http://crl4.digicert.com/ssca-sha2-g3.crl

            X509v3 Certificate Policies: 
                Policy: 2.16.840.1.114412.1.1
                  CPS: https://www.digicert.com/CPS

            Authority Information Access: 
                OCSP - URI:http://ocsp.digicert.com
                CA Issuers - URI:http://cacerts.digicert.com/DigiCertSHA2SecureServerCA.crt

            X509v3 Basic Constraints: critical
                CA:FALSE
            CT Precertificate SCTs: 
                Signed Certificate Timestamp:
                    Version   : v1(0)
                    Log ID    : A4:B9:09:90:B4:18:58:14:87:BB:13:A2:CC:67:70:0A:
                                3C:35:98:04:F9:1B:DF:B8:E3:77:CD:0E:C8:0D:DC:10
                    Timestamp : Nov 13 16:57:03.632 2014 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:45:02:20:06:14:6A:E3:6D:0F:84:5D:6A:98:E7:29:
                                94:80:8B:F2:A4:23:85:68:4E:F9:BC:50:7C:FF:7B:94:
                                EB:20:54:82:02:21:00:91:63:83:FD:F6:31:5E:38:08:
                                AF:A7:5E:00:B7:0B:9B:1F:8B:FD:4D:7E:49:3C:43:E6:
                                64:E5:4B:F9:60:D7:89
                Signed Certificate Timestamp:
                    Version   : v1(0)
                    Log ID    : 68:F6:98:F8:1F:64:82:BE:3A:8C:EE:B9:28:1D:4C:FC:
                                71:51:5D:67:93:D4:44:D1:0A:67:AC:BB:4F:4F:FB:C4
                    Timestamp : Nov 13 16:57:03.619 2014 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:45:02:20:61:4F:69:89:80:6A:62:2D:8E:A2:D0:24:
                                A5:E2:1D:74:67:51:77:C1:9B:DE:99:DE:16:56:2B:02:
                                77:A8:25:49:02:21:00:D3:41:6C:5D:88:40:F0:7A:FE:
                                E0:25:09:86:71:63:86:49:54:DD:96:E4:B5:9B:4A:84:
                                65:A9:25:12:F1:B7:E0
    Signature Algorithm: sha256WithRSAEncryption
         62:0c:d1:51:08:8a:a3:d1:df:bc:53:ba:e9:58:67:41:ea:5f:
         e3:51:f2:0b:9d:24:b4:77:6a:cf:96:ff:c5:ce:1c:55:1e:77:
         8a:49:46:7d:19:ef:52:4f:d3:24:b1:f2:95:60:67:40:d4:d1:
         f4:27:e4:66:55:45:c6:a5:51:a6:87:d0:09:af:f6:48:9b:df:
         24:c9:28:ad:47:b9:f6:a3:86:cb:64:64:3d:90:92:0e:94:f7:
         d2:8b:d6:79:b4:df:f2:3f:f5:6e:ea:08:b3:b0:37:87:a3:30:
         a7:f1:db:b7:86:b2:39:64:35:93:ee:5f:7b:01:51:5f:b1:e1:
         e0:d1:5d:a6:e6:a3:53:3f:66:97:16:8f:18:c4:fa:fc:8e:85:
         79:a1:95:7b:69:0b:f5:a4:92:1f:04:cf:ed:f6:95:e3:8f:b4:
         2a:6a:be:0c:a2:b6:53:99:5d:50:78:23:1c:fb:cb:2e:1d:be:
         b5:8d:83:2e:08:96:f8:c9:be:96:13:ed:61:0f:cf:57:44:ff:
         3a:d5:10:b0:bd:08:1f:27:c4:cf:97:17:e8:6a:62:bc:6d:e9:
         64:39:a0:36:79:d6:02:84:b7:47:26:9b:5d:b1:92:aa:f1:36:
         1a:31:9e:27:f2:25:54:89:17:ac:56:54:b0:e0:41:67:e4:b8:
         7b:e0:2c:88

Mir ist nicht klar, wie man eines dieser Dinge tatsächlich erstellt, wenn man eine private PKI ausführt. Es gibt Unterstützung für OID in OpenSSL:

$ grep -R "1.3.6.1.4.1.11129.2.4.2" *
crypto/objects/obj_dat.h:951,   /* OBJ_ct_precert_scts    1 3 6 1 4 1 11129 2 4 2 */
crypto/objects/objects.txt:1 3 6 1 4 1 11129 2 4 2  : ct_precert_scts   : CT Precertificate SCTs

Und:

$ grep -R ct_precert_scts *
crypto/objects/obj_dat.h:0x2B,0x06,0x01,0x04,0x01,0xD6,0x79,0x02,0x04,0x02,/* [6191] OBJ_ct_precert_scts */
crypto/objects/obj_dat.h:{"ct_precert_scts","CT Precertificate SCTs",NID_ct_precert_scts,10,
crypto/objects/obj_dat.h:951,   /* "ct_precert_scts" */
crypto/objects/obj_dat.h:951,   /* OBJ_ct_precert_scts    1 3 6 1 4 1 11129 2 4 2 */
crypto/objects/obj_mac.num:ct_precert_scts      951
crypto/objects/objects.txt:1 3 6 1 4 1 11129 2 4 2  : ct_precert_scts   : CT Precertificate SCTs
crypto/x509v3/v3_scts.c:    {NID_ct_precert_scts, 0, NULL,
include/openssl/obj_mac.h:#define SN_ct_precert_scts    "ct_precert_scts"
include/openssl/obj_mac.h:#define LN_ct_precert_scts    "CT Precertificate SCTs"
include/openssl/obj_mac.h:#define NID_ct_precert_scts    951
include/openssl/obj_mac.h:#define OBJ_ct_precert_scts             1L,3L,6L,1L,4L,1L,11129L,2L,4L,2L

Es gibt also Präsentations-/Anzeigeunterstützung, aber [~ # ~] nein [~ # ~] Beispiel dafür Verwenden Sie es im selbstdokumentierenden Code von OpenSSL. In der Regel wird die Selbstdokumentation im <openssl src>/apps Verzeichnis über die Verwendung eines Features in Unterbefehlen.

Es gibt eine offene Frage in der OpenSSL-Mailingliste: Wie füge ich einem Serverzertifikat CT Precertificate SCTs hinzu? .

2
user29925