I certificati SSL autofirmati sono sicuri?


33

Voglio avere una connessione sicura quando accedo alla mia webmail, phpMyAdmin , ecc.

Pertanto ho firmato i miei certificati SSL con OpenSSL e ho detto ad Apache di ascoltare sulla porta 443.

Questo è in effetti sicuro? Tutte le mie password sono davvero inviate attraverso un livello sicuro? Che differenza fa se compro un certificato SSL da Verisign o firmo il mio? Alla fine della giornata, tutti i dati saranno comunque sul mio server. Qual è la grande differenza?

Risposte:


40

Si tratta di fiducia. Se ricevi un certificato firmato da verisign, dimostri ai clienti casuali che il tuo certificato è attendibile. Se si firma automaticamente il certificato, le persone che non hanno installato il proprio certificato sul proprio computer non possono essere certi di non essere state attaccate da un attacco man-in-the-middle .

Se il tuo webserver è appena usato da te, non hai bisogno di una vera CA (come verisign) per firmare il tuo certificato. Basta installare il certificato sui computer che si desidera utilizzare e il gioco è fatto.

Modifica: Quindi, per rispondere alla tua domanda: Sì, tutto è crittografato e puoi essere sicuro che nessuno può leggere i tuoi dati sensibili se sai che il certificato presentato al browser Web è in realtà quello con cui hai configurato il server web.


12
Lo scopo della CA è dimostrare agli altri che un certificato appartiene a chi si dice appartenga. Dato che sai già a chi appartiene il certificato, in termini di accesso al tuo server e presentazione del tuo certificato, una CA non serve a nulla. Tuttavia, altri non possono accedere in modo sicuro ai tuoi server, perché non hanno modo di sapere quale certificato fidarsi. (Sai, fidati di quello che hai emesso.)
David Schwartz,

Questo sarebbe anche un approccio ragionevole se il server accedesse a un numero limitato di utenti che potrebbero contattarti direttamente per verificare il certificato - i membri della tua famiglia o il personale di una piccola azienda, come esempi.
bgvaughan,

Può un uomo nel mezzo, coordinato con una CA, scavalcare il proprio certificato autofirmato? Ad esempio, Bob si collega al sito Web autofirmato di Alice, Scar invia a Bob un diverso certificato firmato da CA Scar con cui è coordinato, il browser di Bob non mostra mai un avviso SSL. È possibile?
Ciao mondo,

14

Si tratta di fiducia.

Supponi di visitare un sito Web popolare che presenta un certificato. Questo è il sito web che dice "Questo è quello che sono, puoi fidarti di me, perché ho questa lettera di presentazione firmata da qualcuno di cui ti fidi."

In questo caso, il "qualcuno di cui ti fidi" è una delle autorità di certificazione che hanno (si spera) svolto il lavoro di gamba per stabilire l'identità del presentatore del certificato per tuo conto.

Ciò di cui ti fidi davvero è la fiducia dell'autore del browser nella fiducia dell'autorità di certificazione nell'identità della persona che presenta il certificato. Spesso c'è anche più di un'autorità tra te e il presentatore, da cui il termine: "catena di fiducia". [1]

Quando firmi il tuo certificato, non esiste una catena di fiducia. Il tuo sito ti presenta il tuo certificato. Se installi il tuo certificato nel tuo browser come uno di cui ti fidi, allora quello viene trattato come un'autorità, lo stesso di quelli che vengono preinstallati. Quindi hai una catena di fiducia con un solo link.

Se poi visiti il ​​tuo dei tuoi siti e il tuo browser ti avverte che presenta un certificato non attendibile, dovresti avere motivo di preoccupazione, poiché, come con qualsiasi altro sito che presenta un certificato non attendibile, non puoi essere certo che stai comunicando con il sito reale.

Nota che non ho ancora menzionato la crittografia. I certificati riguardano l' autenticazione dell'identità della parte con cui si sta comunicando. Attraverso certificati di fiducia c'è un modo per essere ragionevolmente certi che il tuo negozio o banca è quello reale. Una volta stabilita la loro identità, il passaggio successivo è la protezione delle comunicazioni tra di voi. Accade così che anche i certificati contengano al loro interno le chiavi necessarie per facilitare questa sicurezza. Supponendo che tu abbia configurato correttamente il tuo SSL, questa comunicazione è sicura come quella che avresti con il tuo negozio o banca e le tue password sono ugualmente protette. [2]

[1] Questo non è affatto un sistema impeccabile. Un mercato libero e un'attività a basso margine e volumi elevati portano inevitabilmente alla riduzione dei costi: http://www.theregister.co.uk/2011/04/11/state_of_ssl_analysis/

[2] Almeno, abbastanza protetto da rendere molto più economico l'ingresso di qualcuno nella tua casa, per sconfiggere i tuoi segreti piuttosto che tentare di sgretolarli : http://xkcd.com/538/


11

In realtà, i certificati autofirmati possono essere sicuri, non solo secondo il modello che stiamo utilizzando ora.


In base al modello CA (autorità di certificazione) diffuso che tutti utilizzano attualmente, lo scopo del certificato firmato da un'autorità di certificazione attendibile è fornire l'autenticazione.

Quando riceviamo un certificato, tutto ciò che vediamo è che 1 e 0 arrivano dal jack nel muro; non abbiamo idea da dove provengano questi 1 e 0. Tuttavia, poiché il certificato è firmato da un'autorità di certificazione , cosa che nessuno al mondo può fare, a parte la CA, e poiché ci affidiamo all'autorità di certificazione per verificare l'identità del proprietario del certificato, riteniamo che il certificato provenga da chi afferma a.

Naturalmente, se la CA è compromessa o non verifica correttamente il proprietario , tutte le scommesse sono disattivate.


Tuttavia, v'è un altro modello, in base al quale i certificati autofirmati non forniscono autenticità. Si chiama modello notarile .

In sostanza, anziché affidarci a una singola CA, distribuiamo la fiducia a qualsiasi numero di notai . Questi notai setacciano Internet alla ricerca di certificati, mantenendo una cache di tutti i certificati che hanno visto. Quando visiti un sito per la prima volta e ottieni il certificato, chiedi a diversi notai distribuiti a livello globale quale sia stato l'ultimo certificato che hanno visto. Se non sono d'accordo con quello che stai vedendo, potresti far parte di un attacco man-in-the-middle.

In base a questo modello, i certificati autofirmati sono perfettamente sicuri, purché si presuma che il server non sia immediatamente compromesso prima che un notaio possa mai visualizzare il suo certificato.


Il modello notarile è ancora agli inizi, ed è dubbio che prenderà il controllo del modello CA (in realtà, non è necessario: possono essere utilizzati in tandem) . Il progetto più promettente finora è Convergence.io , che ha un plugin per Firefox.


2

Non si tratta di fiducia ....

I certificati SSL possono servire a due scopi: 1) è il web server a cui ti stai connettendo a quello a cui vuoi connetterti; e 2) crittografare le comunicazioni.

Puoi avere # 2 senza # 1, che è ciò che hai realizzato. Ciò che resta è la verifica che la casella a cui ti stai connettendo sia quella che desideri.

Se è il MIO server, non ho alcun problema con l'utilizzo di un certificato autofirmato da parte mia, anche se c'è il rischio che qualcuno possa falsificare le cose per farmi connettere al loro server anziché al mio. Dato che a nessuno importa di me e del mio server e ho poco valore qui, non vedo troppi rischi in questo.

D'altra parte, se invece di un mio server fosse un tuo server, allora sarei preoccupato.


Stavi per dire: "Se fosse il tuo server, NON sarei preoccupato"?
Cherrun,

no, ha detto "se è il MIO server non ho problemi ... se è il TUO server allora ho problemi".
Francesco,

Sei errato Nessuno poteva falsificare le cose per farti connettere al loro server anziché al tuo. Non hanno una chiave corrispondente al certificato autofirmato che hai emesso e non possono presentarti un certificato diverso poiché non lo accetteresti.
David Schwartz,

@cherun Il mio punto era che mi fido di me - non tu (o nessun altro). Puoi / dovresti fidarti di te stesso.
uSlackr,

1
-1. La crittografia viene eseguita utilizzando chiavi simmetriche negoziate durante l'handshake. Ovviamente, si utilizza il certificato per verificare l'identità della parte remota, altrimenti sarebbe inutile crittografare la comunicazione (potrebbe essere un MITM). Se è il tuo server e un certificato autofirmato, importa esplicitamente il tuo certificato nel tuo client.
Bruno,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.