Certificati digitali: cosa sono
I certificati digitali vengono utilizzati per attestare l’identità di un sito web (così come di un soggetto, di una società, di un sistema e così via). Sul web, l’uso più comune dei certificati digitali è per l’accesso ai siti attraverso il protocollo HTTPS (ossia HTTP con l’aggiunta del protocollo crittografico SSL). Ricorrendo all’impiego dei certificati digitali, il browser web può accertarsi che il server a cui si è connessi sia autentico ossia che corrisponda effettivamente a quello che dichiara di essere. Se il certificato è stato firmato da un’autorità di certificazione riconosciuta, il browser provvede ad utilizzare la chiave pubblica indicata nel documento digitale per scambiare dati in modo sicuro, senza la possibilità che vengano in qualche modo essere intercettati.
Il protocollo HTTPS, insieme con un certificato digitale valido, viene quindi utilizzato da tutti i siti web che permettono la gestione di dati particolarmente importanti od informazioni sensibili (si pensi ai siti di e-commerce ed ai servizi online dei vari istituti di credito…).
Più di recente, anche i principali social network hanno iniziato ad abbracciare HTTPS: Facebook e Twitter su tutti mentre Google ha esteso l’utilizzo del medesimo protocollo a tutti i suoi servizi.
Abilitando l’utilizzo di HTTPS, i dati non viaggiano più “in chiaro” ma sono crittografati così da impedire l'”intercettazione” da parte di terzi di tutti i contenuti inviati e ricevuti.
Quando si utilizzano connessioni non sicure, facendo ricorso al solo HTTP – senza l’impiego di un protocollo di crittografia asimmetrica -, infatti, è molto facile, per un aggressore, carpire informazioni personali esaminando i dati in transito (attività di “sniffing“). Collegandosi ad una piattaforma ricchissima di dati personali qual è un social network utilizzando solo il protocollo HTTP, il “session cookie” creato sul proprio sistema a login effettuato viene scambiato con il server remoto per tutta la durata della sessione di lavoro. Tale cookie contiene importanti informazioni legate all’autenticazione sul sito web: qualora un malintenzionato riuscisse a mettere le mani sul contenuto del cookie, potrebbe immediatamente loggarsi sul servizio impersonificando l’altrui identità. Un’operazione del genere, sulle reti Wi-Fi pubbliche, è semplicissima da porre in essere: ecco perché l’adozione di HTTPS è divenuta un imperativo sempre più pressante (vedere anche HTTPS Everywhere invita ad usare connessioni “sicure”.
Le più recenti versioni dei vari browser web ben evidenziano quando si sta utilizzando una connessione HTTP e quando, invece, ci si è collegati ad una pagina web che fa uso del protocollo HTTPS. Sia Internet Explorer, sia Chrome, sia Firefox, ad esempio, espongono un lucchetto nella barra degli indirizzi insieme con l’indicazione https:
ogniqualvolta si utilizzi una pagina che utilizza un certificato digitale e che quindi provvede a crittografare i dati cambiati tra client e server (e viceversa).
Quando il certificato viene ritenuto valido e rilasciato da un’autorità riconosciuta (i certificati digitali possono essere creati anche in modo autonomo ma in questo caso sono sprovvisti delle firme che ne attestano la veridicità e l’affidabilità), tutti i vari browser espongono – nella barra degli URL – l’icona del lucchetto. I cosiddetti certificati DV-SSL (Domain Validated SSL) vengono rilasciati previa esclusiva verifica della proprietà del dominio sul quale il certificato verrà installato: qualora il server utilizzasse un cerificato DV-SSL valido, il browser mostrerà il lucchetto. Il livello di sicurezza maggiore è garantito dai certificati EV-SSL (Extended Validation SSL): in questo caso il fornitore del certificato verifica attentamente l’identità del richiedente garantendola con la massima certezza.
Contrariamente a quanto qualcuno crede, il certificato digitale nel suo formato tecnico è assolutamente identico. Il valore del certificato ed il relativo costo sono strettamente correlati con le corrispondenti procedure di gestione.
Nel caso degli EV-SSL, Internet Explorer trasforma lo sfondo della barra degli indirizzi da bianco a vedere mentre Firefox e Chrome indicano il nome dell’organizzazione proprietaria del sito e del certificato in un riquadro verde (posto all’inizio della barra degli URL).
Per fare un esempio, il sito di PayPal utilizza un certificato digitale del tipo EV-SSL.
Creare un certificato SSL gratis
Per proteggere le comunicazioni tra i client ed il proprio server web, esistono alcune società che forniscono certificati digitali gratis. StartSSL, ad esempio, oltre a fornire anche cerificati EV-SSL a pagamento, mette a disposizione degli interessati un certificato SSL di classe 1 a titolo completamente gratuito.
L’impiego di tale strumento può rivelarsi particolarmente utile perché consente di attivare l’uso del protocollo HTTPS sul proprio server web e, quindi, di permettere comunicazioni cifrate con i client collegati senza alcun investimento economico.
L’adozione di una PKI consente di inviare e ricevere informazioni, ricorrendo all’uso di algoritmi crittografici, fidando su un duplice grado di sicurezza: in primo luogo, si è certi che le informazioni trasmesse non possano essere lette da parte di persone non autorizzate; in secondo luogo ci si assicura che il mittente sia veramente chi afferma di essere (e ciò grazie all’uso della firma digitale).
La PKI è da considerarsi come un insieme di software, tecnologie per la crittografia e servizi che permette di autenticare un’identità, verificare l’integrità di un messaggio o di un documento (l’uso di un certificato digitale assicura che non vi siano state modifiche durante la trasmissione in Rete), proteggere la comunicazione dagli utenti che provino a leggerne il contenuto, prevenire il ripudio (ossia impedire che il destinatario possa affermare di non aver mai ricevuto alcunché).
La richiesta del proprio certificato digitale può essere inoltrata accedendo a questa pagina quindi facendo clic sull’icona Express lane in basso. Per avviare la procedura di richiesta del certificato, si dovrà inserire alcuni dati (nome e cognome, indirizzo, telefono, e-mail): StartSSL generalmente non vi contatterà mai ma è indispensabile inserire accuratamente le proprie informazioni.
Una volta confermata la registrazione cliccando sul link ricevuto via e-mail, all’indirizzo specificato, si potrà iniziare la procedura di validazione del dominio sul quale s’intende utilizzare il certificato digitale. Basta fare clic su Validations wizard quindi scegliere Domain name validation dal menù Type:
Cliccando su Continue, si dovrà inserire il nome a dominio senza specificare alcun terzo livello:
Bisognerà poi accertarsi di possedere uno degli indirizzi indicati da StartSSL e di averne libero accesso:
Ad uno dei tre indirizzi e-mail indicati, infatti, StartSSL invierà una nuova e-mail di conferma che permetterà di concludere con successo il processo di validazione. Entro un tempo massimo di 15 minuti, infatti, bisognerà digitare nella casella Verification code, il codice di conferma contenuto nell’e-mail:
Un messaggio di conferma attesterà la conclusione della procedura:
È importante tenere presente che la procedura di verifica appena condotta a termine permetterà di generare il certificato digitale entro un lasso di tempo ben preciso (30 giorni). Scaduto tale termine, bisognerà ripetere la validazione del dominio.
Per generare il certificato SSL, a questo punto, bisognerà cliccare sulla scheda Certificates wizard quindi scegliere Web server SSL/TLS Certificate dal menù a tendina Certificate target.
Nella successiva schermata, suggeriamo di lasciare tutto così com’è (dimensione della chiave ed algoritmo hash) limitandosi a specificare una password per la protezione della chiave privata. Tale password deve essere lunga (almeno 10 caratteri, al massimo 32) e complessa (contenente caratteri alfanumerici e simboli).
StartSSL, dopo alcuni secondi di attesa, vi proporrà la vostra chiave privata che dovrà essere mantenuta sempre segreta. Il consiglio è quello di copiarla in un editor di testo quindi di salvarla con il nome ssl.key
accertandosi, però, che non cada nelle mani di utenti non autorizzati ad impiegarla.
Ovviamente vale anche l’inverso ossia se possiamo decifrare un messaggio con quella chiave pubblica allora siamo sicuri che quel messaggio è stato criptato dall’organizzazione stessa.
L’algoritmo di codifica usato per cifrare un testo è pubblico. Ciò significa che è noto a tutti e quindi, potenzialmente, anche ad un malintenzionato. La “chiave” ossia il “segreto” che permette di decifrare un messaggio e risalire al testo in chiaro non deve essere invece conosciuta da parte dell’aggressore. Negli algoritmi a chiave simmetrica, le chiavi sono identiche e segrete mentre nel caso degli algoritmi a chiave pubblica, le due chiavi impiegate sono differenti: una è pubblica e nota a chiunque, l’altra è privata e nota soltanto al legittimo proprietario. La caratteristica dei sistemi crittografici asimmetrici consiste nel fatto che per ogni persona che voglia avviare una comunicazione “sicura” sono due le due chiavi generate: l’una detta “pubblica”, l’altra “privata”. La chiave “privata” viene impiegata per decodificare un documento e deve essere mantenuta sempre segreta da parte del proprietario; la chiave “pubblica”, invece, deve essere distribuita e resa nota. Nel caso dei certificati digitali utilizzati da parte dei server web, la chiave pubblica è inserita nel certificato stesso ed è facilmente verificabile:
Tutti i browser web consentono (generalmente cliccando sul lucchetto nella barra degli indirizzi) di accedere ai dettagli tecnici del certificato digitale.
Per confermare la creazione del certificato digitale StartSSL, bisognerà indicare il dominio d’interesse dal menù Domain:
Facendo clic, ancora una volta, su Continue, bisognerà indicare un dominio di terzo livello (generalmente va specificato www
):
Alla comparsa del messaggio Ready processing certificate, è ormai tutto pronto per la generazione del certificato SSL:
Per recuperare il certificato digitale, basterà cliccare sulla linguetta Tool box quindi su Retrieve certificate:
Adesso, tutto è pronto per importare il certificato digitale sul server web. Nel caso in cui si utilizzasse Microsoft IIS, è possibile convertire il certificato SSL nel formato PCKS#12 (PFX). Per procedere, basta cliccare su Create PKCS#12 (PFX) File ed incollare la chiave privata nel primo campo, il certificato acquisito dalla sezione Retrieve certificate nell’area Enter certificate e specificare la password precedentemente impostata nella casella Provide a password.
In IIS, il certificato digitale potrà essere agevolmente importato facendo clic con il tasto destro, dalla finestra di Internet Information Services Manager, sul sito web d’interesse, scegliendo la voce Proprietà, cliccando sulla scheda Directory security su Server certificate quindi selezionando l’opzione Import a certificate from .pfx file.
Si potrà poi eventualmente abilitare HTTPS e, quindi, l’uso del certificato digitale solamente su alcune directory di propria scelta: basta un clic, da IIS, sulla cartella di interesse, su Proprietà, sulla scheda Directory security sul pulsante Edit (riquadro Secure communications) quindi su Require 128-bit encryption.
Nel caso del web server Apache, la configurazione da applicare è pubblicata in questa pagina.
Aggiornamento del 13/08/2013: quest’oggi abbiamo avuto una piacevole conversazione via e-mail con i responsabili di StartSSL.
Sembra infatti che nel momento in cui viene richiesto un certificato digitale SSL di classe 1 (peraltro offerto a titolo pienamente gratuito), l’applicazione web di StartSSL interroghi il servizio Google Safe Browsing. Se il dominio per il quale si sta richiedendo il certificato viene indicato come sospetto da parte di Google, la procedura correttamente si interrompe ed il sito viene indicato come “blacklisted“.
Il problema, però, è che questo accade non solo quando il sito web è effettivamente indicato come sospetto ma anche quando si verificano dei falsi positivi (basta linkare, ad esempio, qualche utilità Nirsoft od ospitare qualche script VBS per Windows per vedersi negare il certificato digitale).
Prima di procedere con la richiesta del certificato digitale, suggeriamo quindi di interrogare il servizio Google Safe Browsing.