Qual è il pericolo di ospitare il tuo certificato SSL da solo?

10

Dispongo di Servizi certificati Active Directory sul mio server, che mi consente di consegnare un certificato SSL per i siti Web ospitati sullo stesso server.

Lo so che normalmente, ho bisogno di acquisire un certificato da una nota autorità di certificazione. Ma ho le mie ragioni per non farlo. Non è questo il punto.

La domanda è: quale potrebbe essere (se esiste) il rischio di sicurezza di ospitare il certificato da solo, invece di utilizzare i servizi di un'autorità conosciuta?

¹ Le ragioni sono che (1) sono un geek ed è divertente creare i propri certificati, che (2) voglio testare i servizi certificati e che (3) non mi interessa i browser si lamentano del fatto che non sanno di me, perché sarò l'unico a usare HTTPS.

    
posta Arseni Mourzenko 11.04.2012 - 15:22
fonte

7 risposte

25

L'utilizzo di un certificato SSL per i tuoi siti Web ti offre principalmente due vantaggi:

  1. Verifica dell'identità secondo cui il tuo sito web è chi dice di essere
  2. Trasmetti la crittografia dei dati tra il server web e il client

Facendo ciò che proponi, che viene normalmente chiamato autofirmazione, ti impedisce di affidarti alla verifica dell'identità. Utilizzando una CA attendibile, il client può seguire la catena delle firme dal certificato che si presenta fino a una CA di livello radice e ottenere una certa sicurezza di essere chi si dice di essere. (Va notato che questa fiducia è in realtà più simile alla fede quando si verificano compromessi CA e alcune CA prendono le prove molto più seriamente di altre).

Tuttavia, avrai ancora la crittografia dei dati. Quindi se non hai bisogno dell'aspetto fiduciario, allora dovresti stare bene. Personalmente, a casa ho diversi siti web e webapp che uso i certificati autofirmati per. Poiché sono l'unico utente, posso verificare ragionevolmente il certificato manualmente senza che sia necessario che una terza parte dimostri che il computer sotto la mia scrivania è in realtà il computer sotto la mia scrivania.

    
risposta data 11.04.2012 - 15:59
fonte
11

Suppongo che intendi emettere o firmare i tuoi certificati, non in realtà ospitarli .

Dal puro punto di vista della sicurezza (crittografia / riservatezza dei dati), un certificato X.509c3 è un certificato X.509c3 e offre la stessa sicurezza per lo stesso numero di bit. Quindi un certificato a 2048 bit emesso da Verisign è sicuro come un certificato a 2048 bit emesso da te stesso.

Da un punto di vista della fiducia (identità) - per l'utente internet medio Verisign o un'altra terza parte possono essere considerati più fidati. Se stai facendo questo per una comunità vicina che già si fida di te, allora questo oggetto è anche un lavaggio.

Dal punto di vista della gestione del rischio, devi decidere se tu o una terza parte hai una maggiore possibilità di un errore e se i benefici superano i costi.

    
risposta data 11.04.2012 - 16:02
fonte
10

Il modo giusto per farlo è quello di eseguire la tua CA privata. È quindi possibile utilizzare Active Directory per inviare la chiave pubblica della CA (autofirmata) a tutti i computer client sulla rete. Se lo fai bene, allora nessuno dovrebbe vedere alcun avviso cert dai loro browser.

Questo è un approccio perfettamente ragionevole per l'uso su una rete interna (ad es. una rete aziendale), se non è rivolto al pubblico. Ecco i rischi:

  • La sicurezza è valida solo quanto la sicurezza della tua operazione di CA privata. Se la chiave privata per la CA privata viene divulgata a un utente malintenzionato o un utente malintenzionato viola la sicurezza del sistema in cui è archiviata la chiave privata della CA, tutti i client diventano vulnerabili agli attacchi man-in-the-middle non rilevabili. Sarebbe male. Rischi simili si applicano se la propria CA privata sottoscrive una chiave pubblica non sicura. Questi sono problemi che devono affrontare le principali CA; se diventi la tua CA, dovrai occuparti anche di loro.

  • La sicurezza è valida solo quanto la sicurezza di Active Directory. Se un amministratore di sistema con controllo sul servizio Active Directory ha violato il suo account, gli attacchi su tutti i client diventano nuovamente possibili. Quindi assicurati che il tuo servizio Active Directory sia ben protetto.

  • Se hai utenti che si connettono al tuo servizio Web interno da un computer che non amministri e che non è connesso tramite Active Directory, visualizzeranno errori cert dal loro browser, perché il loro browser ha vinto " t aver ricevuto la chiave pubblica della CA privata tramite Active Directory. Non va bene, perché allora quegli utenti non avranno modo di verificare l'autenticità del tuo servizio web interno e nessun modo per proteggersi da un attacco man-in-the-middle. È anche un male, perché addestra quegli utenti a ignorare errori di cert, che possono renderli vulnerabili nel resto del loro uso di Internet.

    Questo è un rischio crescente per molte organizzazioni oggi, data la tendenza verso "portare-i-propri-dispositivi" che molte aziende stanno abbracciando. Ad esempio, molti dipendenti desiderano accedere ai servizi Web interni dai propri smartphone, iPad, ecc. E per risparmiare sui costi, molte aziende desiderano consentirgli di farlo. Questi dispositivi non saranno gestiti tramite Active Directory e quindi introdurranno questo tipo di rischio.

Tutti questi rischi possono essere gestiti attraverso processi appropriati, ma devi conoscere i rischi e mettere in atto processi appropriati per affrontarli.

    
risposta data 12.04.2012 - 04:30
fonte
4

Ospitare il tuo certificato non è certamente un problema.

Suppongo che intenda rilasciare il proprio certificato (sia autofirmato che tramite la propria CA). Ovviamente dovresti proteggere la sua chiave privata, ma è il caso di qualsiasi certificato del server. Se stai usando la tua CA, la sua chiave privata non deve nemmeno essere ospitata su alcun server in linea di principio.

Che tu scelga di utilizzare la tua CA (o un certificato autofirmato) invece di una CA commerciale non è certamente un rischio per la sicurezza (potrebbe effettivamente migliorare la fiducia che hai in quel server). Tuttavia, come stavo dicendo in questa risposta correlata , la scelta di CA deve sempre essere considerata dal punto dell'utente di vista. Come fornitore di servizi è importante perché vuoi che il certificato del tuo servizio sia considerato affidabile dal suo utente.

Il vantaggio delle AC commerciali è che sono incorporate nella maggior parte dei browser per impostazione predefinita, il che significa che gli utenti non hanno bisogno di impostazioni aggiuntive per fidarsi della propria CA. È semplicemente la via più semplice perché gli utenti che non sanno nulla dei certificati non devono fare domande (il che non è eccezionale, ma la convenienza vince ...)

    
risposta data 11.04.2012 - 16:38
fonte
2

Supponendo che venga utilizzato solo sulla tua rete privata:

Puoi anche eseguire la tua CA locale. Quindi generi richieste di firma del certificato e le firmi con il computer che hai configurato come CA. Quindi dai a tutti i tuoi computer sulla rete il certificato CA in modo che si fidino della tua CA. In questo modo puoi emettere i tuoi certificati per il tuo uso personale e non riceverai questo fastidioso avviso dal tuo browser.

link

    
risposta data 11.04.2012 - 16:20
fonte
2

Un problema di sicurezza è che non è possibile revocare un certificato autofirmato se è compromesso.

Nel tuo scenario specifico, però, controlli tutti i client e anche il server, quindi questo non sarà un problema.

E naturalmente, dal momento che stai facendo questo per divertirti con geek, è molto probabile che tu vada a fare tutto il resto e creare una CA privata, come altri hanno suggerito: in tal caso sarai in grado di revocarlo.

    
risposta data 11.04.2012 - 17:18
fonte
1

I don't care about browsers complaining about the fact that they don't know about me, because I will be the only one to use HTTPS.

Il rischio per la sicurezza (supponendo che il certificato CA non sia installato sui client) è che ora sei aperto agli attacchi man-in-the-middle. Qualcuno può fingere di essere il server, eseguire il tunneling di tutte le comunicazioni sul server attuale e il client non ha idea che stia parlando al server sbagliato. In altre parole, hai praticamente nessuna sicurezza. C'è un motivo per cui il browser si lamenta. Se la sicurezza non è un problema, non hai problemi: -)

Se punti il tuo browser sul sito web della tua banca e presenta un certificato autofirmato (o qualsiasi certificato non verificabile), inserirai le tue credenziali? Pessima idea.

Avere un certificato di root di fiducia è il modo in cui i client verificano che i server sono quelli che sostengono di essere che è un componente critico di un sistema a chiave pubblica (supponendo che le parti non possano scambiare le chiavi pubbliche con mezzi sicuri.)

Si noti che è possibile rilasciare certificati che hanno ancora una catena di fiducia in una CA nota, non tutte le cert che si usano devono essere emesse da una CA nota, tutto ciò che serve è una catena di fiducia per quella CA. Quindi stai praticamente agendo come una CA "intermedia". Come altri hanno notato, puoi anche avere la tua CA "root" e rilasciare certificati firmati da questo. La chiave però è avere un modo per spingere quel cert di root ai client, quindi il browser non avviserà e avrai la sicurezza che desideri ...

    
risposta data 12.04.2012 - 03:45
fonte

Leggi altre domande sui tag