Come determinare una catena di fiducia effettiva per cert su MacOS X?

1

Sto riscontrando alcuni problemi curiosi con la verifica dei certificati per un certificato Emittente: Entrust - L1K che è stato emesso ed è in uso (per ispezione del certificato in Chrome e Firefox) per un sito interno qui.

  • Non vedo alcun cesto Oggetto: Entrust - L1K in nessuno dei miei portachiavi locali, eppure i browser si connettono felicemente, almeno dall'interno dell'azienda.

  • Ho notato per la prima volta qualcosa di sbagliato con alcuni script Python, quindi ho deciso che openssl non avrebbe verificato il certificato del sito. Inoltre non ha alcuna rappresentazione nel pacchetto certifi cert python, che è presumibilmente tenuto aggiornato.

  • (C'è anche un caso verificato di un individuo in grado di connettersi senza problemi all'interno della rete aziendale ma vedere un avviso "non può verificare" su questo Entrust - L1K cert quando ci si connette VPN, stesso sistema, nessun riavvio o altro)

Dopo aver scaricato un certificato per Entrust - L1K direttamente da Entrust con Emittente: Entrust - G2 , posso costruire una catena di fiducia valida con root in una CA Entrust Root:

Entrust Root Certification Authority - G2  (this is present in my keychain)
--> Entrust Certification Authority - L1K  (this is the newly downloaded cert)
    --> Local site                         (this is the cert the browser was presented)

Nota che sto facendo questo con openssl e con i file cert manipolati in una directory di lavoro. Nel mio portachiavi è presente solo il certificato Entrust Root.

Ho diverse domande per la testa.

  1. (Il principale) Come faccio a vedere la catena di fiducia che conduce al mio browser non mi lamento quando mi collego al sito locale, dato che non riesco a trovare i certificati in nessuno dei miei portachiavi che puoi crearne uno?

  2. L1K è una nuova sotto-autorizzazione in Entrust? Il Oggetto: Entrust - L1K cert ha Validity Not Before: Oct 5 19:13:56 2015 GMT . Come dovrebbe un nuovo cert come questo normalmente arrivare ai sistemi finali?

  3. C'è qualcosa di diverso da una catena di servizi di sicurezza locale che i browser client potrebbero utilizzare per la verifica dei certificati, che spiegherebbe le connessioni felici? E cosa potrebbe spiegare l'errore di verifica del cert su VPN?

Segue il modulo di testo del cert L1K ottenuto manualmente da Entrust. Come accennato, questo certificato completa la catena di fiducia tra il certificato del sito e il certificato radice per Autorità di certificazione delle entrate di Entrust - G2 :

$ openssl x509 -in ../entrust_l1k.pem  -text | more
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            0e:e9:4c:c3:00:00:00:00:51:d3:77:85
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
        Validity
            Not Before: Oct  5 19:13:56 2015 GMT
            Not After : Dec  5 19:43:56 2030 GMT
        Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2012 Entrust, Inc. - for authorized use only, CN=Entrust Certification Authority - L1K
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (2048 bit)
                Modulus (2048 bit):
                    00:da:3f:96:d0:4d:b9:2f:44:e7:db:39:5e:9b:50:
                                    :
                                (elided)
                                    :
                    35:fe:53:19:2f:08:46:c1:2a:b3:1a:62:1d:4e:2b:
                    d9:1b
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:0
            Authority Information Access: 
                OCSP - URI:http://ocsp.entrust.net

            X509v3 CRL Distribution Points: 
                URI:http://crl.entrust.net/g2ca.crl

            X509v3 Certificate Policies: 
                Policy: X509v3 Any Policy
                  CPS: http://www.entrust.net/rpa

            X509v3 Subject Key Identifier: 
                82:A2:70:74:DD:BC:53:3F:CF:7B:D4:F7:CD:7F:A7:60:C6:0A:4C:BF
            X509v3 Authority Key Identifier: 
                keyid:6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB
    
posta Scott 13.04.2016 - 23:25
fonte

1 risposta

1

risolto. Il sito doveva aggiungere il cert intermedio al file PEM. Stavo trascurando la vista della catena di trust nel browser che mostrava che stava recuperando il cert intermedio, un passaggio che non era stato eseguito negli altri casi di utilizzo.

Quindi per rispondere alle mie domande:

  1. La catena di trust effettiva era infatti visibile richiamando i dettagli di sicurezza facendo clic sull'icona a forma di lucchetto nella barra degli indirizzi del browser e visualizzando le informazioni del certificato.

  2. Non sei sicuro della cronologia di Entrust - L1K , ma qui c'è un piccolo dettaglio. La domanda "come arrivare al sistema di certificazione dei certificati" viene sostituita dalla risposta alla parte 3 di seguito.

  3. Il cert intermedio dovrebbe essere fornito nel pacchetto cert che il server del sito presenta al browser client. Poiché non lo era, le mie connessioni openssl e python stavano fallendo, ma i browser usavano l'estensione di certificato "Certificate Authority Information Access" per recuperarla automaticamente, almeno in alcuni contesti.

risposta data 14.04.2016 - 01:44
fonte

Leggi altre domande sui tag