Blog

HTTPS, HTTPS everywhere…

Lettura 6 minuti

Cos’è HTTPS

Da un punto di vista squisitamente tecnico, HTTPS un protocollo per la comunicazione sicura attraverso una rete di computer. Si tratta in effetti di una comunicazione tramite HTTP all’interno di una connessione criptata TLS o SSL (quest’ultimo considerato vulnerabile e ormai in dismissione).

Dal punto di vista dell’utente, HTTPS è la soluzione che consente di garantire l’integrità e la riservatezza dei dati scambiati tra i computer e i siti.

La cifratura della comunicazione avviene per mezzo di un certificato che il server invia al client, e che quest’ultimo esamina per determinare che effettivamente il server sia chi sostiene di essere.

Esistono tre tipologie di certificati:

Domain Validated: è il tipo di certificato più semplice, e vedremo più avanti che è possibile ottenerne gratuitamente. Da un punto di vista crittografico è assolutamente equivalente agli altri due, la differenza consiste nel fatto che un certificato DV non contiene alcuna informazione relativa al soggetto proprietario del sito web, ma solo il nome (o i nomi, nel caso di un certificato SAN – Subject Alternative Names), il cosiddetto Common Name (CN).

Organization Validated: un certificato OV consente al client di ottenere una serie di informazioni aggiuntive riguardo il soggetto proprietario del sito web, in particolare il paese, lo stato/provincia, la città e il nome della società. Per poter rilasciare un certificato OV, l’Autorità di Certificazione (la cosiddetta CA) deve effettuare, oltre alla verifica di proprietà del dominio da parte del richiedente, anche il controllo sull’effettiva esistenza dell’entità legale di quest’ultimo.

Entity Validated: si tratta del certificato contenente il maggior numero di informazioni, ed è anche il più costoso e complesso da ottenere. La CA deve effettuare una serie di controlli approfonditi sul richiedente, e i criteri per il rilascio dei certificati EV sono definiti dalle Linee Guida per la Extended Validation, attualmente (al 1 gennaio 2017) alla versione 1.4.2. Le linee guida sono prodotte dal CA/Browser Forum, un’organizzazione di cui fanno parte le maggiori CA e le aziende che sviluppano i browser, come pure rappresentanti delle professioni legali e di revisione. Anche noto come “Green Bar certificate” dal momento che i browser hanno adottato la convenzione di mostrare il nome dell’entità associata al certificato accanto alla barra dell’indirizzo con un carattere verde.

Il piede sull’acceleratore

Circa due anni fa i vendor dei principali browser hanno iniziato un percorso che dovrebbe portare gradualmente i miliardi di siti che popolano la rete ad adottare HTTPS su tutte le pagine, a partire da quelle che contengono elementi che consentono all’utente di inserire i propri dati (ad esempio form di autenticazione e di pagamento con carta di credito).

Nelle scorse settimane questo percorso ha visto un primo traguardo importante, con il rilascio delle ultime versioni di Google Chrome e Firefox che hanno iniziato a segnalare come non sicure le pagine contenenti form che non sono sotto HTTPS.

Allo stesso tempo, i motori di ricerca hanno da tempo dichiarato di considerare le pagine protette da HTTPS in modo privilegiato.

Come restare al passo

Sembra quindi evidente che per non rischiare di trovarsi penalizzati (dai motori di ricerca ma soprattutto dai propri utenti), questo è il momento giusto per dotare il proprio sito di un certificato https.

Il primo interrogativo che dobbiamo porci è quale tipo di certificato ci occorre.

Esiste un dibattito riguardo all’effettivo valore aggiunto dei più costosi certificati OV ed EV rispetto ai più semplici DV. Alcuni studi di usabilità condotti negli scorsi anni evidenziano come utenti che non hanno una specifica formazione riguardo i temi di sicurezza della navigazione non notano l’indicatore di convalida accanto alla barra dell’indirizzo, vanificando di fatto il vantaggio in termini di trust nei confronti degli utenti.

Vero è che tali studi erano basati su test con gli utenti condotti utilizzando IE7, ai tempi il browser più diffuso, e da allora le UI dei browser si sono (per fortuna!) largamente evolute.

Se si opta comunque per ottenere un certificato EV, è possibile acquistarlo da una delle tante CA presenti sul mercato, come Symantec e Comodo (per citare le più note). E’ consigliabile tenere pronta tutta la documentazione disponibile riguardo la propria organizzazione (es. certificato di attribuzione partita IVA, iscrizione alla Camera di Commercio, visura camerale ecc). E, ovviamente, la carta di credito 🙂

Se invece ci si rende conto che un certificato DV è sufficiente per le esigenze di protezione del traffico verso il proprio sito, allora – come anticipato in apertura – ci sono alcune soluzioni oramai alla portata di tutti per ottenere un certificato SSL assolutamente valido e riconosciuto dalla stragrande maggioranza dei browser.

Let’s Encrypt

Let’s Encrypt è una CA che fornisce certificati TLS Domain Validated gratuiti e che mette a disposizione un meccanismo completamente automatizzato per il rilascio e il rinnovo. Il progetto è gestito da un’organizzazione no-profit, l’Internet Security Research Group (ISRG) ed è sponsorizzato da numerose aziende tra le quali Mozilla, Google e Facebook, ed è inoltre un progetto della Linux Foundation. L’obiettivo dichiarato del progetto è di fornire certificati gratuiti e nella maniere più user friendly possibile per far diffondere l’uso di HTTPS e contribuire così a creare un Web più sicuro e maggiormente rispettoso della privacy.

Il rilascio e il rinnovo di un certificato avvengono attraverso l’utilizzo del protocollo ACME, e in particolare usando certbot il client ufficiale ed open source.

Inoltre Let’s Encrypt è stato integrato su numerose piattaforme di gestione hosting come Plesk, cPanel e WordPress.com, rendendo la richiesta e l’installazione di un certificato alla portata di chiunque.

I certificati rilasciati da Let’s Encrypt hanno una durata molto breve (3 mesi) ma la possibilità di automatizzare completamente il processo di rinnovo rende questa limitazione assolutamente superabile.

I certificati sono di tipo SAN (Subject Alternative Names), quindi consentono di associare più nomi di dominio ad un singolo certificato (esempio classico: example.com e www.example.com). Non è supportato al momento il wildcard (*.example.com).

AWS Certificate Manager

Se (come noi in Bitbull) utilizzate AWS, ed in particolare il servizio Elastic Load Balancer allora avete la possibilità di utilizzare il servizio Certificate Manager per richiedere fino a 20 certificati gratuiti di tipo DV rilasciati da Amazon Trust Services, la CA propria di Amazon.

Al momento in cui scrivo non è possibile agganciare un certificato ottenuto tramite ACM direttamente ad un’istanza EC2, ma solo ad un ELB. E’ possibile farlo direttamente dalla configurazione dell’ELB oppure tramite Elastic Beanstalk.

Anche i certificati rilasciati da ACM sono di tipo SAN, in più supportano il wildcard (*.example.com). La durata dei certificati è di un anno.

Conclusioni

Sembra che non ci siano più scuse, è il momento di passare in massa ad HTTPS. Gli utenti iniziano oramai ad aspettarselo e i browser non faranno altro che alimentare questa aspettativa.

Per quanto riguarda un sito che inizia oggi la sua attività, è sicuramente da considerare l’ipotesi di partire dal giorno zero completamente sotto HTTPS. Mentre per siti già attivi ed indicizzati occorre prestare un po’ di attenzione in caso di passaggio per quanto riguarda l’aspetto SEO, facendo in modo che le url già indicizzate in HTTP vengano correttamente redirezionate in HTTPS.

Gennaro Vietri