Perché dovrei pagare per un certificato SSL?
Per la maggior parte degli usi, non c'è alcun motivo per pagarli.
Vedi in fondo per un riepilogo delle eccezioni.
Facciamo un passo indietro e spieghiamo cosa fanno i certificati e approssimativamente come.
I cosiddetti "certificati" sono costituiti da due pezzi collegati:
- Il certificato corretto , che contiene una chiave pubblica e alcuni identificativi (come un nome di dominio).
- La chiave privata , che consente al titolare (e solo al titolare) di firmare digitalmente i messaggi in modo tale che possano essere verificati utilizzando il certificato sopra.
Se desideri un certificato per yourdomain.com
:
- Crea una coppia di chiavi privata / pubblica e mantieni privata la parte privata.
- Chiedi a una terza parte affidabile ("CrediCorp") di creare un certificato
yourdomain.com
con la tua chiave pubblica.
- Dimostra in qualche modo a CrediCorp che controlli
yourdomain.com
.
- Metti la chiave privata e il certificato ottenuto sul tuo server e configura il web server per usarli.
Quindi, se Alice visita yourdomain.com
, il suo browser ottiene il certificato dal tuo server web, insieme a un messaggio firmato dalla tua chiave privata. Quindi il suo browser controlla tre cose:
- Che il messaggio firmato possa essere verificato dal tuo certificato (dimostrando che è stato firmato dalla corrispondente chiave privata che
yourdomain.com
dovrebbe avere solo ).
- Che il dominio del certificato sia il dominio che il browser sta tentando di visitare (
yourdomain.com
).
- Che il certificato provenga da CrediCorp.
La combinazione di queste tre cose garantisce ad Alice che sta effettivamente parlando yourdomain.com
, e non a qualche impostore ... A condizione che Alice si fidi di CrediCorp .
(Segue anche un po 'di danza cripto voodoo per trasformare questa autenticità in riservatezza.)
Come fa Alice si fida Credicorp?
Questo è il vero punto cruciale qui. In breve, ad un certo punto CrediCorp ha detto "Ehi, faremo i certificati". Dopo aver fatto molti sforzi seguendo molte regole , sono riusciti a convincere alcune persone che CrediCorp è, in effetti, affidabile, e rilasceranno correttamente i certificati.
In particolare, sono riusciti a convincere i produttori di, diciamo, Firefox. Di conseguenza, CrediCorp ottiene l'elenco A di Firefox e i suoi certificati sono considerati affidabili da Firefox per impostazione predefinita. Quindi, davvero, Alice si fida di Firefox, Firefox si fida di CrediCorp e CrediCorp si fida di te (dopo aver verificato) quando affermi di aver controllato yourdomain.com
. È quasi come una catena .
Ma Firefox non si fida solo di CrediCorp per il rilascio di certificati yourdomain.com
, ma si fida dei certificati CrediCorp per qualsiasi dominio. E Firefox si fida anche di ShabbyCorp, per qualsiasi dominio.
Questo ha conseguenze. Se qualcuno riesce a convincere ShabbyCorp che controllano yourdomain.com
(perché ShabbyCorp non è molto accurato), può ottenere un certificato ShabbyCorp yourdomain.com
con la chiave privata corrispondente. E con quel certificato potrebbero impersonare il tuo server web. Dopotutto, hanno un certificato (più chiave) per yourdomain.com
cui è considerato attendibile da Firefox!
CrediCorp e ShabbyCorp sono quelli che vengono chiamati autorità di certificazione , in breve CA. Nel mondo reale, ComodoSSL e Let's Encrypt sono esempi di CA. Ma ce ne sono molti di più; stesura di questo documento, Firefox si fida 154 AC .
Whoa. Ma come risponde alla mia domanda?
Sono ehm, ci arrivo ...
Ecco la cosa. I meccanismi che ho descritto sopra si applicano a tutti i certificati. Se disponi di un certificato attendibile corretto per il tuo sito Web, funzionerà. Non c'è niente di speciale nei certificati di marca A rispetto ai certificati di marca B; sono tutti soggetti agli stessi requisiti CA e alla stessa crittografia matematica.
E anche se ti piace CrediCorp meglio - perché sai, suonano davvero molto più affidabili - usarli non ti aiuterà davvero. Se un utente malintenzionato può convincere ShabbyCorp a fornire loro un certificato per il tuo sito, l'utente malintenzionato può utilizzare quel certificato per impersonare il tuo sito, indipendentemente da dove hai ottenuto il tuo.
Finché Firefox si fida di ShabbyCorp, i visitatori non vedranno la differenza. (Sì, i visitatori potrebbero ritirare il certificato e scavare lì, vedere chi lo ha emesso. Ma chi lo fa?) Per quanto riguarda la falsificazione dei certificati, questo rende l'intero sistema debole quanto il più debole di oltre 150 CA. Perché sì, è spaventoso, ed è probabilmente la più grande critica che la gente ha di questo intero schema. Tuttavia, è quello con cui siamo bloccati.
Il punto è che se non ti fidi di una CA a rilasciare certificati "buoni", ottenere i tuoi certificati altrove non ti aiuta molto.
Gotcha, tutto è ugualmente condannato. Nessun avvertimento?
Weeeelllll ...
Cominciamo con l'uccidere il punto che ho sottolineato nell'ultima sezione. Al giorno d'oggi è possibile bloccare il dominio solo per le CA di propria scelta utilizzando DNS-CAA . Supponiamo che tu ti fidi di Comodo e che non ti fidi di altre CA, è possibile richiedere a tutte le CA diverse da Comodo di non emettere certificati per il tuo dominio. In teoria. (Poiché DNS-CAA non viene controllato dai browser, ma solo emettendo CA. Pertanto, una CA compromessa potrebbe ignorare questa protezione.)
Se sei disposto a superare questo problema, allora la domanda diventa: Let's Encrypt è in realtà meno affidabile? O meno sicuro? L'affidabilità è difficile, come lo quantificate? Tutto quello che posso dire è che nella mia percezione Let's Encrypt non è meno affidabile di altre CA. Per quanto riguarda la sicurezza delle loro convalide, sono molto simili a ciò che fanno le CA commerciali (comunque per i certificati DV). Vedi anche questa domanda .
Per quello che vale: la rete StackExchange, di cui fa parte questo sito, attualmente utilizza i certificati Let's Encrypt. La maggior parte delle persone non lo noterebbe mai, e se lo facessero dubito sinceramente che ciò significherebbe molto per loro.
Perché un certificato sia significativo, la CA di emissione deve essere considerata attendibile dai fornitori di software , altrimenti il certificato è inutile. Ho usato Firefox come esempio, ma in realtà vuoi che la CA sia affidabile almeno dalle versioni attuali e un po 'più vecchie di Firefox, Chrome, Windows, Mac OS X, iOS e Android. E le decine di giocatori più piccoli. Le CA che vale la pena considerare (che include ComodoSSL e Let's Encrypt) sono considerate affidabili da tutte queste entità.
Se un'autorità di certificazione si comporta in modo errato o viene rivelata inaffidabile, verrà rimossa dai vari archivi fiduciari abbastanza rapidamente da rovinare la giornata dei proprietari dei certificati. Due esempi notevoli che conosco sono DigiNotar e StartCom / WoSign (consulta gli articoli, forniscono interessanti spunti sulla dinamica della fiducia!). Quindi, se pensi che Let's Encrypt si rovinerà o verrà lasciato cadere per qualche altro motivo, non usarli ti impedirà di rimanere intrappolato in quel particolare abbattimento.
I certificati impiegano un po 'di magia crittografica ; la questione è che crypto matematica magica ? E se fosse una magia debole? Questa è in realtà una vera preoccupazione e anche le autorità di certificazione hanno dimostrato di trascinare i piedi sull'aggiornamento. Fortunatamente, i venditori di browser hanno colto il problema impostando i minimi qui per l'accettazione dei certificati. Ad esempio, i certificati che utilizzano RSA-1024 o SHA-1 sono ora respinti dalla maggior parte dei browser, quindi qualsiasi certificato che funziona in pratica non utilizza queste primitive crittografiche deprecate. Il risultato è che è abbastanza difficile per qualsiasi CA (Let's Encrypt incluso) deludere più su questa parte.
Prima, ho più o meno detto che tutti i certificati sono creati uguali. Ho mentito, non lo sono. In particolare, ciò che ho discusso fino ad ora sono i " certificati Domain Validated (DV)", che sono ciò che la maggior parte dei siti Web utilizza. Forniscono una certa certezza che il tuo browser sta effettivamente parlando con il dominio che mostra nella barra degli URL. Esistono anche certificati "Organization Validated (OV)" e " Extended Validation (EV)", che richiedono controlli molto più elaborati da parte delle autorità di certificazione. In particolare, dovresti essere in grado di ottenere un certificato EV per somebank.com
/ SomeBank Inc., se puoi effettivamente dimostrare di essere SomeBank, Inc.
I certificati EV sono molto più costosi da ottenere (ballpark: centinaia di EUR / USD all'anno) e possono essere ricompensati con una barra URL verde o un lucchetto nel browser, forse con la visualizzazione di "SomeBank, Inc." anche. Contrariamente ai certificati DV, offrono anche qualche idea su chi potrebbe effettivamente appartenere al sito web. Il lato positivo è che possono sembrare più legittimi. La delusione è che gli utenti raramente prestano attenzione a loro, quindi la loro efficacia è limitata.
Un utente malintenzionato con un certificato DV contraffatto può ancora impersonare il sito, solo senza l'indizio visivo extra che un certificato EV può offrire e gli utenti generalmente non notano la distinzione. Al contrario, è possibile ottenere un certificato EV fuorviante per facilitare il phishing. Di conseguenza, sia Chrome che Firefox lasceranno i loro riferimenti visivi ai certificati EV e alcune persone credono che se ne andranno del tutto.
Se sei una banca, probabilmente per il momento desideri comunque un certificato EV. Altrimenti, non così tanto. Ma se si fa bisogno di EV, Encrypt Let non è per voi, perché semplicemente non offrono certificati EV.
I certificati sono validi solo per un tempo limitato . I certificati di una tipica CA commerciale tendono ad essere validi per un anno, ma ho visto qualcosa da tre mesi a tre anni. Let's Encrypt certificati sono validi per 90 giorni , che si trovano sul lato corto di tale intervallo, quindi dovrai rinnovarli spesso. Per gli utenti Let's Encrypt, questo è di solito automatizzato in modo che i certificati vengano sostituiti ogni 60 giorni.
Essere in grado di automatizzare il rinnovo con un software ampiamente disponibile è in realtà più piacevole della merda annuale Oh il mio certificato è scaduto? Qual è il mio accesso alla CA? Come funziona di nuovo? rituale che la maggior parte dei piccoli siti sembra finire nelle CA commerciali.
Prima l'ho definito spaventoso dal fatto che ci sono così tante CA di cui tutti dobbiamo fidarci. Avere molte CA è anche un vantaggio, nel senso che la rimozione di un singolo dai nostri negozi fiduciari ha un impatto limitato sugli utenti. In particolare, l'espulsione di una singola CA influirà solo sui certificati emessi da quella CA. Se tutti finiscono per usare un'unica CA (che alcune persone temono possa accadere con Let's Encrypt ), concentriamo tutta la nostra fiducia lì e perdiamo i vantaggi di quella frammentazione.
E infine, ci sono altri vantaggi che una CA a pagamento potrebbe offrire, come il supporto commerciale o una garanzia SSL da un milione di dollari . Ho poca fiducia in entrambi questi aspetti, ma sono cose che Let's Encrypt non offre.
Mi fa male la testa ... Ho avuto una domanda, penso?
Usa ciò con cui ti senti a tuo agio! Per i certificati DV, c'è ben poco che differenzia effettivamente le varie CA. Uso Let's Encrypt sia professionalmente che privatamente, e ne sono felice.
Ci sono davvero solo quattro potenziali motivi che vedo per evitare Let's Encrypt:
- Se hai bisogno di certificati EV (o OV).
- Se non puoi o non vuoi automatizzare il rinnovo del certificato e la validità del certificato di tre mesi è troppo breve per te.
- Se non ti fidi di Let's Encrypt (ma assicurati di considerare anche altre misure come DNS-CAA, e probabilmente dovresti anche inserire nella blacklist Let's Encrypt anche nel tuo browser).
- Se ritieni che Let's Encrypt verrà interrotto o eliminato dai browser per qualche motivo.
Se nessuno di questi si applica a te, sentiti libero di non pagare i tuoi certificati.