Cos’è un certificato SSL

Uno dei più importanti passi avanti per quanto concerne la sicurezza sul web è stato il passaggio, ancora in corso ma già in stato molto avanzato, al protocollo HTTPS.

A differenza dell’obsoleto HTTP, HyperText Transfer Protocol, aggiungiamo un procolo di sicurezza e diventa HTTPS, HyperText Transfer Protocol over Secure Socket Layers (o il più evoluto TLS).

Cosa significa e perché è considerato un passo avanti? Utilizzando il protocollo HTTP, quindi visitando siti con URL del tipo http://google.it, tutto il traffico, tra il computer dell’utente fino ai server Google (in questo caso), è in chiaro.

Ciò significa che se un malintenzionato con delle conoscenze di hacking, in realtà piuttosto basilari, si intromette nella connessione, può letteralmente vedere tutto ciò che passa e leggerlo.

Quindi l’indirizzo visitato, l’eventuale login con username e password, che file stanno in upload o in download e così via, intercettando il traffico. E non è tutto, potrebbe anche manomettere i dati, facendo arrivare sul pc dell’utente qualcosa di diverso dal sito vero, magari con l’aggiunta di malware, immagini non volute o richieste di autenticazione al fine di sapere username e password.

Per evitare gravi problemi di sicurezza, è stato ideato il protocollo HTTPS.

Ormai in uso da tempo, solo ultimamente sta avendo la diffusione sperata, grazie anche a diverse aziende come la nonprofit Internet Security Research Group (ISRG) che con il suo letsencrypt.org ha reso a prova di neofita l’installazione dei certificati necessari a usare il protocollo HTTPS per la visualizzazione dei propri siti web.

Inoltre, diverse aziende, tra cui Mozilla (che sviluppa e mantiene il browser Firefox) sta spingendo tantissimo verso l’uso dell’HTTPS mostrando messaggi di avviso prima di lasciare all’utente la possibilità di proseguire verso siti non sicuri.

In più, proprio queste ultime settimane, si vorrebbe passare ad un utilizzo necessario di HTTPS, quindi non permettendo più agli utenti di visitare siti usando l’HTTP, che per anni ci ha accompagnato.

Ho parlato di certificato, in questo caso certificato SSL, ma cos’è?

I certificati SSL abilitano i siti web a passare da HTTP ad HTTPS, consentendo così, come anticipato qualche rigo più su, di trasmettere e ricevere dati in modo sicuro.

Dal punto di vista prettamente pratico è un file che va tenuto sul server e che contiene la chiave pubblica e l’identità del sito web, più altre informazioni di contorno. Torneremo sul concetto di chiave pubblica più avanti.

Ecco cosa contiene un certificato SSL:
  • La chiave pubblica del sito web
  • La data di scadenza del certificato, come anche quella di inizio validità
  • Eventuali sottodomini associati (un sottodominio è ad esempio bandaultralarga.italia.it)
  • L’ente che ha rilasciato il certificato
  • Informazioni sulla persona o organizzazione che lo ha rilasciato
  • ed ovviamente il nome a dominio del sito, tornando all’esempio di prima, italia.it
Come si ottiene un certificato SSL?

Per avere un certificato SSL valido a tutti gli effetti, si deve passare per una Certificate Authority (CA), che è un’organizzazione esterna, fidata dalla comunità e che è abilitata a rilasciare tali certificati. Una CA può anche rilasciare certificati ancor più sicuri, firmati digitalmente con la sua chiave privata, dando così quella pubblica allo scopo di validarli. In genere, bisogna pagare una piccola somma.

Una volta ottenuto un certificato, bisogna installarlo ed attivarlo sul server dove risiede il sito web. Possiamo farlo da soli, seguendo qualche guida, oppure affidarci ad un esperto. Volendo, possiamo utilizzare un hosting che è già compreso di certificato, evitando qualsiasi problema se non siamo sicuri su come procedere.

Le CA più popolari sono Symantec, Comodo, GoDaddy (già famoso come enorme hosting provider), Network Solutions, ma non è strettamente necessario approvviggionarsi direttamente da una CA, si può acquistare un certificato da un normale sito di hosting, ce ne sono anche di italiani e tantissimi europei.

Si può ottenere gratuitamente?

Certo, come accennato prima, un modo per ottenere certificati gratuiti e di facile installazione è affidarsi a letsencrypt.org, che mentre scrivo ha raggiungo i 225 milioni di siti web certificati.

Non è disponibile una guida in italiano sul sito ufficiale, ma nel web ne sono presenti diverse e potrebbe essere uno spunto per un futuro articolo qui su (@Ross metti il sito su cui pubblichi il post, non so se sarà Angelo o Mondo). Quella ufficiale, in inglese, è disponibile qui https://letsencrypt.org/getting-started/# e prosegue nella pagina relativa alla documentazione https://letsencrypt.org/docs/ che consigliamo di leggere anche nel caso in cui si voglia semplicemente approfondire la conoscenza dei certificati SSL e di ciò che ho trattato in questo articolo.

Come si capisce se un sito è provvisto di un certificato SSL valido?

Grazie alla scaltrezza e anche, diciamocelo, pigrizia degli informatici, capire se un sito web è protetto da un certificato HTTPS valido o meno è quanto di più facile si possa fare. Basta visitare il sito e, nella barra degli indirizzi del browser, troveremo un lucchetto. Se è verde, via libera, il sito è certificato e protetto corrvettamente, se invece non è verde, possiamo clickarci con il cursore e capire cosa non va. Se invece è di un colore diverso, sarebbe meglio non proseguire.

Recentemente, diversi studi di società di sicurezza informatica come MalwareBytes e la stessa Google, hanno evidenziato come l’uso del lucchetto verde non sia poi così efficace e che probabilmente è prossimo allo sparire. Se proprio ora ho detto che il lucchetto è molto utile, perchè dovrebbe essere eliminato? Perché anche se effettivamente sicuro, purtroppo sono stati già trovati dei metodi per aggirare anche questo controllo e visualizzare il lucchetto verde grazie a dei certificati forgiati ad arte. Per approfondire vi rimando all’interessante ed esaustivo articolo pubblicato sul blog di MalwareBytes.


 

 

Lascia un commento

Your email address will not be published. Required fields are marked with *.