Aggiunta di un certificato autofirmato all'archivio di fiducia

10

Ho letto dei certificati e spesso si dice che il certificato autofirmato non dovrebbe essere aggiunto all'archivio delle autorità attendibili e anche se lo hai fatto, rimuovilo subito dopo l'uso.

MSDN Procedura: creare certificati temporanei da utilizzare durante lo sviluppo

Be sure to delete any temporary root authority certificates from the Trusted Root Certification Authorities and Personal folders by right-clicking the certificate, then clicking Delete.

Perché l'aggiunta di un certificato autofirmato all'archivio di fiducia è considerato un rischio per la sicurezza? Come può essere sfruttato da un hacker?

Qualcuno può spiegarmi con un esempio?

    
posta Chandan 04.06.2013 - 08:48
fonte

4 risposte

5

Immagina di voler visitare il link .

Come puoi essere sicuro che stai visitando di fatto link ? Puoi verificare che le informazioni fornite dal certificato SSL siano autentiche.

SeunutentemalintenzionatoesegueunattaccoMITMcontrodite,ilbrowservisualizzeràunavvisosottoformadilucchettorossoanzichéverde.

Se un utente malintenzionato ha la possibilità di aggiungere un certificato autofirmato all'archivio di fiducia, il browser verificherà che il sito Web contraffatto che l'utente malintenzionato sta utilizzando per attaccare sia effettivamente autentico. Questo ha ovvie implicazioni sulla sicurezza poiché non avrai la possibilità di verificare l'autenticità di un sito Web attraverso il certificato SSL.

( EDIT : grazie a @Adnan e @ D3C4FF per indicare che la mia risposta in origine non risolve la situazione dell'aggiunta di certificati di sviluppo personali.)

Per quanto riguarda l'aggiunta di certificati generati per scopi di sviluppo, non penso che ci sia un grande rischio per la sicurezza. Supponendo che il certificato CA radice che hai generato sia mantenuto locale e non pubblicato da qualche parte (o meglio ancora cancellato dopo averlo fatto), nessun altro sarà in grado di firmare certificati che verranno mostrati come affidabili sul tuo browser. Tuttavia, il suggerimento di Microsoft è ancora valido, inutile ingombrare il tuo root store con certificati casuali da te generati. Questo potrebbe rendere molto più difficile l'individuazione di un effettivo certificato di root dannoso aggiunto da un utente malintenzionato.

    
risposta data 04.06.2013 - 08:54
fonte
6

Certificati autofirmati

Se disponi di una chiave CA (privata), che è la stessa del CSR che tu firmi, quindi crei un certificato autofirmato . Se invece si creano chiavi separate per l'entità di cui si desidera confermare l'identità e la CA ha utilizzato per confermare l'identità, non è più formalmente un certificato autofirmato.

I certificati autofirmati sono principalmente utilizzati a scopo di test e quindi temporanei. Questo può essere applicato limitando il loro periodo di validità, ma spesso non viene fatto a favore della convenienza.

Come fanno le CA reali

Le CA avranno una gerarchia di chiavi / certificati (comprendente la catena di certificati che probabilmente avete sentito). Se tu - o il tuo fornitore del sistema operativo - scegli di fidarti di un certificato CA radice, questo implica la fiducia nelle Sub-CA i cui certificati sono stati firmati con la chiave CA principale.

Ciò significa che la chiave CA principale richiede la massima sicurezza, poiché può essere utilizzata per creare un numero qualsiasi di Sub-CA che sarà definitivamente considerato attendibile se qualcuno ha scelto di fidarsi del certificato CA radice.

Be sure to delete any temporary root authority certificates from the Trusted Root Certification Authorities and Personal folders by right-clicking the certificate, then clicking Delete.

Ha perfettamente senso ora, se si considera che un certificato CA radice (con chiave) appropriato avrà il più grande potenziale di essere abusato e creare il più grande successo per un attaccante. se compromesso. Ti consigliamo di conservare quelli archiviati in modo sicuro a meno che non li stia utilizzando adesso per firmare una CSR in sub-CA. Quindi rimuovili e mantieni una copia per successivi scopi di firma CSR (se necessario).

Tuttavia, dato che la citazione riguarda chiaramente "certificati dell'autorità root temporanea", penso che l'indizio sia nascosto in temporaneo e questo è qualcosa che l'amministratore di sistema definisce come le proprie CA e Sub-CA (ovvero se si intende utilizzarle in futuro o meno).

Fondamentalmente è possibile considerare l'eliminazione di un certificato / chiave CA temporaneo che lo rende non disponibile a un utente malintenzionato, in modo simile alle misure di sicurezza delle effettive chiavi CA radice. Si presuppone che questa CA temporanea non verrà utilizzata per firmare altri certificati (per uso di sviluppo).

Quindi la parolina temporanea implica un po 'di più nella citazione di quanto non sembri a prima vista.

Come appare in pratica

Supponiamo che tu abbia una chiave CA radice che non scade mai (sebbene nella maggior parte dei casi sarà semplicemente un periodo relativamente lungo, come 20 anni) e un certificato CA radice corrispondente. Dovrai mantenere la chiave al sicuro da qualsiasi compromesso, specialmente se il certificato è considerato affidabile da molte persone. Questo è il caso dei certificati CA root di, ad esempio, Verisign o Comodo.

Tale chiave CA radice verrà quindi utilizzata esclusivamente per firmare il certificato di una CA secondaria (che ha una propria chiave distinta), creando così i primi due collegamenti in una catena di certificati che il browser o il signtool di Microsoft così come molte altre utility ti permettono di ispezionare. La chiave CA radice non sarebbe mai stata utilizzata direttamente per elaborare il tuo CSR e quindi confermare la tua identità come utente finale / sito web / azienda.

Ogni rispettiva sotto-CA verrà solitamente utilizzata solo per uno scopo particolare (ci sono campi extra per determinati scopi, come la firma del codice) e il suo periodo di validità sarà un sottoinsieme dei certificati CA della radice.

Ma questa è una differenza tra la chiave della CA principale e la chiave della CA secondaria: la chiave CA della radice può essere archiviata in modo sicuro (parlando sicurezza fisica qui) la maggior parte del tempo , a meno che non sia assolutamente necessario firmare la CSR per una nuova CA secondaria, mentre la chiave Sub-CA verrà probabilmente utilizzata su qualche tipo di server altamente sicuro per firmare le CSR dei clienti (quando si considera un'autorità di certificazione reale come Verisign). Ciò significa che la Sub-CA è più a rischio rispetto alla CA radice e perché si desidera applicare diversi livelli di sicurezza in primo luogo.

Il vantaggio è che, nel caso in cui la Sub-CA venga compromessa, il suo certificato può essere inserito in un ARL / CRL (elenco di revoche di autorità / certificato), mentre mettere il certificato della CA radice su un ARL / CRL è davvero giustificato per motivi tecnici (es. usando l'hash MD5 ora compromesso, una lunghezza della chiave non più considerata sicura ...). I costi associati a uno di questi sono il fattore di definizione a diversi livelli:

  • i costi per l'archiviazione sicura delle chiavi, in particolare la chiave CA principale deve essere protetta al massimo
  • i costi quando si cambiano i certificati CA di origine rispetto ai certificati di Sub-CA
  • costi durante la revoca (sotto) dei certificati
risposta data 04.06.2013 - 13:48
fonte
5

Se un tizio cattivo ruba la chiave privata di una CA che il tuo computer si fida, allora sarà in grado di emettere certificati falsi per nomi di server arbitrari e il tuo computer li accetterà come autentici senza un avvertimento. Ecco la tua ultima linea di difesa contro il falso www.google.com , www.paypal.com , e così via - benvenuto Man -in-the-Middle attacchi , addio al tuo conto bancario.

Questo scenario peggiore può essere evitato dalla fortuna (che spesso funziona bene) e proteggendo la chiave privata della CA personalizzata dal furto, che non è così facile come sembra, specialmente nei confronti dei colleghi, che spesso hanno accesso fisico intermittente alla tua macchina, ad esempio quando sei fuori per una pausa caffè (con accesso fisico possono fare molte cose brutte contro di te, ma rubare un file di chiave privata è davvero particolarmente discreto e difficile da rilevare).

    
risposta data 22.07.2013 - 22:29
fonte
1

La risposta di Terry ti fornisce un'ottima spiegazione su come funzionano i certificati. Vorrei provare direttamente a rispondere alla tua domanda.

L'intero scopo di avere certificati digitali in un browser web è abilitare la fiducia tra il browser e il server web con cui si desidera comunicare. Il browser convalida il certificato inviato dal server utilizzando la convalida della firma digitale utilizzando i certificati radice preinstallati. Questo meccanismo crittografico è lì per darti la certezza che la festa con cui stai comunicando è davvero quella che afferma di essere.

È possibile aggiungere la propria gerarchia di certificati a tre livelli nel browser per uso personale. Ciò eviterà le pagine di avviso mostrate dai browser quando incontrano un certificato inaffidabile, ma immagina il caso in cui riporti un certificato ritenuto attendibile dal tuo browser. Un malintenzionato intelligente può essere in grado di eseguire un MITM con successo utilizzando il certificato rubato e dal momento che il browser si fida del certificato non ci sarà alcun avviso mentre si visita il sito Web falso che sembra legittimo.

NB. L'intero scopo di avere fiducia basata sui certificati SSL è di evitare MITM

    
risposta data 04.06.2013 - 10:14
fonte

Leggi altre domande sui tag