Che cos'è la crittografia e perché è importante?

Molti protocolli di comunicazione utilizzano la crittografia per assicurarsi che la connessione sia sicura. Capire cosa fa effettivamente la crittografia e perché è importante per tutti è una buona idea, in modo da sapere da cosa può proteggerti e cosa no.

La crittografia è un processo matematico di codifica dei dati utilizzando un codice di crittografia e una chiave di crittografia. I dati crittografati o il testo cifrato possono essere decifrati nella loro forma originale "testo in chiaro" solo attraverso l'uso di una chiave di decrittazione.

Con un buon algoritmo di crittografia, il testo cifrato dovrebbe essere indistinguibile da rumore casuale o valori privi di significato. Ciò rende impossibile dire se i dati sono anche un testo cifrato o se è solo rumore. Questo design rende significativamente più difficile analizzare il testo cifrato nel tentativo di decrittografarlo senza bisogno della chiave di decrittazione attraverso un processo chiamato crittoanalisi.

Suggerimento: il rumore è un'elettricità statica di sottofondo casuale, proprio come la neve o l'elettricità statica vista su alcuni vecchi televisori quando non hanno segnale.

Simmetrico vs asimmetrico

Per alcune classi di algoritmi di crittografia, la chiave di decrittazione sarà la stessa della chiave di crittografia, in altre le due chiavi sono diverse. Quando la chiave di decrittografia è la stessa della chiave di crittografia, si parla di crittografia simmetrica. In questo caso, la chiave di crittografia può essere considerata una password e chiunque abbia la password può crittografare o decrittografare i dati. AES è un buon esempio di algoritmo di crittografia simmetrica, poiché uno dei suoi usi è proteggere le comunicazioni HTTPS su Internet.

Suggerimento: HTTPS o Hypertext Transfer Protocol Secure è il protocollo di comunicazione crittografato principale utilizzato su Internet.

La crittografia asimmetrica utilizza una chiave di crittografia e decrittografia separata, comunemente indicata anche come crittografia a chiave pubblica. La chiave di crittografia è nota come chiave pubblica, viene pubblicata affinché chiunque possa utilizzarla per crittografare i dati. La chiave di decrittazione è nota come chiave privata e, come suggerisce il nome, è mantenuta privata.

Questa forma di crittografia può essere utilizzata per garantire che solo il destinatario previsto possa decrittografare e leggere il messaggio crittografato. Un esempio comune di algoritmo di crittografia a chiave pubblica è RSA. RSA è anche comunemente usato nelle connessioni HTTPS, ma solo così i due computer possono concordare in modo sicuro una chiave di crittografia simmetrica da utilizzare.

Suggerimento: gli algoritmi di crittografia asimmetrici sono più lenti da utilizzare rispetto a quelli simmetrici che forniscono livelli di sicurezza simili. Pertanto, la crittografia asimmetrica viene utilizzata solo per concordare una chiave di crittografia simmetrica in protocolli che richiedono velocità ed efficienza come HTTPS.

Suggerimento: una cosa che HTTPS non fa è garantire che ti stai connettendo al sito web che intendevi. Quello che fa è garantire che tu stia collegando il sito web che hai inserito nella barra di ricerca. Se hai commesso un errore di battitura e navighi accidentalmente su exanple.com anziché su example.com, HTTPS confermerà che sei connesso in modo sicuro a exanple.com. HTTPS verifica solo che la tua connessione al server web sia sicura. HTTPS non implica inoltre che il sito Web a cui ti stai connettendo non contenga virus o altri software dannosi.

Livelli di sicurezza

La sicurezza di un algoritmo di crittografia è misurata in bit. I bit di sicurezza si riferiscono alla dimensione della chiave di crittografia utilizzata e quindi a quanto sia difficile da indovinare. Sfortunatamente, non è possibile confrontare direttamente la sicurezza di algoritmi simmetrici e asimmetrici in questo modo.

Gli algoritmi di crittografia simmetrica come AES devono utilizzare almeno una chiave di crittografia a 128 bit per essere considerati sicuri, sebbene sia consigliata una chiave a 256 bit. Gli algoritmi asimmetrici devono utilizzare almeno una chiave a 2048 bit per essere considerati sicuri.

Una chiave di crittografia a 256 bit ha 2^256 combinazioni possibili, ovvero due moltiplicato per se stesso 256 volte. Scritto per intero, ci sono: 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936 possibili combinazioni di una chiave di crittografia a 256 bit. Questo numero è così grande che è approssimativamente uguale al numero di atomi che gli scienziati prevedono esistano nell'universo visibile.

È incomprensibilmente difficile indovinare correttamente la chiave necessaria per decrittografare i dati crittografati con una chiave a 256 bit. Anche se avessi accesso dedicato ai supercomputer più veloci e secoli di tempo, sarebbe comunque statisticamente improbabile indovinare correttamente la chiave di decrittazione.

Perché è importante?

Quando accedi a un sito web, invii il tuo nome utente e password o le tue coordinate bancarie. Questi dettagli sono privati ​​e sensibili, se qualcun altro li ha, potrebbe accedere ai tuoi account, impersonarti, rubarti denaro e altro ancora.

Quando si utilizza il protocollo HTTP in testo normale, chiunque sulla rete tra te e il server Web potrebbe intercettare e leggere le comunicazioni che invii e ricevi. Ciò include le tue password e altri dettagli sensibili. Altri utenti sulla tua rete domestica, il tuo ISP e altri utenti su qualsiasi hotspot Wi-Fi pubblico a cui ti connetti potrebbero essere in grado di eseguire questo tipo di attacco.

Se utilizzi HTTPS per proteggere le comunicazioni da e verso il server web, i tuoi dati vengono crittografati e non possono essere letti da nessun altro. Questa crittografia manterrà le tue password e altri dati privati ​​al sicuro durante la navigazione in Internet.

Tuttavia, la crittografia non è importante solo per i dati privati ​​o sensibili; è anche un utile strumento per la privacy. Ad esempio, può impedire al tuo ISP di curiosare sulle tue abitudini di navigazione web.

La crittografia del maggior numero possibile di comunicazioni rende meno ovvio dove sono nascosti i dati sensibili che gli aggressori potrebbero voler tentare di rubare. Pertanto, in genere si consiglia di utilizzare la crittografia ove possibile per proteggere tutto ciò che si fa.

Con l'hardware moderno e gli algoritmi di crittografia, la crittografia aggiunge solo un ritardo impercettibile, quindi non devi nemmeno preoccuparti che rallenti la tua connessione Internet.