È una cattiva pratica usare certificati SSL autofirmati?


29

I certificati SSL sono piuttosto costosi per le persone, soprattutto se è necessario proteggere diversi sottodomini. Sto prendendo in considerazione l'uso di certificati autofirmati, poiché il mio obiettivo principale è proteggere la connessione e non autenticarmi.

Tuttavia, diversi browser visualizzano avvisi spiacevoli quando incontrano un tale certificato. Scoraggeresti l'uso di certificati autofirmati (ad esempio per piccole applicazioni web o la pagina di amministrazione di un piccolo sito Web)? O va bene in alcuni casi?

Risposte:


14

In generale è male usare un certificato autofirmato. Se lo fai, corri il rischio che le persone lascino il tuo sito quando ricevono un avviso sul fatto che il tuo certificato è cattivo. Ancora più importante, stai correndo un rischio maggiore di avere qualcuno che fa un attacco di iniezione in cui usano il proprio certificato autofirmato al posto tuo e il visitatore non lo saprà meglio.

Consulta l'articolo qui, http://www.sslshopper.com/article-when-are-self-signed-certificates-acceptable.html per ulteriori informazioni.


14

Come ha detto RandomBen, i certificati autofirmati sono generalmente disapprovati per le ragioni che ha spiegato. Ma c'è una situazione in cui stanno bene: se l'insieme di persone che devono inviare dati sensibili al tuo sito Web è piccolo e limitato, sono tutti in qualche modo tecnicamente competenti e sei in grado di comunicare con tutti loro. In tal caso, puoi fornire a ciascuno i dettagli del certificato, quindi può controllare manualmente il certificato quando accede al tuo sito e aggiungere un'eccezione di sicurezza, se del caso.

A titolo di esempio estremo, sul mio VPS personale ho un sottodominio amministrativo, al quale dovrei accedere solo da me. Non ci sarebbero problemi a proteggere quel dominio con un certificato autofirmato perché posso verificare manualmente che il certificato del server utilizzato per proteggere la connessione sia lo stesso che ho installato sul server.

Nei casi in cui un certificato autofirmato non funzionerà o preferiresti averne uno "reale", raccomando Let's Encrypt , un progetto avviato da Internet Security Research Group e supportato dalle principali società Internet, che offre certificati SSL all'indirizzo nessun costo. Possono farlo perché il processo di verifica che usano è completamente automatizzato e in effetti un web server che supporta il loro protocollo ACME (come Caddy , che attualmente uso) può ottenere i certificati da solo. Let's Encrypt non verifica che tu, come persona, sono chi dici di essere; verifica solo che il tuo server web sia in grado di pubblicare contenuti sul dominio a cui afferma. Let's Encrypt è supportato da tutti i principali browser, ma è noto che la verifica è minima, quindi se stai eseguendo qualcosa come un sito di e-commerce o qualcosa in cui le persone invieranno informazioni sensibili, probabilmente dovresti spendere i soldi per ottenere un certificato con un livello superiore di convalida.

Raccomandavo i certificati StartSSL gratuiti di StartCom per le persone che non volevano pagare per la convalida, ma non più. StartCom è stata segretamente acquisita da WoSign nel 2016 e successivamente ha rilasciato certificati illegittimi per diversi domini. Di conseguenza, i principali browser hanno rimosso il supporto per i certificati StartCom. (Per quanto ne so, IE non li ha mai supportati comunque.) In ogni caso, Let's Encrypt è molto più conveniente.


+1 per il primo paragrafo. Uso un certificato autofirmato per Webmin sul mio server perché sono solo io e il designer a utilizzarlo, ma non consiglierei di farlo per uso pubblico.
Sconcertato

3

Non è una cattiva pratica usare certificati autofirmati. I certificati autofirmati hanno molti scopi pratici per i quali semplicemente non ha senso utilizzare un certificato firmato dall'autorità di certificazione.

Ad esempio, su molti dei miei server, ho configurato l'accesso senza password. Questi sono server a cui mi collego così frequentemente e a volte mantengo aperte più connessioni SSH, che è una seccatura digitare il mio nome utente e la mia password ogni volta.

Invece, utilizzo un certificato SSL autofirmato che genera su ciascuna delle mie macchine client (una workstation in ufficio, un laptop e la mia workstation di casa). Questo tipo di installazione mi consente di utilizzare passphrase abbastanza lunghe, sicure e completamente uniche per ciascuno dei miei server senza influire sulla produttività. E poiché ho accesso diretto ai server su cui posso installare la chiave pubblica per ciascun certificato, non ho senso utilizzare un certificato firmato dalla CA.

Ho potuto impostare il mio CA principale con cui posso firmare tutti i certificati per uso interno per la nostra azienda, e in questo modo vorrei solo bisogno di installare una singola chiave pubblica su ciascun server. Tuttavia, la nostra organizzazione non è cresciuta fino a raggiungere le dimensioni che lo rendono davvero necessario e, ai fini dell'HTTP sicuro, sarebbe sempre lo stesso di avere un certificato autofirmato.

Allo stesso modo, i certificati autofirmati vengono spesso utilizzati per connessioni e-mail, firma PGP e connessioni server-server in cui è banale pre-scambiare chiavi pubbliche. In molti di questi casi, questo è in realtà più sicuro che fare affidamento su una catena di certificati che potrebbe essere compromessa in qualsiasi punto della catena.


Non capisco perché usi i certificati SSL nel tuo caso? Non dici di voler digitare più volte la password: potresti semplicemente usare una chiave privata SSH con ssh-agent, per autenticarti automaticamente su ciascun server senza dover digitare la password più di una volta.
Wookai,

@Wookai: sarebbe un modo per farlo per SSH, ma l'utilizzo dei certificati client SSL è un metodo molto più generale di autenticazione client. Uso anche i miei certificati client per l' autenticazione HTTPS e per la posta elettronica e, se scelgo di configurare una CA interna in un secondo momento, diventa ancora più flessibile / potente. A quel punto, non avrò bisogno di installare singole chiavi private per ogni cliente / utente. È solo una soluzione più solida IMO.
Lèse majesté,

2

Se stai proteggendo più sottodomini, potresti voler utilizzare certificati con caratteri jolly , che (a seconda di quanti sottodomini stai proteggendo) potrebbero risultare significativamente più economici rispetto all'acquisto di uno per dominio; ad esempio RapidSSL ha il carattere jolly che diventa più economico dei singoli certificati una volta che hai quattro domini in uso.

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.