20 domande & risposte sul protocollo HTTPS

20 domande & risposte sul protocollo HTTPS

In questo articolo andremo ad affrontare le più comuni domande sul protocollo HTTPS da parte degli utenti. FAQ dedicata al protocollo HTTPS, in tutte le sue principali varianti, con esempi pratici e chiarimenti per non specialisti

Cosa sono i certificati, e perchè si chiamano così?

HTTPS è una conseguenza dei certificati, che sono delle entità software utili a certificare digitalmente l’identità di un “oggetto” sul web: parlando in modo ancora più semplice, sono un modo per garantire che un sito sia chi dice davvero di essere, quindi ciò vale come misura anti-phishing ad esempio. Più in generale, con l’uso di un certificato da parte di un sito x.est dell’azienda X un client vedrà la barretta verde di autenticazione HTTPS, il serve a garantire, mediante un’ente esterno autorevole (ad esempio CE, Certificate Authority), l’identità del sito – cioè che sia davvero il sito ufficiale di X, ma anche a garantire che nessuno possa vedere o intercettare lo scambio di dati tra il client ed X.

In sostanza i certificati certificano da un lato la reale identità del sito, e dall’altro che nessuno possa “farsi i fatti altrui” nello scambio di dati (form di autenticazione, password, pagine utilizzate, …) tra essi. In termini più formali (ambito della crittografia), un certificato digitale o a chiave pubblica (public key certificate) è un documento elettronico utile per provare la proprietà di una chiave pubblica.

Che cos’è HTTPS?

HTTPS è un protocollo sicuro per il web, concepito ed utilizzato per due ragioni fondamentali:

  1. evitare l’intercettazione di dati riservati (come quelli di login o della carta di credito) da parte di terzi
  2. limitare fortemente gli attacchi informatici di spionaggio, tipo man in the middle.

Nella pratica, l’utilizzo di HTTPS si riferisce in termini di uso di un protocollo crittografico, le cui versioni più popolari sono chiamate rispettivamente Transport Layer Security (detto anche TLS) e Secure Sockets Layer (detto comunemente SSL).

Cosa sono SSL / TLS?

Si tratta di due protocolli di sicurezza che garantiscono rispettivamente autenticazione, integrità dei dati e cifratura: SSL (Secure Sockets Layer) e TLS (Transport Layer Security). Per la cronaca non si usano solo per HTTPS (quindi per le pagine secured) ma anche per e-mail, voIP ed alcune forme di chat istantanee: le app meglio progettate, inoltre, possono tecnicamente fare uso del medesimo sistema per accedere a fonti di dati esterne in modo sicuro.

Cosa comporta nella pratica HTTPS? Perchè dovrebbe servirmi?

HTTP opera sulla porta 80 (che in genere è “sottintesa” e non serve specificare), HTTPS invece lavora sulla 443 (che è anch’essa sottintesa, se il server è ben configurato) interponendo un livello di crittografia (TLS o SSL) tra lo strato TCP e quello HTTP. In termini tecnici, comunque, non è un protocollo a parte, bensì una versione “robusta” di HTTP. HTTPS comporta che la connessione tra voi ed il sito a cui siete connessi sia sicura, e non intercettabile da terzi: a livello pratico se si usano gli standard web più moderni la connessione (quindi il tempo di caricamento della pagina web) saranno più veloci per via della possibilità di sfruttare la connessione parallelizzata di HTTP/2.

Come conseguenza diretta, qualora si usi HTTPS sul proprio sito gli indirizzi URI cambieranno di prefisso, e rimarranno identici per il resto: in altri termini se un indirizzo prima era

http://tuosito.it/indirizzo-web

adesso diventerà

https://tuosito.it/indirizzo-web

Se uso HTTPS, le vecchie pagine in HTTP saranno indicizzate in automatico? Il passaggio HTTP -> HTTPS è automatico?

No, ed è invece necessario prevedere questa cosa esplicitamente; il rischio per molti webmaster principianti, nel caso di passaggi da HTTP in chiaro a HTTPS criptato, è proprio quello di avere una duplice indicizzazione del sito web: da un lato la vecchia versione in chiaro, dall’altro quella in chiaro. Questo crea confusione sia nei motori di ricerca che negli utenti, ed è un errore da evitare ad ogni costo. Per evitarlo bisogna quindi:

  1. configurare HTTPS sul proprio dominio, attivandolo come richiesto dal certificato stesso;
  2. imporre un redirect da HTTP ad HTTPS, come spiegato qui, oppure mediante appositi plugin per WordPress, Joomla! ecc.

Ciò è possibile che venga effettuato sfruttando opportune impostazioni, che variano a seconda del sito web, e prevedendo un redirect da HTTP a HTTPS.

 

Che differenza c’è tra SSL e HTTPS?

SSL è il protocollo crittografico che viene applicato al sito web, mentre HTTPS è un protocollo HTTP con SSL (o TLS) applicato. A livello commerciale è possibile comprare certificati SSL al fine di ottenere HTTPS sul proprio sito (non mancano i servizi free HTTPS, in alternativa).

Sì, ma a cosa servono nella pratica?

Servono sostanzialmente ad evitare di avere una connessione intercettata; la maggioranza del traffico su internet tendeva, fino all’avvento di HTTPS come variabile universale e consigliata per qualsiasi comunicazione, ad avvenire in chiaro. Questo significava che ogni comunicazione client server era visibile dall’esterno o intercettabile in vari modi, ed in questo HTTPS ha il ruolo di limitare o evitare, quantomeno, che ciò possa avvenire. Pertanto HTTPS è un livello di protezione ma contribuisce anche all’efficenza del sito, in quanto è in grado di velocizzare il caricamento delle pagine.

HTTPS/SSL si usa per implementare gateway sicuri (cioè “porte di accesso” blindate) per operazioni sensibili o delicate in cui la privacy sia prioritaria, ad esempio trasmissione o ricezione di dati sensibili, oppure i classici pagamenti online: questi protocolli sono pensati per proteggere i dati dei vostri utenti: se, ad esempio, il vostro sito prevede una sezione di acquisto di prodotti o servizi, è plausibile (e molto consigliabile) evitare di far transitare su pagine HTTP (in chiaro) i form di sottoposizione del numero di carta di credito, scadenza e codice sul retro dei vostri clienti. Un terzo potrebbe rubare quei dati e “clonare” la carta utilizzandola a proprio piacere.

Facendo uso di HTTPS, di fatto, si riduce di molto questa possibilità di abuso da parte di terzi, spesso del tutto potenziale ma altrettanto concreta: per farlo vi dovrete appoggiare ad un gateway di pagamento esterno (ad esempio PayPal, Banca Sella, Pagonline e via dicendo), oppure dovrete ricorrere ad una soluzione di pagamento proprietaria o open source (tipo Stripe). Altri esempi di applicazione di HTTPS riguardano: implementazione di form di identificazione, pagine di login sicuro, upload di file riservati, comunicazione con Facebook (app), inserimento di dati molto sensibili (ad esempio medici). In genere si preferisce utilizzare HTTPS a livello universare su un sito web per evitare il problema del mixed content (vedi oltre).

Cosa succede visualmente quando un sito implementa HTTPS? Come mi accorgo che il sito sia sicuro?

La presenza di HTTPS viene segnalato sui browser mediante una barretta con lucchetto verde, in genere. A seconda del tipo di certificato può inoltre comparire il nome dell’azienda X che lo detiene, oppure più semplicemente che la connessione tra voi ed il sito è sicura.

La barra degli indirizzi, tipicamente sulla parte sinistra, mostrerà un lucchetto di colore verde, ad indicare che la connessione è protetta e sicura. Questo suggerisce agli utenti che stanno operando su un sito web sicuro per effettuare operazioni in cui, come detto sopra, sia necessario inserire dei dati sensibili come numero della carta di credito per pagare online, dati anagrafici o medici riservati e così via.

Di seguito un esempio di HTTPS utilizzato sul sito ufficiale di PayPal.

Screen 2014-08-28 alle 13.01.02

HTTPS va implementato su tutto il sito o solo sulle pagine “sensibili”?

In genere va applicato su tutto il sito: sia per evitare di avere pagine in parte con HTTPS ed in parte con HTTP (che in genere è sbagliato, ed invalida la sicurezza dell’operazione: caso di mixed content), sia perchè è molto più semplice ed immediato attivare un certificato a livello di dominio che non di singole pagine. Quando attivate Let’s Encrypt, infatti, che è il più famoso certificato HTTPS gratuito, viene reso disponibile su tutto il sito ad una volta.

Cos’è l’errore Mixed-content: certificati SSL implementati in alcuni link interni del sito, ma in altri no

Ci sono casi di errore, nell’uso di HTTPS, legati al fatto che HTTPS protegge solo una parte del sito web: è il caso tipico di theme di siti web o blog che siano stati progettati male, ovvero dando per scontato che l’URL del sito abbia un protocollo HTTP, ed inserendo così mixed content o contenuto misto tra HTTP e HTTPS nella medesima pagina. Questo in generale non è un errore fatale, non dovrebbe comportare conseguenze gravi a livello di posizionamento su Google ad esempio, ma resta comunque un tipo di pratica altamente sconsigliata: genera incertezza nei visitatori, peraltro, e scarsa fiducia nel vostro sito (oltre ad un senso di disorientamento: pensate ad esempio ad un sito di e-commerce con problemi di mixed content).

Il mixed content viene segnalato sui browser con una barretta grigia, in genere.

HTTPS serve come fattore di ranking per Google?

Sì, lo è. Il vero punto pero’ è un altro, e la vera domanda dovrebbe essere se HTTPS è sufficente come fattore di posizionamento. L’esperienza diretta sul campo, il buonsenso e la logica dicono di no: certamente è un fattore essenziale per aumentare sicurezza e velocità del sito, oltre che indirettamente user experience e potenziali conversioni (se c’è HTTPS, per intenderci, pagherò più volentieri e più probabilmente di quanto non farei se non ci fosse).

Del resto i fattori di ranking, del resto, non esistono se non come astrazioni, con poca o nessuna rilevanza pratica (a parte quella di essere pubblicati senza troppe verifiche da varie aziende SEO, per farsi linkare e far parlare di sè): si tratta al più di correlazioni statistiche, e risaputamente correlation does not imply causation. Questo significa che se HTTPS è un fattore di posizionamento e Google stessa ammette che lo sia (secondo me sbagliando: questa affermazione ha finito per fuorviare intere generazioni di blogger, ad esempio, che ritengono che sia un “optional” per migliorare la SEO del proprio blog, e non un aspetto essenziale per la stabilità e la sicurezza del proprio sito). Per cui pensare che HTTPS sia un fattore di ranking da usare per posizionarsi su Google è sbagliato sotto ogni punto di vista, perchè HTTPS è solo un fattore che non può bastare da solo e non deve mai isolarsi dal resto delle good practices per posizionare il proprio sito.

Google ha spinto indirettamente, promuovendo HTTPS in ogni dove,  nella direzione di incentivare l’acquisto di certificati SSL, arrivando a sostenere che tutto il web debba, un giorno, essere in HTTPS. Ovviamente non tutti avranno la stessa sensibilità nel farlo e questo, alla lunga, renderà il mixed content un problema molto comune.

HTTPS va usato su tutte le pagine, oppure soltanto su quelle sensibili?

Stando alla logica più stretta, HTTPS ha più senso se utilizzato solo sulle pagine sensibili; ovviamente tutto dipende da come sono fatti i siti web. Se ad esempio il form di login è riportato su tutte le pagine per favorire l’ingresso degli utenti alle stesse, è opportuno pensare di prevedere HTTPS.

In termini formali e tecnici, comunque, le cose stanno così: o si mette su tutte le pagine oppure non si mette. Le vie di mezzo sono mixed content, ed è un errore. Del resto è molto più agevole abilitarlo su tutto il sito dato che normalmente anche i certificati più economici o quelli gratuiti tendono a validare l’intero dominio, e non le singole pagine.

Quando serve usare HTTPS su un sito?

In rete ci sono informazioni contraddittorie sull’argomento, ma in genere (se il certificato è affidabile e di qualità) serve sempre. Tale specificità, peraltro, è una questione di progettazione web e non c’entra nulla, soprattutto, con l’ambito SEO a cui fa riferimento il noto comunicato di Google: è, e rimarrà sempre, soprattutto una questione di sicurezza informatica, non di ottimizzazione per i motori di ricerca!

Se avete il dubbio di farne uso o meno, usatelo.

Se non volete investire denaro nell’uso di un certificato da azienda pro, usate Let’s Encrypt, oppure passate direttamente ad un hosting con Let’s encrypt: questi servizi danno la possibilità di passare con facilità al certificato HTTPS gratuito con qualche semplice click guidato.

HTTPS ha senso sui siti web generici, in cui ad es. non transitano informazioni riservate: un blog personale, un portale di news o un sito di ricette?

Secondo quanto suggerito da Google e dagli esperti di informatica, serve sempre (ed è questa l’opinione con cui sono allineato da qualche tempo).

Secondo altri, soprattutto SEO, si tratta di una mossa inutile e tendenzialmente dispensiosa, che aggiunge un livello di complicazione per i blogger meno esperti e scarsi vantaggi pratici.

Dopo qualche critica sull’argomento, che mi portava tendenzialmente su quest’ultima posizione, ritengo che HTTPS serva ovunque e che sia ancora più complicato mettersi a fare mille distinzioni. Del resto Let’s Encrypt è gratuito ed utilizzabile senza limiti, per cui anche se avete scarso budget per il vostro progetto non c’è ragione di non farne uso. Il problema semmai restano i non addetti ai lavori che, per una serie di ragioni, tendono a considerarlo un extra non necessario, rendendo così meno sicuri i propri siti web. Da anni il web è banalizzato da startuppari della domenica che credono sia la cosa più semplice e redditizia al mondo, per cui nulla di strano che abbiano fatto lo stesso con HTTPS. Non fidatevi dei pareri che vi piacerebbe ascoltare: HTTPS è una mossa corretta per migliorare la sicurezza del vostro sito; e anche se non foste nerd fanatici di queste cose, resta il fatto che con HTTPS la velocità del vostro sito potrà aumentare in modo sensibile (e questo sono sicuro piacerà un po’ a tutti).

Google ha affermato nel celebre comunicato “HTTPS as a ranking signal” che “we’d like to encourage all website owners to switch from HTTP to HTTPS to keep everyone safe on the web” per cui sì, serve anche nei blog: perchè usandolo solo in parte o configurandolo alla buona si crea mixed content, non c’è reale sicurezza nel sito ed il lucchetto verde non appare.

HTTPS è la sicurezza assoluta?

Nulla in informatica lo è, quindi la risposta è no: HeartBleed, una delle falle più spaventose della storia, lo ha dimostrato. Certo resta indispensabile nei contesti in cui la riservatezza, la garanzia di non stare versando denaro a dei truffatori e la protezione dagli spioni delle informazioni che circolano è vitale.

La tecnologia va sempre usata nella consapevolezza che sarà sempre soggetta ad errori, ma questo deve essere un argomento realistico e non la scusa per abolirlo dal proprio sito, o considerarlo robetta di poco conto.

C’è un modo per avere SSL /HTTPS gratis?

In aggiunta ai servizi classici come Plesk/cPanel, gestione dominio, database MySQL, FTP e via dicendo, molte aziende stanno:

Cosa sono i certificati Domain Validated (DV)?

Sono certificati che si basano sulla verifica del nome di dominio, e sulla sua autorevolezza derivante dal nome stesso. Si tratta dei certificati più economici e semplici da validare.

Cosa sono i certificati Organization Validated (OV)

Similarmente ai precedenti, danno una garanzia di veridicità dell’identità del sito previo invio di documentazione annessa al sito, all’organizzazione ed alla sua struttura interna. In questo caso i costi ed il livello di sicurezza ed affidabilità sono leggermente superiori.

Che cosa è un Certificate Authority (CA)?

Domain Validated: la CA ti fornisce un certificato sulla fiducia, basandosi solo sul nome a dominio che inserisci nel modulo di richiesta
Organization Validated: ci sono delle scartoffie da inviare alla CA per dimostrare che l’azienda esiste davvero

– See more at: http://www.servermanaged.it/certificati-ssl/i-certificati-ssl-spiegati-al-mio-criceto/#sthash.KroYpqmQ.dpuf

Domain Validated: la CA ti fornisce un certificato sulla fiducia, basandosi solo sul nome a dominio che inserisci nel modulo di richiesta
Organization Validated: ci sono delle scartoffie da inviare alla CA per dimostrare che l’azienda esiste davvero

– See more at: http://www.servermanaged.it/certificati-ssl/i-certificati-ssl-spiegati-al-mio-criceto/#sthash.KroYpqmQ.dpuf

Si tratta di un modo per identificare l’autorevolezza di un ente certificatore; tale verifica può avvenire a più livelli e con modi diversificati, a seconda dei casi e delle aziende che si validano. Tipicamente i costi e la sicurezza salgono notevolmente, e sono le aziende più grosse / famose a fare uso di certificati del genere.

Sul browser mi appare “Questa connessione non è affidabile“: cosa devo fare?

Questo avviso capita solitamente sui siti web che non abbiano un certificato configurato a dovere: tutto dipende dal fatto che il certificato fornito dal sito che state visitando è ad esempio auto-certificato (non validato da terzi), ed è questo il motivo per cui il browser (ad es. Firefox) vi avvisa del potenziale rischio.

Potete aggiungere il certificato “dubbio” dicendo al vostro browser di “fidarsi”, ma questa operazione va fatta necessariamente a vostro rischio e pericolo.

Photo by Skley

Ti piace questo articolo?

2 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.

20 domande & risposte sul protocollo HTTPS

Votato 10 / 10, da 2 utenti