La crittografia a chiave pubblica è la spina dorsale della moderna sicurezza web. Al centro di questo sistema si trova il Secure Sockets Layer (SSL). Netscape ha creato questo protocollo per aiutare browser e server web a comunicare in modo sicuro. Non è mai stato concepito per restare da solo per sempre.
Oggi SSL è solo un termine ereditato. Lo standard attualmente in uso è Transport Layer Security (TLS).
Non è necessario essere un programmatore per notare la differenza nella tua navigazione quotidiana. È proprio lì, nella barra degli indirizzi. Cerca la “s” in https.
Prima hai visto http. Ora vedi https.
Di solito c’è una piccola icona a forma di lucchetto nelle vicinanze. A volte si trova nella barra di stato nella parte inferiore della finestra. A volte fluttua nel campo URL. Il significato è lo stesso. I tuoi dati sono crittografati. Se accedi a un conto bancario o utilizzi PayPal, vuoi vedere quel lucchetto. I tuoi dettagli di pagamento non dovrebbero essere in testo normale sul bonifico.
“TLS e SSL fanno molto affidamento sulle autorità di certificazione per verificare l’identità.”
Ma come fa effettivamente il browser a sapere che il sito è sicuro? Non è magia. Si tratta di una stretta di mano con un’Autorità di certificazione (CA).
Quando richiedi una pagina sicura, il processo viene avviato. Il browser aggiunge la “s” a “http”. Quindi controlla tre cose specifiche prima di caricare la pagina:
- Trust : il certificato proviene da una parte attendibile del browser?
- Validità : il certificato è attualmente attivo e non è scaduto?
- Corrispondenza : il certificato appartiene effettivamente al sito che stai visitando?
Se uno qualsiasi di questi controlli fallisce, il browser genererà un avviso. Non ti permetterà di procedere alla cieca. Questo sistema è il motivo per cui puoi avere fiducia che le tue informazioni sensibili passino in modo sicuro. Il protocollo si è evoluto, ma il compito principale rimane lo stesso. Tenere i tuoi dati fuori dalle mani degli indiscreti.
La stretta di mano che mantiene i tuoi dati al sicuro
È qui che avviene la vera sicurezza.
Il browser prende la chiave pubblica che hai appena ricevuto e la utilizza per crittografare una chiave simmetrica generata casualmente. Abbastanza semplice.
Ma ecco il problema. La crittografia a chiave pubblica è pesante. Richiede una notevole potenza di calcolo. Farlo per ogni singolo pacchetto di dati bloccherebbe il tuo browser. Quindi, i sistemi non lo fanno.
Utilizzano invece un approccio ibrido.
Consideratelo come un tunnel sicuro. La chiave pubblica è solo il campanello. Lascia passare il messaggio iniziale. Una volta dentro, passi alla crittografia a chiave simmetrica per il resto della conversazione. È più veloce. È più leggero. È lo standard per il modo in cui due computer avviano una sessione sicura.
Un computer crea la chiave simmetrica. Lo conclude utilizzando la crittografia a chiave pubblica. Lo manda dall’altra parte. L’altro lato lo sblocca. Ora entrambe le parti hanno lo stesso codice segreto.
Da quel momento in poi comunicano utilizzando la crittografia a chiave simmetrica.
Ed ecco la parte che manca alla maggior parte degli utenti. La chiave non dura.
Al termine della sessione, la chiave viene distrutta. Viene scartato. Andato.
Se si avvia una nuova sessione, viene creata una nuova chiave simmetrica. L’intero processo si ripete.
“Una volta terminata la sessione, ciascun computer scarta la chiave simmetrica utilizzata per quella sessione.”
Questo si chiama segreto in avanti. O almeno, una sua versione base. Ciò significa che anche se un hacker ruba una chiave, questa è inutile per qualsiasi altra cosa. Ogni sessione è isolata. Ogni sessione ha il suo blocco unico.
Perché è importante?
Perché limita i danni. Se la tua connessione HTTPS viene intercettata, l’aggressore ottiene solo i dati di quella sessione. Non ottengono la cronologia delle tue password. Non ricevono le tue vecchie email. Non ottengono la chiave del regno.
La chiave è temporanea. La sessione è effimera. La sicurezza è continua.
È una danza di creazione e distruzione. Nascono le chiavi. Flussi di dati. Le chiavi muoiono.
E non lo vedi nemmeno mai.
























