HTTP e HTTPS

Quando digitiamo un indirizzo internet spesso mettiamo solo il nome del sito con il classico “www” davanti ma se andiamo a vedere bene, la stringa completa che il browser usa è http://www.sito.ext

Ma che cos’è quel http:// che compare davanti? La sigla significa HyperText Transfer Protocol che in informatica rappresenta un protocollo di trasmissione dati tipico delle architetture server-client secondo specifiche dettate dal consorzio W3C (World Wide Web Consortium). Nella norma, il protocollo http utilizza la porta TCP 80.

Essendo un protocollo di trasmissione appare evidente che qualcuno chiama (messaggio http di richiesta, tipicamente il client) e qualcuno ascolta per rispondere successivamente (il server, messaggio http di risposta). Le connessioni vengono generalmente chiuse una volta che la richiesta (o una serie di richieste correlate) è stata soddisfatta. Questo comportamento rende il protocollo HTTP ideale per il World Wide Web, in cui le pagine molto spesso contengono dei link a pagine ospitate da altri server. Questo diminuisce il numero di connessioni attive limitandole a quelle effettivamente necessarie aumentando l’efficienza (minor carico e occupazione) sia sul client che sul server.

Il problema però è che http è un protocollo senza sicurezza… Le informazioni sono trasmesse in senza crittografia. Se notate, l’URL del mio sito non è http ma https: quella s finale sta per secure perchè la comunicazione è protetta grazie all’impiego di determinati certificati (come quello SSL, acronimo di Secure Socket Layer) che garantiscono:

  • l’identità dei dati
  • la loro riservatezza
  • la cifratura del traffico
  • la verifica di integrità del traffico

inoltre la porta standard per la comunicazione è la 443 TCP.

Ma come faccio per dotare il sito di un certificato SSL? il mondo open source ci viene in aiuto grazie a Let’s Encrypt. Sono forniti da un’autorità garante no profit: essi sono ottimi per gli e-commerce e per altri portali di carattere commerciale dove sono previste transazioni in denaro ma per contro non forniscono una protezione completa, in quanto sono in grado di proteggere solo l’utente: non è previsto alcun tipo di validazione (semplicemente il lucchetto verde vicino all’url del sito) e non sono previsti controlli della proprietà del dominio da parte dello sviluppatore che attiva il certificato.

Pertanto prestate attenzione ai siti dove vi collegate, soprattutto se dovete effettuare transazioni finanziarie o inserire dati personali identificativi/sensibili… ma soprattutto attenzione se il protocollo da https diventa improvvisamente http, potrebbe essere segno di un attacco Man In The Middle (ma di questo parleremo in un altro post).