Redazione RHC : 1 Agosto 2021 19:10
Autore: Mario Rossano
Data pubblicazione: 1/08/2021
La crittografia è, letteralmente, una “scrittura nascosta”. Si tratta di quella branca della scienza che racchiude i metodi di scrittura tali che il messaggio risulti incomprensibile ai soggetti non autorizzati a leggerlo, che non ne dispongano quindi della necessaria chiave di lettura.
La crittografia è interdisciplinare, abbracciando logica, matematica e, naturalmente, l’informatica che è il suo campo di applicazione principe.
La NIS2 è complessa da capire?
Non perdere tempo, segui l'anteprima gratuita del corso che stiamo preparando.Accedi quindi alla nostra Academy e segui l'anteprima del corso della durata di 30 minuti per comprendere i contenuti esclusivi che tratteremo nel corso.per ulteriori informazioni, scrivici ad [email protected] oppure scrivici su Whatsapp al 379 163 8765
Supporta RHC attraverso:
Tutto intorno a noi è crittografia: dalla connessione tramite Wi-Fi, all’accesso all’online banking, al download delle app tramite il nostro account sullo store, allo streaming online per film e partite, alla navigazione sul web, all’uso del nostro social network preferito e così via, passando anche per sistemi di identificazione biometrica o il semplice ascolto di musica tramite i nostri auricolari bluetooth!
Ma da dove parte tutto ciò? Da molto, molto lontano poichè la storia della crittografia è stretta a doppio filo con la storia dell’Umanità: in ogni tempo si è avuta l’esigenza di realizzare comunicazioni riservate tra due o più soggetti.
Un esempio antichissimo di crittografia è dato dalla scitala lacedemonica (antica Grecia), essenzialmente un particolare bastone dove veniva arrotolata una striscia di cuoio o pergamena su cui veniva scritto il messaggio. Una volta srotolata la striscia, il messaggio risultava incomprensibile e solo disponendo di un bastone uguale a quello usato per scrivere, era possibile riscostruire il messaggio originale.
La scitala lacedemonica
Nella terminologia crittografica il particolare bastone rappresenta la chiave (key), il nastro arrotolato è il testo in chiaro (plaintext) mentre il nastro srotolato è il testo criptato (cyphertext) altrimenti detto crittogramma. I due soggetti della comunicazione, che si scambiano il messaggio, sono solitamente indicati con i nomi di Alice e Bob.
La scitala è un sistema crittografico essenzialmente analogico. Un altro tipo di crittografia antica è rappresentato dal Cifrario di Cesare (I sec. a.C.) che invece si presta molto meglio della scitala ad una digitalizzazione.
Nel Cifrario di Cesare l’alfabeto cifrante si ottiene mediante traslazione di un certo numero di posizioni dell’alfabeto principale. La chiave è quindi rappresentata dal numero delle traslazioni.
Ad esempio nel caso specifico dell’originario cifrario di Cesare, la traslazione è di 3 posizioni, per cui la tabella delle corrispondenze è la seguente:
Chiaro A B C D E F G H I J K L M N O P Q R S T U V W X Y ZCifrato D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
dove la lettera A viene cifrata con la lettera D.
Questo tipo di crittografia, in cui la chiave usata per cifrare è uguale a quella utilizzata per decifrare, è detta simmetrica o a chiave privata (o segreta, nota solo ad Alice e Bob). Se le chiavi sono differenti tra loro, la crittografia si dice asimmetrica o a chiave pubblica e privata.
In generale tutti i sistemi crittografici operano per trasposizione e sostituzione.
Con la trasposizione, i simboli cambiano semplicemente di posto nel dato in chiaro, realizzando così un anagramma.
Con la sostituzione – altrimenti detta traslitterazione – il simbolo nel dato in chiaro viene sostituito da un differente simbolo nel crittogramma. Se la sostituzione avviene ad un livello atomico del dato in chiaro (ad esempio, le lettere in un messaggio di testo) si parla specificamente di cifratura, altrimenti si parla di codifica.
La sequenza finita di operazioni eseguibili atte a trasformare il plaintext in cyphertext è detta algoritmo crittografico. Esiste quindi un ordine delle operazioni, dalle prime alle ultime e queste operazioni devono concludersi con la risoluzione del problema cui è stato applicato l’algoritmo (nella fattispecie produrre il dato criptato oppure decriptare il dato o il messaggio).
Alla luce delle precedenti definizioni è quindi possibile dare una classificazione degli algoritmi crittografici secondo lo schema seguente:
Come si vede, oltre ai semplici cifrari a sostituzione monoalfabetica (con un solo alfabeto) ce ne sono di più complessi, dove la sostituzione è effettuata, con varie strategie, da una pluralità di alfabeti.
Tra questi la Macchina Enigma, negli anni ’40 del XX secolo (“macchina” poiché l’automazione era essenzialmente elettromeccanica) che ha svolto un ruolo notevole durante la II Guerra Mondiale. In uso ai nazisti, poteva dar luogo ad uno strabiliante (per il periodo) numero di combinazioni: 158.962.555.217.826.000.000 che possiamo leggere come 158 milioni di milioni di milioni (come si evince applicando il calcolo combinatorio).
La macchina Enigma
Fu solo grazie ad un grande sforzo, cui ebbe un ruolo fondamentale anche uno dei padri dell’informatica, Alan Turing, che si riuscirono a decriptare i dispacci delle forze tedesche. Gli storici concordano che grazie al lavoro dei crittoanalisti, la II Guerra Mondiale si sia conclusa, con gli esiti che conosciamo, due anni prima, salvando in questo modo moltissime vite di
donne ed uomini.
Come si intuisce, aumentando il numero degli alfabeti cifranti, risulta più complesso decriptare il messaggio (ignorando ovviamente la chiave). In effetti si dimostra (Shannon in Teoria dell’Informazione) che un sistema polialfabetico è inviolabile quando il numero di alfabeti cifranti è uguale al numero di caratteri del messaggio da cifrare. Questa condizione fu intuita per la prima volta nel 1917 da Gilbert Vernam, ingegnere della AT&T.
Imponendo la condizione che ogni volta che una chiave viene utilizzata, questa non può essere nuovamente utilizzata, si realizza un tipo di cifrario di Vernam indicato come One Time Pad (OTP), acronimo ben noto e con tantissime applicazioni come ad esempio nel caso dei codici che arrivano sul telefono tramite SMS per l’accesso al sistema di online banking o al social network preferito, che, in sinergia con altri sistemi di autenticazione basati su password, determinano quello che è comunemente indicato come autenticazione a 2 fattori indipendenti (2FA two factor authentication).
Tra le altre tipologia di algoritmi crittografici ci sono gli importantissimi cifrari a blocco che, magari inconsapevolmente, utilizziamo quotidianamente con le nostre applicazioni preferite.
Il riferimento al blocco è dovuto al fatto che sia l’operazione di cifratura che di decifratura è effettuata dall’algoritmo su un volume predefinito di dati, ad es. 128 bit anziché su un elemento alla volta. In questo tipo di algoritmi spesso anche la chiave ha una dimensione
pari a quella del blocco. Un cifrario a blocchi ideale, ad esempio a 128 bit, può essere
immaginato come una (enorme) tabella con tutte le permutazioni di 2 ^ 128 elementi e vi sarà
una di queste tabelle per ogni possibile valore della chiave.
Gli algoritmi relativi a questo tipo di crittografia consistono solitamente nell’applicazione di semplici funzioni di trasformazione, ripetute diverse volte anche combinando tra loro le funzioni.
Importante per la sua applicazione è l’algoritmo simmetrico AES (Advanced Encryption Standard). Come gli altri cifrari a blocchi, AES opera mediante funzioni di sostituzione e permutazione ma risulta molto veloce ed implementabile oltre che in software anche in hardware ed in effetti sia le CPU Intel che AMD dispongono di un subset di istruzioni dedicate a questo scopo che consentono al nostro computer di rispondere velocemente quando si tratti di criptare o decriptare dati (password, token di autenticazione, chiavi per altri sistemi crittografici o di comunicazione).
Da un punto di vista operativo, l’algoritmo AES divide il dato in chiaro in blocchi da 16 byte (128 bit). Il singolo ciclo è costituito da alcune operazioni in sequenza di scambio e sostituzione ed i byte risultanti vengono inoltre rimescolati a gruppi di 4.
Il subset di istruzioni crittografiche AES può inoltre essere utilizzato sulla blockchain per la produzione di criptovaluta come ad esempio Monero, che è una criptovaluta CPU oriented in relazione all’algoritmo di coniazione (RandomX).
Da notare che il set di istruzioni AES può essere utilizzato da alcuni malware (software progettati per produrre danni di vario tipo o per sottrarre informazioni sensibili) veicolati
tramite siti web in modo tale che visitando il sito, una volta che la pagina sia stata caricata dal browser, il codice malevolo presente nella pagina utilizzi la CPU del computer della vittima per produrre criptovaluta a vantaggio del malintenzionato, utilizzando l’energia elettrica e le risorse computazionali della vittima, quindi con costi totalmente a suo carico.
Come si vede siamo partiti da un bastone (la scitala), passando per la più grande guerra della storia fino ad arrivare all’accesso del nostro conto online ed alla produzione di criptovaluta magari a favore di altri!
La crittografia è un mondo assai vasto e, come stiamo iniziando ad intuire, lo stesso mondo come lo conosciamo oggi non sarebbe possibile senza questa importante scienza che diventa tecnologia.
Nello schema di classificazione, oltre ai già citati algoritmi simmetrici, è indicata anche l’importante classe degli algoritmi digest.
Letteralmente digest vuol dire “impronta” ed è esattamente ciò che calcola questo tipo di algoritmo:
Questo testo di output ovvero il testo risultante dall’applicazione dell’algoritmo al messaggio in chiaro (nel caso più generale un alfanumerico comprendente anche caratteri speciali come il segno %, il simbolo del dollaro $, la e commerciale & e così via) è l’impronta di quel dato
e viene indicata con la parola hash.
Da notare che gli algoritmi digest sono unidirezionali e che dal dato criptato, dall’hash, non è possibile risalire al dato in chiaro che lo ha generato. Si tratta di una differenza sostanziale rispetto alla classe degli algoritmi simmetrici ed in effetti sono proprio le pecualiarità delle varie classi di algoritmi crittografici che ne determinano i diversi ambiti di applicazione.
I digest sono utilizzati in tantissimi scopi, non ultimo quello di applicarli alle nostre password prima che queste siano salvate nei database dei siti dove ci colleghiamo (Gmail, Facebook, Instagram, il nostro online banking, ecc.) mediante particolari strategie che prevedono l’uso di un “sale crittografico” (salt).
Il salt è una stringa casuale che viene concatenata al dato di cui occorre calcolare il valore di hash. Il salt è quindi fondamentalmente un costrutto molto semplice ma risulta addirittura cruciale in merito al salvataggio delle nostre password.
Come anticipato, l’hash rappresenta l’impronta di un dato. Applicando lo stesso algoritmo allo stesso dato si deve ottenere lo stesso hash!
Nel caso delle password dei vari servizi cui accediamo (online banking, Instagram, Facebook, ecc.), di queste vengono salvate sui database i rispettivi hash per motivi di sicurezza, in modo tale che anche una eventuale intrusione sul database non consentirebbe la lettura delle password degli utenti. Quindi, quando inseriamo una password per l’accesso ad un servizio, il server calcola l’hash della password che abbiamo immesso e verifica che questo hash sia uguale a quello che ha salvato sul database consentendoci o meno l’accesso.
Per rendere maggiormente sicuro il sistema anche ad attacchi di forza bruta (brute-force), il salt viene in aiuto poiché l’hash viene calcolato sulla stringa (il testo) risultante dalla sua concatenazione con la password scelta.
Si tratta di strategie atte a rendere complesso un “attacco a dizionario”, dove si calcolano gli hash delle parole contenute nel dizionario verificando che uno degli hash corrisponda a quanto salvato nel database (nel qual caso l’attaccante avrebbe identificato la password di un utente!).
Nell’ipotesi di un dizionario di 10000 parole ed uno con 1000 salt, si ottengono ben 10’000’000 – dieci milioni – di accoppiamenti possibili. La differenza è sostanziale, diversi ordini di grandezza. Se ad esempio il nostro sistema di attacco potesse verificare 1 password
al secondo, senza l’uso del salt impiegherebbe poco più di tre ore a completare il dizionario. Nel caso invece di uso del salt e nell’ipotesi di cui sopra, il tempo necessario sarebbe di quasi 2800 ore, ovvero circa quattro mesi, un tempo più che sufficiente a rendersi conto che il sistema è sotto attacco in modo da apportare le contromisure necessarie (che ad ogni modo vanno previste a monte)!
Abbiamo quindi fatto un volo d’uccello sugli algoritmi simmetrici (dove la chiave è privata, ovvero deve restare segreta e condivisa tra chi cripta il messaggio e chi lo decripta con la stessa chiave) e sugli algoritmi digest che restituiscono l’impronta di un messaggio.
Vediamo adesso l’importantissima classe di algoritmi asimmetrici, dove la chiave utilizzata per criptare (la chiave pubblica) è differente da quella usata per decriptare (la chiave privata).
Questo comportamento che a prima vista può apparire bizzarro rende possibile, ad esempio, la navigazione criptata sul web ed i sistemi ormai diffusissimi di firma digitale (DSA) e di posta elettronica certificata (PEC).
Questa tipologia di algoritmi utilizza particolari funzioni che risultano “semplici” da calcolare ma la cui funzione inversa risulta invece particolarmente complessa. In altri termini queste funzioni hanno una bassa difficoltà computazionale contrariamente alla loro funzione inversa per cui risulta invece una elevata complessità computazionale. Questo tipo di funzioni si
indicano in matematica come funzioni unidirezionali.
Funzioni di questo tipo e relativa inversa utilizzate in ambito crittografico, sono:
A prima vista la scomposizione in fattori di un numero sembra un’operazione davvero semplice ma è così solo in apparenza. Se i numeri in gioco sono piccoli, numeri con cui siamo abituati a trattare tutti i giorni, ci appare banale fattorizzare. Ad esempio con il numero 12 abbiamo:
12 | 2 6 | 2 3 | 3 1
Quindi il numero 12 è uguale a 2 x 2 x 3.
Trovarsi invece di fronte il numero 894440775416499 genera ben altre perplessità in merito ai fattori costituenti…
Gli algoritmi crittografici asimmetrici vengono utilizzati per condividere una chiave tra i soggetti della comunicazione (ad esempio tra il browser in uso ed il server di Instagram cui ci si sta collegando) da utilizzare successivamente per la comunicazione che proseguirà poi con un algoritmo simmetrico, solitamente a blocchi (AES), che risulta molto più veloce.
La questione è sensibile, poiché una delle maggiori criticità nell’uso degli algoritmi simmetrici è che le parti devono condividere una chiave ma dovendo questa chiave restare segreta per tutelare la comunicazione, occorre che lo scambio avvenga in modo sicuro!
Gli algoritmi asimmetrici garantiscono che lo scambio sia sicuro (sotto determinate premesse) e rappresentano uno sviluppo molto recente in termini storici, risalendo alla fine degli anni ’70 del XX secolo.
Nella distribuzione delle coppie di chiavi entrano in gioco anche enti certificatori che le garantiscono (i cosidetti “certificati” usati ad esempio sul web per la navigazione https – secure hypertext transfer protocol).
Nel caso della navigazione con protocollo https (dove per protocollo si intende un insieme di regole condivise) ma potrebbe essere anche l’invio di una e-mail con protocollo smtps, un possibile schema dello scambio è riportato nella figura seguente:
Oltre alla crittografia a chiave pubblica e privata basata sui numeri primi e relativa fattorizzazione di numeri interi molto grandi (RSA), molto diffuso è anche il sistema basato sulle proprietà delle curve ellittiche (algoritmi ECC) relativamente al calcolo del logaritmo discreto.
La crittografia in curve ellittiche ci è molto più vicina di quanto potremmo sospettare e difetti di progettazione in sistemi complessi come questi possono portare a gravi conseguenze (come disse Linus Torvalds “le reti sono una brutta bestia”). Ad esempio a gennaio del 2020 è stato scoperto, grazie all’intervento della NSA (National Security Agency – USA) quello che è stato definito dalla direttrice della sicurezza informatica NSA, Anne Neuberger, un problema di sicurezza informatica globale «extraordinarily serious» (Forbes, 2020) ovvero “straordinariamente grave”.
La vulnerabilità scoperta è stata pubblicata su CVE (Common Vulnerabilities and Exposures del MITRE, ente finanziato dal Dipartimento della Sicurezza interna degli Stati Uniti) ed è quindi divenuta di pubblico dominio.
Il problema riguardava l’errata applicazione della crittografia in curve ellittiche di Windows, gestita dal componente del sistema operativo “crypt32.dll”.
Il problema era tale che un aggressore avrebbe potuto emulare una qualsivoglia firma digitale per firmare un software specifico. Questo vuol dire che avrebbe potuto nascondere ad esempio a Windows Defender un malware facendolo passare per un programma
assolutamente lecito, prodotto e firmato da una software house attendibile!
Questa vulnerabilità si estendeva anche al fondamentale protocollo dello scambio delle chiavi (DH, Diffie-Helmann-Merkle su curve ellittiche) consentendo di portare facilmente un
attacco man-in-the-middle (in ascolto nel mezzo della comunicazione) riuscendo ad intercettare e reimpostare i valori della chiave.
A quel punto il malware avrebbe potuto anche catturare i dati della nostra carta di credito o dell’accesso online banking come pure le credenziali per tutti i servizi cui siamo registrati,
come le nostre caselle e-mail ed i nostri social network, andando a compromettere la nostra “identità digitale”, il nostro lavoro, i nostri conti bancari!
Oggi si parla moltissimo di blockchain, questa nuova tecnologia di cui le criptovalute rappresentano un aspetto, forse il più eclatante.
Ebbene questa tecnologia non potrebbe esistere senza la crittografia ed in particolare senza l’applicazione degli algoritmi digest o delle curve ellittiche!
Avrete senz’altro sentito parlare della blockchain ma probabilmente ai più non è chiaro il concetto che ne è alla base. Partiamo dal significato letterale, vale a dire “catena di blocchi”, che indica una tipologia di struttura dati che risulta essere immutabile e condivisa.
Cosa si intende con immutabilità? Che in ogni determinato momento lo stato della struttura dati è fissato, e che lo stato (possiamo immaginarlo come i valori che caratterizzano la struttura dati a quel determinato istante), in ogni momento successivo è determinato dallo stato precedente. L’immutabilità, quindi, deriva dal fatto che una qualsiasi variazione
di un anello della catena, produce variazioni in cascata, rendendo quindi palese l’intromissione ma c’è di più. Essendo lo stato distribuito, ovvero definito dai vari nodi che compongono la rete su cui viene elaborata la struttura dati, in ogni nodo vi è una
replica dell’intera catena: quindi anche modificando il valore ad un momento in un nodo della rete, questa variazione sarebbe respinta dagli altri nodi.
I vari blocchi della catena assumono quindi un valore specifico, mediante l’applicazione di algoritmi digest e calcolando il giusto valore hash del blocco, che è immutabile e
condiviso tra tutti i nodi. Alla base, quindi, della struttura dati espressa dal concetto blockchain ci sono tre fattori: crittografia, decentralizzazione ed immutabilità dei dati nel tempo.
Un modo per concettualizzare la blockchain è quello di riferirsi alla metafora del libro mastro, ovvero al ledger. Così come in un libro mastro vengono riportate tutte le movimentazioni, nel ledger vengono riportate tutte le transazioni effettuate e le parti coinvolte nella transazione. Inoltre a differenza del libro mastro che è detenuto da una sola persona od un gruppo ristretto di persone, il ledger è distribuito su tutti i nodi e tutti possono visualizzarvi le transazioni che vi sono registrate. Il ledger, quindi, è un database distribuito, in cui i dati sono salvati su più computer, collegati tra loro mediante un’applicazione dedicata che implementa la “catena” tra i nodi. Una sostanziale differenza quindi dal sistema classico di database su server singolo o gruppo di server gestiti da un’autorità centrale che nel caso della blockchain non è presente (le cosidette “blockchain private” derogano invece ai principi base e sono gestite comunque da un ente centrale).
Le applicazioni possono essere le più disparate. Si pensi, ad esempio, alle filiere di produzione dove si vuole certificare la provenienza di un bene in modo trasparente,
non soggetto ad inquinamenti di sorta nemmeno da parte dello stesso produttore. O ancora, a sistemi di votazione basati su blockchain che, se da un lato garantiscono la sicurezza del
voto, dall’altro comportano comunque non pochi problemi, come quelli relativi alla sicurezza o all’impossibilità di garantire che non ci sia stata per il votante alcuna coercizione del voto che potrebbe avvenire ovunque, in antitesi al luogo deputato della cabina elettorale che è comunque un ambiente protetto, senza considerare anche l’energia necessaria per supportare un sistema di voto basato su blockchain.
L’energia necessaria per mantenere una blockchain è in effetti uno dei suoi limiti anche se ci sono strategie che permettono di ridurne l’impatto energetico ed ambientale.
La criptovaluta è, di fatto, il “premio” riservato a chi risolve un determinato calcolo crittografico che permette di validare il blocco.
Il ben noto Bitcoin è una blockchain (peraltro la prima blockchain) basata sulla crittografia ECDSA – (Elliptic Curve Digital Signature Algorithm, un sistema di firma digitale basato su ECC).
La curva in questione ha un’equazione dall’apparente semplicità:
y ^ 2 = x ^3 + 7
Il cui grafico è il seguente:
Pensateci la prossima volta che il bitcoin che avrete acquistato avrà superato (di nuovo) i 40’000 dollari facendovi guadagnare tantissimo, tutto grazie alla… crittografia!
In futuro, per lo scambio della chiave, potrebbero utilizzarsi (e già si utilizzano in particolari e limitati ambiti), sistemi di crittografia basati non su funzioni unidirezionali bensì sulle proprietà, altrettanto bizzarre dell’aritmetica in modulo, della meccanica quantistica.
Innanzitutto occorre chiarire che la parola “quanto” proviene dal latino quantum che vuol dire “quantità”. Questo quantum, in fisica, indica la quantità elementare (ovvero un componente minimo, parte di un sistema composto), discreta (è l’opposto di un sistema “continuo” che è banalmente un sistema senza interruzioni) e quindi non ulteriormente divisibile.
Nella scala di grandezza dei quanti anche la semplice osservazione del sistema ne costituisce una perturbazione che è possibile rilevare. Questo implica che se un attaccante tentasse di applicare un man-in-the-middle ad uno scambio di fotoni (quanti di luce) tra Alice e Bob al fine di determinare una chiave condivisa, questa intromissione sarebbe rilevata consentendo ai nostri amici di riorganizzare la loro trasmissione. Si tratta quindi di un sistema di scambio con controllo insito fisicamente nel mezzo di trasmissione!
Gli ultimi anni, hanno visto sempre più l’affermarsi della tecnologia di ottica digitale, che è passata dai laboratori di élite alle nostre case ed uffici, basti pensare alla penetrazione della fibra ottica per la connessione a banda ultralarga.
Per questo motivo sempre più aziende sono desiderose di entrare nel nuovo settore della crittografia quantistica: ricordiamo che la comunicazione e la riservatezza (la tutela quindi della nostra connessione verso la banca, dei dati industriali, della tutela della privacy, ecc.) rappresentano un importantissimo mercato, motivo per cui molte grandi aziende dell’IT come Toshiba e NEC, hanno investito nelle QKD (Quantum Key Distribution) per realizzare sistemi effettivamente operanti.
La crittografia ci circonda e protegge i nostri dati: le nostre email, lo streaming Netflix oppure di Amazon Prime Video, la navigazione su web così come il collegamento sicuro alla nostra banca, un messaggio WhatsApp oppure una call di lavoro su Skype o Zoom, la visione
di un DVD o anche la lettura di un e-book, unitamente alle nuove tecnologie legate alla blockchain e le criptovalute, diretti come siamo verso un futuro crittografico quantistico…
Eppure quanto è sicuro tutto questo?
Occorre porsi alcune domande. Innanzitutto è fondamentale che gli algoritmi siano implementati in modo corretto, così come vuole la teoria e che i protocolli che li utilizzano siano parimenti progettati bene, diversamente accadono (ed accadono) problematiche come quella descritta relativa al componente crypt32.dll presente in ogni distribuzione Windows con grave rischio per la sicurezza.
In generale però la cybersecurity, così come la blockchain, va vista come una catena, dove l’anello debole determina la forza dell’insieme.
I protocolli possono anche implementare in modo corretto gli algoritmi, anche se va ricordato che non esistono software che non contengano errori di progettazione (i cosidetti “bug”), ma nella catena della sicurezza ci sono anche – e forse soprattutto – i comportamenti tenuti dagli utenti che utilizzano i loro strumenti (app, posta elettronica, browser, ecc. ecc.) e che possono cadere nelle trappole del social engineering.
Con questo termine si indicano tutte le strategie messe in atto dai cybercriminali per indurre il malcapitato ad inviare loro dati riservati (il cosidetto phishing), ad aprire allegati alle e-mail con lo scopo di infettare il computer con “malware” con l’obiettivo del caso: trafugare credenziali di accesso, password, numeri di carta di credito, criptare i documenti per poi chiedere un riscatto per fornire la chiave di decifratura – in questo caso parliamo specificamente di ransomware. In altri casi l’utente potrebbe essere indotto a visitare siti infetti che ad esempio – ma i casi sono davvero molteplici – potrebbero produrre criptovaluta a beneficio dei criminali utilizzando però le proprie risorse: computer, energia, connessione!
Difendersi dal social engineering richiede che si sviluppi una vera cultura di base sugli strumenti messi a disposizione dall’informatica, in modo che gli utenti non saranno meri consumatori ma avranno le conoscenze per effettuare scelte consapevoli, soprattutto se consideriamo, così come abbiamo visto, il notevole impatto che le nuove tecnologie hanno nelle nostre vite.
Come tutti gli strumenti umani, l’uso che se ne farà ne determinerà il risultato.
Per approfondire in modo esaustivo tutti gli argomenti trattati in questo articolo posso suggerire il mio libro “La crittografia da Cesare ai quanti” (ed. Themis), dove il lettore viene guidato passo passo nella comprensione delle tecnologie crittografiche e la loro implementazione negli strumenti che usiamo ogni giorno. Nel libro vengono forniti tutti gli strumenti (calcolo combinatorio, operatori logici, fattorizzazione dei numeri interi, logaritmi discreti) per la corretta comprensione dei vari algoritmi, dei protocolli di rete, dal TCP/IP ad HTTPS, dal Bluetooth e fino al dark web, della blockchain, della crittografia frattale e quantistica.
Inoltre alla fine del libro vi è un’ampia bibliografia per eventuali ulteriori approfondimenti oltre a script da scaricare tramite qr-code così da fare esperienza diretta e consapevole dei vari algoritmi crittografici.
Mario Rossano, esperto in crittografia e cybersecurity, è fondatore e CEO della Netlogica – web and software engineering. Chief Software Engineer per il progetto “Programma il Futuro” del MIUR (Ministero dell’Istruzione, Università e Ricerca) e del CINI (Consorzio Interuniversitario Nazionale per l’Informatica). Ha sviluppato collaborazioni con strutture di livello nazionale ed internazionale, tra le quali l’Università degli Studi di Napoli Federico II, Informatics Europe, HP. Nella sua attività di ricerca ha ideato la crittografia frattale FNA.Membro del NaLUG (Napoli Linux User Group) e della Italian Perl Community, ha partecipato in qualità di speaker a numerose conferenze italiane ed internazionali come il Linux Day, Codemotion, IPW, YAPC-EU. Il suo motto è: “Hacking è risolvere un problema in modo nuovo, mai tentato prima”.