Che cosa significa esattamente quando Chrome segnala "nessuna informazione sulla trasparenza del certificato è stata fornita dal server?"

156

Quando visiti Gmail in Chrome, se faccio clic sull'icona a forma di lucchetto nella barra degli indirizzi e vai alla scheda di connessione, ricevo un messaggio "nessuna informazione di trasparenza del certificato è stata fornita dal server" (prima di Chrome 45, il messaggio era visualizzato come "l'identità di questo sito web è stata verificata da Google Internet Authority G2 ma non ha record di controllo pubblici").

Che cosa significa esattamente che il certificato non ha record di controllo pubblici? Le loro certe minacce sono che un sito che utilizza un certificato senza record di controllo pubblico non ha un sito che utilizza un certificato con record di controllo pubblici?

    
posta Andrew 06.03.2014 - 17:12
fonte

4 risposte

150

Nota : se sei qui perché il tuo certificato non è considerato affidabile da Chrome, questo non è il motivo. Chrome continuerà a fidarsi dei certificati senza le informazioni CT. Se il tuo certificato non è attendibile, c'è un ulteriore fattore che potresti aver perso.

Questohaachefareconilconcettodi Trasparenza certificato .

Il problema

I browser attualmente si fidano dei certificati se sono soddisfatte quattro condizioni: (a) il certificato è firmato da una CA attendibile, (b) l'ora corrente è compresa nel periodo valido del certificato e dei certificati di firma (tra notBefore e notAfter volte), (c) né il certificato né alcun certificato di firma sono stati revocati, e infine, (d) il certificato corrisponde al nome di dominio dell'URL desiderato.

Ma queste regole lasciano la porta aperta agli abusi. Una CA attendibile può ancora emettere certificati per le persone che non dovrebbero averli. Ciò include CA compromesse (come DigiNotar ) e anche CA come Trustwave che ha emesso almeno un certificato di firma intermedio da utilizzare nell'esecuzione dell'intercettazione man-in-the-middle del traffico SSL. Una cronologia dettagliata degli errori CA può essere trovata in History of Risks & Eventi di minaccia a CA e PKI .

Un problema chiave qui è che le CA rilasciano questi certificati in segreto. Non saprai che Trustwave o DigiNotar hanno emesso un certificato fraudolento finché non hai visto il certificato, nel qual caso sei probabilmente l'obiettivo del perpetratore, non qualcuno che può effettivamente fare un vero audit. Per prevenire abusi o errori, abbiamo bisogno che le CA realizzino la cronologia dei certificati che firmano pubblici .

La soluzione

Il modo in cui affrontiamo questo è creare un registro di certificati emessi. Questo può essere mantenuto dall'emittente o può essere gestito da qualcun altro. Ma il punto importante è che (a) il registro non può essere modificato, puoi solo aggiungere nuove voci e (b) il tempo che un certificato viene aggiunto a il registro è verificato tramite il timestamp corretto. Tutto è, ovviamente, crittograficamente assicurato per impedire manomissioni, e il pubblico può guardare il contenuto del log cercando di vedere se viene emesso un certificato per un dominio che sa che non dovrebbe avere.

Se il tuo browser vede un certificato che dovrebbe essere nel log ma non lo è, o che è nel log ma qualcosa non corrisponde (ad esempio il timestamp sbagliato, ecc.), allora il browser può prendere le misure appropriate.

Quello che stai guardando in Chrome, quindi, indica se esiste un log pubblicamente udibile per il certificato che stai guardando. In caso affermativo, Chrome può anche verificare se è stata creata la voce di registro appropriata e quando.

Quanto è usato?

Google mantiene un elenco di "log noti" sul loro sito . Al momento della stesura di questo documento, ci sono registri gestiti da Google, Digicert, Izenpe e Certly, ognuno dei quali può mantenere l'audit trail per qualsiasi numero di CA.

Il team di Chrome ha indicato che i certificati EV emessi dopo il 1 ° gennaio 2015 devono tutti essere sottoposti a un controllo pubblico sentiero da considerare EV. E dopo l'applicazione dell'esperienza acquisita con i registri di verifica dei certificati EV, continueranno l'implementazione a tutti gli emittenti di certificati.

Come controllare i log

Google ha aggiunto un modulo di ricerca per la trasparenza del certificato al suo Rapporto trasparenza standard, il che significa che puoi ora eseguire una query per i domini che ti interessano per vedere quali certificati per tali domini vengono visualizzati nei registri di trasparenza. Ciò ti consente di vedere, ad esempio, quali certificati sono attualmente validi per il tuo dominio, supponendo che le CA collaborino.

Cercalo qui: link

Ricorda che se vuoi rintracciare un determinato nome di dominio per essere avvisato quando un certificato viene aggiornato, allora dovresti seguire i registri direttamente. Questo modulo è utile per fare query puntuali, non per generare avvisi.

    
risposta data 06.03.2014 - 18:12
fonte
40

Questo è un progetto di Google chiamato Certificate Certificate che tenta di correggere i difetti con il sistema di certificati SSL.

Ha essenzialmente tre obiettivi principali. (Sollevato dal link )

  • Rendere impossibile (o almeno molto difficile) che una CA rilasci un certificato SSL per un dominio senza che il certificato sia visibile al proprietario di quel dominio.
  • Fornire un sistema di controllo e controllo aperto che consente a qualsiasi proprietario di dominio o CA di determinare se i certificati sono stati emessi in modo errato o errato.
  • Proteggi gli utenti (il più possibile) dall'essere ingannati da certificati erroneamente o maliziosamente emessi.

Fonte: link

    
risposta data 06.03.2014 - 18:06
fonte
5

A partire dal 1 ° gennaio 2015 tutti i certificati EV devono disporre di record di controllo pubblici (Timestamp dei certificati firmati). Il modo più comune per includere questi record è tramite Embedded SCT. Questo metodo include una nuova estensione certificato / OID (1.3.6.1.4.1.11129.2.4.2) nel file del certificato stesso.

Per i certificati OV e DV, è possibile richiedere che la CA aggiunga i certificati ai registri CT. So che DigiCert farà questo. Alla fine, anche questi tipi di certificato dovranno essere abilitati per CT.

Per avere gli SCT incorporati, devi riemettere qualsiasi certificato che desideri avere i record di controllo pubblico dopo che la CA ha abilitato i certificati.

    
risposta data 02.03.2015 - 16:17
fonte
2

What exactly does it mean when Chrome reports a certificate 'does not have public audit records'?

Penso che Tyler abbia fatto un ottimo lavoro nello spiegare il messaggio e la CT, quindi non è necessario rimodellarlo.

Sulla base del commento di @Colonel Panic per un sito di test, ecco come appare il certificato dell'entità finale (server) ike. Nota: è necessario utilizzare TLS 1.0 (o superiore) e Indicazione nome server per ottenere il certificato corretto. Questa è l'opzione -servername di seguito.

$ 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

Non mi è chiaro come creare effettivamente una di queste cose se stai utilizzando un PKI privato. C'è il supporto per l'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

E

$ 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

Quindi c'è il supporto per presentazione / visualizzazione, ma NO su come utilizzarlo nel codice di auto-documentazione di OpenSSL. In genere, l'autocomposizione viene visualizzata nella directory <openssl src>/apps mediante l'uso di una funzione nei sottocomandi.

C'è una domanda aperta sulla mailing list OpenSSL a riguardo: Come aggiungere CT Precertificate SCT a un certificato del server? .

    
risposta data 20.04.2015 - 01:27
fonte

Leggi altre domande sui tag