Crittografia: la sua importanza nell’informatica

Viviamo in un mondo sempre più connesso, digitale, oggi con il nostro smartphone, abbiamo accesso alla nostra banca, alle nostre foto, ai nostri messaggi è facile capire quanto certi dati siano riservati e personali. È normale che vogliamo proteggere questi dati per salvaguardare la nostra privacy, ed è qui che entra in gioco la crittografia.

 

crittografia
immagine di riferimento presa da google

La crittografia ha origini antiche, non starò ad annoiarvi con la storia, vi basti sapere che la crittografia è nata per offuscare un messaggio, per far si che solo chi fosse autorizzato potesse leggere un determinato messaggio.

La crittografia nell’informatica, ha lo stesso identico scopo; ovvero, permettere l’accesso ad un file, o un messaggio, solo a chi è autorizzato.

Oggi la crittografia è alla base del Web, ad esempio, in tantissimi siti, vedete che l’URL è preceduto da HTTPS, questo significa che si sta utilizzando il protocollo HTTP all’interno di una connessione sicura SSL o TLS. Questo ci garantisce una maggiore privacy (in quanto essendo la connessione cifrata, un eventuale ascoltatore (o sniffer) non può leggere cosa stiamo comunicando con il Web Server, un esempio molto lampante sull’utilità della crittografia lo si ha parlando di immissione delle credenziali.

In una pagina HTTP (quindi non sicura), quando immettiamo le nostre credenziali di login, queste vengono trasmette dal nostro PC, al server in chiaro. Cosa vuol dire? Se tra noi e il server c’è una terza persona in ascolto, riesce a vedere quali sono la nostra username e la nostra password.

Quando siamo protetti dalla crittografia, quindi quando vediamo HTTPS, queste informazioni, prima di essere spedite al server, vengono cifrate. Di conseguenza se ci fosse un ascoltatore che cerca di analizzare il traffico dati, non riuscirebbe più a leggere le nostre credenziali, ma si troverebbe delle stringhe non comprensibili con la quale non riesce ad accedere al nostro account.

Questo dovrebbe subito farci capire quanto nell’informatica, e non solo, è importante la crittografia.

Pensate ad esempio cosa potrebbe succedere se il sito della nostra banca non supportasse il protocollo HTTPS, o se Facebook non supportasse HTTPS? sarebbe piuttosto facile per un malintenzionato intercettare la comunicazione e “rubare” le nostre credenziali.

L’importanza delle crittografia nell’informatica, non si ferma solo al Web, prima facevo riferimento ai nostri dati personali, i nostri documenti, le nostre foto, tutti i file che abbiamo nel nostro smartphone, nel nostro PC. Tutti questi dati, se non cifrati, sono memorizzati in chiaro nel nostro dispositivo (smartphone, pc, tablet, ecc…), quindi cosa succede se perdiamo il nostro dispositivo? Cosa succede se qualcuno ce lo dovesse rubare? Qualcuno potrebbe approfittarne e rubare tutto ciò che è memorizzato all’interno di esso. Potrebbe prendersi le nostre foto private, potrebbe accedere tramite le nostre app, ai nostri servizi profili online, potrebbe leggere i nostri messaggi privati, insomma potrebbe avere libero accesso a tutto.

Per evitare questi inconveniente, ancora una volta torna utile la crittografia.

Abilitando la crittografia, infatti, se il malintenzionato riuscisse ad ottenere accesso fisico al nostro dispositivo, si ritroverebbe con tanti file che non riuscirebbe a decifrare, quindi non potrebbe vedersi le nostre foto, le nostre conversazioni, i nostri file, ecc…

Ecco perché al giorno d’oggi è così tanto importante la crittografia.

 

Esempio pratico: Cifrare un documento con GPG

Per rendere meglio l’idea, di seguito vi mostro una gif in cui vi faccio vedere come appare un file cifrato.

Da questo esempio, è evidente che, se non avete la password di decodifica, non potete sapere cosa è memorizzato in quel file

 

crittografia
creo un file e lo cripto con gpg

 

La password di login è una sicurezza?

Attenzione, non basta mettere solo la password di login (o password di sblocco) nel nostro PC o smartphone, per essere al sicuro, perché la password di login, non serve per cifrare i dati, ed è una difesa facilmente aggirabile.

Per essere “sicuri” che un malintenzionato non possa accedere ai nostri file, occorre abilitare la crittografia. (non sto qui a dirvi come fare, ogni sistema ha un suo metodo. Io personalmente l’ho attivata nel mio smartphone Android e nel mio notebook con sistema operativo Linux).

Inoltre c’è anche da dire che non basta scegliere una qualunque password, ma se serve una robusta e sicura (consiglio almeno 8 caratteri costituiti da maiuscole, minuscole, numeri, e magari pure caratteri speciali), perché una password debole, è facilmente crackabile in poco tempo.

Nella seguente GIF, vi mostrerò un semplice esempio di ciò che vi ho appena detto.

Quando prima ho cifrato (usando gpg) il mio file di testo, ho usato una password corta e banale, quindi mi sono creato un piccolo programmino in python, che prova a decifrare questo file, ed ecco il risultato.

 

Esempio pratico: password deboli

Come potete vedere nella seguente gif, in pochi istanti, il programma è riuscito a trovare la password e a decifrare il file.

Ecco il bruteforce effettuato con l’uso di un dizionario di 1’000’000 di password

crittografia
decrittazione tramite bruteforce basato su dizionario

Ovviamente usando un dizionario, ci mette meno tempo piuttosto che provare tutte le combinazioni possibili, ma volendo avrei potuto effettuare un bruteforce puro, ed ecco un esempio

 

crittografia
decrittazione tramite bruteforce

 

Questo articolo serve solo per dare un piccolo accenno sull’argomento. La crittografia è un argomento ampio e vasto, se volete approfondire fate qualche richerca.

Ad esempio potete partire da Wikipedia.