Tra i numerosi memi che stanno colonizzando le nostre menti mediate tecnologicamente, uno in particolare prevale ormai su tutti gli altri: ALGORITMO. Tutti sembrano sapere cosa sia, molti si piegano volentieri (servitù volontaria) ai suoi diktat, alle sue preferenze e ai suoi suggerimenti, pochi si curano di comprendere il suo ruolo reale nel determinare scelte e decisioni individuali, ancora meno si interrogano criticamente sui suoi effetti.
Sull’algoritmo negli ultimi anni sono stati pubblicati innumerevoli libri, alcuni critici, molti semplicemente descrittivi se non celebrativi, pochi di stampo formativo. Uno di questi libri, dal titolo “La crittografia da Cesare ai quanti – Un percorso formativo su algoritmi, sicurezza e blockchain” è stato scritto da Mario Rossano, consulente del CINI (Consorzio Interuniversitario Nazionale per l’Informatica), esperto in crittografia e cybersecurity, fondatore e CEO di Netlogica.
A Mario Rossano abbiamo posto alcune domande che hanno dato origine all’interessante e istruttivo dialogo seguente.
Buongiorno, per iniziare può raccontarci qualcosa di lei, della sua attività di ricerca, delle sue iniziative e dei suoi progetti? Quanto ritiene importante nelle sue attività professionali/imprenditoriali e nella sua vita personale riflettere criticamente sulla tecnologia?
Buongiorno a Lei ed a tutti i lettori. La ringrazio per la domanda perchè posso subito dirle che la curiosità ed il divertimento sono il leitmotiv delle cose che faccio: curiosità perchè è importante porsi sempre delle domande per progredire; divertimento perchè è una componente fondamentale in un approccio di ricerca della conoscenza, senza divertimento anche la passione più profonda tende a scemare e con questa anche i risultati che si possono raggiungere in ogni campo.
Con curiosità e divertimento ho quindi vissuto la mia attività di ricerca durante la quale ho definito una famiglia di frattali lineari, sui quali ho poi costruito la crittografia frattale FNA che descrivo anche nel libro. Definii geometricamente questi frattali ma poi pensai che occorreva fargli fare qualcosa, da scienza a tecnologia e l’ambito crittografico mi sembrò il campo di applicazione ideale.
Sono membro del NaLUG (Napoli Linux User Group) e della Italian Perl Community ed in questa veste ho partecipato in qualità di speaker a numerose conferenze italiane ed internazionali come il Linux Day, Codemotion, IPW, YAPC-EU, sempre in ambito crittografico.
Per il CINI – Consorzio Interuniversitario Nazionale per l’Informatica - sono Chief Software Engineer del progetto “Programma il Futuro”, un progetto che coinvolge le scuole italiane che mi ha dato e continua a darmi tantissime soddisfazioni, coordinato dal Prof. Enrico Nardelli dell’Università di Roma Tor Vergata e Presidente di Informatics Europe.
Nel 2004 ho fondato Netlogica che si occupa prevalentemente di progettazione e sviluppo di software, cybersecurity di server e reti.
In futuro vorrei proseguire l’attività di divulgazione sulle nuove tecnologie e spero che “La crittografia da Cesare ai quanti” sia il primo di una serie di saggi con i quali avvicinare le persone ai temi dell’informatica e delle tecnologie digitali, affinché diventino maggiormente consapevoli del mondo che ci circonda.
Lei è autore di un libro, da poco in distribuzione, che si pone l’obiettivo di offrire un percorso formativo su algoritmi, sicurezza e blockchain. Tre termini o concetti che tutti pensano di conoscere e possedere cognitivamente. Perché ritiene che sia oggi necessario un percorso formativo? Se ho capito bene uno degli obiettivi è la maggiore consapevolezza sulla tecnologia (Tecnocnsapevolezza, il termine da me coniato), sulle pratiche diffuse di utilizzo e sui suoi effetti. Ci può descrivere meglio la sua proposta, il viaggio a cui invita i lettori e il cammino sul quale li vuole portare?
A mio avviso, oggi più che mai, è necessario giungere ad una comprensione del mondo che ci circonda che è permeato di digitale. Si parla spesso di algoritmi ma quanti di noi saprebbero darne una definizione? Eppure sono questi enti matematici che permettono ai nostri sistemi di messaggistica di funzionare, che si occupano di garantire la privacy dei nostri dati e che fanno funzionare i nostri computer e smartphone. Parimenti sulla sicurezza c’è molto da dire e molto ancora da fare, mancando allo stato attuale una cultura della cybersecurity che si sta appena formando. Di blockchain se ne parla tantissimo, dando per scontato che si sappia di quale tecnologia si tratti e che applicazioni si possa farne, tuttavia quanto ci si rende conto che questa tecnologia sia così pervasiva nelle nostre vite? Occorre fare chiarezza per capire davvero gli strumenti che utilizziamo e quali implicazioni possano avere per il nostro lavoro ed il nostro privato.
Un importante fattore comune ad algoritmi, blockchain e sicurezza, è rappresentato proprio dalla crittografia a sua volta implementata nei protocolli di rete che usiamo, inconsapevolmente, ogni volta che inviamo un messaggio su Whatsapp oppure carichiamo una storia su Instagram o Facebook, ci colleghiamo al servizio di online banking o semplicemente navighiamo sul web. Ho costruito il mio libro come un percorso formativo partendo dai concetti di base, proprio per rendere il lettore, alla fine del percorso, consapevole poiché avrà avuto tutti gli strumenti di approfondimento necessari.
Le nostre vite sono oggi mediate, se non condizionate, tecnologicamente. A decidere per noi come utenti, consumatori, elettori sono sempre più spesso algoritmi, piattaforme, il codice e la logica che li caratterizzano, chi li crea e li possiede. Si è sempre detto che la tecnica è neutrale, il suo buono o cattivo uso (un martello può servire per piantare un chiodo o per uccidere) dipende dall’utente. Oggi la tecnologia neutrale non lo è più. Troppo invasiva, ormai penetrata nella nostra mente e capace di sostituirsi alla nostra capacità di scelta. Lei cosa ne pensa? Esiste una tecnologia buona e una tecnologia cattiva?
Il senso della vita
Innanzitutto voglio dire che non sono un fautore della tecnologia ad ogni costo: la tecnologia va utilizzata se risulta utile, se ci semplifica la vita e se risolve per noi dei problemi o concorre a risolverne. Ad ogni modo credo che la tecnologia sia neutrale, né buona né cattiva. Il punto cardine è che la comunicazione, e la sua deriva in ipercomunicazione, utilizza in modo sottile le nuove tecnologie a fronte di un utente inconsapevole e quindi facilmente attaccabile, soprattutto alla luce del fatto che i nostri dati ed i nostri comportamenti nel mondo digitale rappresentano un tesoro che è fondamentale per quegli algoritmi: noi influenziamo gli algoritmi che poi influenzano noi. Viviamo un pericoloso feedback, un corto circuito appunto, non avendo davvero coscienza di come funzionano gli strumenti a nostra disposizione e qui mi riferisco esplicitamente a PC, smartphone e tablet che usiamo, talvolta indiscriminatamente, con miriadi di app e social network.
Sviluppare una cultura degli algoritmi e della crittografia contribuisce, a mio avviso, alla costruzione di quella forma mentis critica che sarà il nostro primario strumento di difesa e di controllo.
Dopo avere dato alcune definizioni di cosa sia un algoritmo, nei primi capitoli del suo libro si concentra sulla crittografia e sugli algoritmi che la caratterizzano. Può spiegarci la crittografia e le sue tecniche, quanto sia una pratica antica (il Cesare del titolo del libro), quanto sia in continua evoluzione (crittografia quantisica) e quanto sia oggi diventata fondamentale come strumento di sicurezza dei dati e personale (riferita alla vita online e digitale)?
Civiltà e crittografia sono un connubio indissolubile: sin dall’antichità l’Uomo ha sentito l’esigenza di fare in modo che alcune comunicazioni fossero riservate solo a determinati soggetti in ambito militare ma non solo. Il cifrario di Cesare ne è un esempio ed è il primo algoritmo crittografico che descrivo nel libro, proprio per la sua semplicità e per l’uso didattico che se ne può fare, importante nel porre alcune importanti basi nello sviluppo del discorso crittografico. La scienza progredisce e nuove scoperte sono state fatte in ogni tempo in campo matematico come nelle altre scienze. E’ qui che la Fisica entra prepotentemente nella crittografia che evolve tuttora e dove, proprio negli ultimi 50 anni, ci sono state le innovazioni maggiori, i cui frutti utilizziamo (e talvolta ne siamo vittime) ogni giorno.
La cybercriminalità è diventata pervasiva, più agguerrita e aggressiva, creativa e abile nello sfruttare le vulnerabilità della tecnologia e le cattive pratiche dell’utente. Gli utenti non sembrano avere colto appieno i rischi che corrono (quanti usano ancora parole chiave come 1234567 o 7654321?). Non conoscono neppure cosa venga oggi fatto per difenderli e con quali strumenti. Ci può spiegare cosa sono gli algoritmi DIGEST, a cosa servono e in che modo, se utilizzati bene, possono fornire protezione agli utenti.
Come ha evidenziato, le tecniche utilizzate dai cybercriminali sono sempre più raffinate. Sul versante delle password purtroppo gli utenti hanno la loro responsabilità quando scelgono di utilizzare semplici sequenze di numeri o di caratteri. Gli algoritmi possono difenderci ma occorre anche fornire loro un “input” adeguato. Ad esempio, la classe di algoritmi crittografici “digest” sono molto utilizzati proprio nel campo del salvataggio delle password su un database. Questo tipo di algoritmi, descritti nel mio libro, hanno la peculiarità di restituire un dato di lunghezza predeterminata chiamato hash, indipendentemente dalla lunghezza del dato in ingresso. Quando effettuiamo l’accesso ad un sito web, ad esempio un webmail dove per collegarci inseriamo il nostro indirizzo di posta elettronica (dato pubblico) e la relativa password (dato privato), il server ci consente l’accesso a condizione che la password sia corretta e che inoltre corrisponda all’indirizzo e-mail che abbiamo inserito.
Per fare questa verifica, ovviamente, il server deve avere la password giusta salvata su un database, in modo da poterla confrontare con la password che gli viene comunicata all’atto della richiesta di accesso al webmail. Questo modo di procedere, per quanto corretto, risulta però insicuro in quanto un’eventuale intrusione sul database consentirebbe il furto di tutte le password ivi conservate. Un primo miglioramento alla sicurezza, applicando questa importante classe di algoritmi, prevede di salvare sul database il valore hash della password anziché la password direttamente. Il server quindi per effettuare la verifica della password calcolerà preventivamente il valore hash della password che gli viene comunicata dall’utente e lo confronterà con quello salvato sul database. In questo modo eventuali intromissioni sui dati da parte di malintenzionati, non porterà all’acquisizione della propria password da parte di terzi poiché per motivi legati al funzionamento di questi algoritmi, motivi indicati in dettaglio nel libro, non è possibile risalire da un hash al dato iniziale di cui l’hash rappresenta l’impronta. Oltre a ciò si utilizzano anche altre astuzie, come il “sale crittografico” per evitare ciò che viene indicato come “attacco a dizionario” che pure è descritto nel libro, astuzie che sostanzialmente mitigano anche la “scoperta” di password semplici come quelle che mi ha indicato prima. Ad ogni modo nel libro ho riportato esempi e script da scaricare (software) per fare esperienza di questi importanti concetti.
Nell’era dell’informazione tutto è comunicazione. Si comunica sempre, si comunica in tutti gli ambiti esperienziali, si comunica attraverso canali diversi, soprattutto online. La comunicazione digitale viaggia su protocolli consolidati, dei quali l’utente non conosce più nulla (cosa è il TCP/IP, le API, l’OSI, ma anche http, FTP, NFS, DNS, SMTP, telnet, RIP, ecc. ecc.?). Mettere in sicurezza la comunicazione e i suoi protocolli è un primo passo per garantire la sicurezza e, con essa, la serenità dell’utente. Come spiegherebbe a un internauta il ruolo che ha la crittografia nei vari protocolli che fanno funzionare una pagina Web dentro un’applicazione browser, una e-mail, una videoconferenza, una applicazione di messaggistica come WhatsApp o Messenger, una piattaforma di social network, ecc.?
Nel libro indico preliminarmente cosa sono gli algoritmi e quindi gli algoritmi crittografici. Dopo aver compreso e fatta esperienza che questi strumenti ci permettono di rendere comprensibile un messaggio, in generale un dato, anche digitale, solo a determinati soggetti che abbiano la chiave adatta per leggerlo ho introdotto i protocolli, un insieme di regole condivise e quindi i protocolli di rete che sono l’insieme delle regole, il terreno comune, tramite cui la comunicazione digitale può avvenire. Questa comunicazione potrà essere “in chiaro”, quindi accessibile a chiunque, oppure essere “criptata”. Per fare questo i protocolli di rete integrano gli algoritmi crittografici secondo modalità ben precise che ci consentono di manterere la dovuta riservatezza: certamente non desideriamo che il nostro accesso online alla banca sia possibile a chiunque come pure teniamo a che la nostra identità digitale, che si esplica attraverso i nostri profili social, sia appunto “nostra” e non di altri. Alla realizzazione di ciò concorre la sinergia tra protocolli di rete ed algoritmi crittografici, dove nel libro evidenzio anche alcune tipologie di attacco poiché, come sempre, “conoscere” aiuta a “prevenire”.
Infine un’ultima domanda sulla blockchain (catena di blocchi). Parola nota a tutti ma il cui significato risulta, a molti, misterioso. In particolare quando si spiega il concetto, come lei ha fatto nel suo libro, parlando di crittografia, decentralizzazione e immutabilità dei dati nel tempo. Come spiegherebbe questi concetti a un neofita interessato a una tecnologi destinata, come e con l’intelligenza artificiale a cambiare il nostro futuro?
Ha perfettamente ragione sul fatto che si parli molto di blockchain, purtroppo non chiarendo mai precisamente di cosa si tratti. Ebbene una blockchain è essenzialmente un database con alcune particolarità, delle qualità, che sono proprio la decentralizzazione, l’immutabilità e la crittografia. Per decentralizzazione si intende che non vi è un unico detentore del database (il cosidetto ledger), ma questo è distribuito su tutti i nodi della blockchain, dove i nodi sono i server che elaborano il software con cui la blockchain è costruita. Chiunque, quindi, installando il software apposito, può aggiungere il suo computer/server alla blockchain e farne parte.
L’immutabilità riguarda una proprietà della blockchain, ovvero che il ledger, il database, ha uno stato (i valori che lo caratterizzano in un determinato istante) che è fissato in ogni determinato momento ed ogni momento successivo è determinato dallo stato precedente. Questo, unitamente al fatto che il ledger è riportato su tutti i nodi, fa si che una variazione di un valore in un determinato momento sarebbe individuabile poiché il nuovo valore “iniettato” non collimerebbe con i valori successivi. Inoltre la variazione potrebbe riguardare un nodo o al più qualche nodo per cui gli altri nodi della rete rifiuterebbero la variazione garantendo “l’immutabilità”: una sorta di resilienza dei dati di una blockchain data dal meccanismo di controllo dei valori che man mano sono aggiunti. La crittografia è il nodo cardine della blockchain, senza la quale non potrebbe esistere, basti dire che i valori del ledger sono convalidati tramite “hash”, quindi applicazione di algoritmi digest secondo varie modalità che vengono esplorate nel libro.
Le applicazioni di questa nuova tecnologia, che nasce nel 2008, sono molteplici e notevoli: ci sono le criptovalute (ad es. Bitcoin, Ethereum), possono esservi applicazioni legate alle filiere di produzione, dove si desideri certificare la provenienza di un bene in modo trasparente, non soggetto ad inquinamenti di sorta nemmeno da parte dello stesso produttore. Altre applicazioni potrebbero essere legate al voto elettronico oppure, in generale, a ciò che viene definito “smart contract” ovvero un programma che viene eseguito quando determinate condizioni sulla blockchain sono soddisfatte. La fantasia è il solo limite!
Vuole aggiungere qualcos’altro per i frequentatori e i lettori di SoloTablet. Ha indicazioni da dare, libri e letture da consigliare, buone pratiche da suggerire? Vuole dare loro alcune motivazioni forti per l’acquisto del suo libro?
Leggere ha sempre effetti positivi. Contribuisce ad esplorare mondi, esperienze e conoscenza, non a caso un’importanza manifestazione nel settore dell’editoria si chiama “Più libri, più liberi” concetto che non posso che sposare in pieno.
Ho scritto “La crittografia da Cesare ai quanti” perchè è il libro che avrei sempre desiderato leggere sull’argomento.
Si tratta di un percorso che parte dagli elementi più semplici fino ad affrontare argomenti complessi, fornendo tutti gli strumenti, per comprendere ad esempio le curve ellittiche e perchè siano così importanti anche per la sicurezza del nostro computer e del nostro conto in banca! Un testo sugli algoritmi e la crittografia mi sarebbe sembrato incompleto senza la fondamentale parte dei protocolli, il luogo dove tutti quegli enti matematici, gli algoritmi, trovano applicazione e che ritroviamo nel nostro quotidiano, in modo poi da poter rispondere a domande quali:
- come funziona la sicurezza di un online banking? e su quali principi matematici?
- Che succede quando si attiva il bluetooth sullo smartphone?
- In che misura possiamo essere tranquilli?
- Cos'è un hash e perchè è tanto importante per la sicurezza delle password?
- Che impatto hanno nella nostra vita quotidiana il calcolo combinatorio e le curve ellittiche? E cosa sono?
- Che si intende per blockchain e come funziona?
- Che riservatezza offrono e su che principi funzionano diffusissime applicazioni di call conference e messagging come Skype, Whatsapp e Zoom?
Queste e tante altre domande trovano risposta nel libro con una sola raccomandazione per il Lettore che ho voluto inserire anche nella prefazione: di non saltare alcuna tappa del viaggio, poiché ogni capitolo, ogni paragrafo, contiene gli elementi per proseguire “in sicurezza” e condurre così la nave in porto dall’agitato mare digitale.