Jornt van der Viel è il miglior esperto di ransomware del nostro GReAT – Global Research and Analysis Team (il team di Ricerca Globale e Analisi di Kaspersky Lab), ma conosce anche a fondo il tema della crittografia. Abbiamo offerto ai nostri lettori l’opportunità di porre alcune domande su queste due tematiche, e sono state davvero così tante che abbiamo dovuto dividere la rubrica “Domande e Risposte” in due diversi post.
Nella prima parte, Jornt ha risposto a domande relative al ransomware. Adesso è il momento di parlare della crittografia e di altri argomenti ad essa relazionati.
Mi chiedo a cosa serva la sicurezza informatica. Serve per essere più liberi? Per la privacy? Per la sicurezza nazionale? Non è facile trovare una risposta, ma vorrei conoscere il tuo parere da esperto.
Credo che la sicurezza informatica riguardi la protezione della vita della gente. Non dimenticare che l’automazione e successivamente la Tecnologia dell’Informazione sono state inventate per rendere la vita più semplice, per automatizzare quello che la gente era solita fare a mano. Sfortunatamente, molti sistemi informatici non erano stati progettati prendendo in considerazione la sicurezza (ecco perchè adesso ci troviamo in questa situazione). Se la Tecnologia dell’Informazione non fosse protetta, la vita di tutti i giorni sarebbe un caos.
Immagina di essere portato urgentemente al pronto soccorso per poi scoprire che non possono esserti d’aiuto perchè hanno subito una violazione di dati. O che vivi al di sotto del livello del mare e all’improvviso casa tua viene inondata perchè è stata hackerata la chiusura di un argine. Potrebbero succedere giusto un paio di cose.
Ma non si tratta solo di questo; la vita di ogni giorno riguarda anche altre piccole cose che importano alla gente. Pensa a qualcuno che perde le foto del padre deceduto da poco perchè il suo computer è stato contagiato da un ransomware. Questo tipo di perdita ha un forte impatto sulla vita della gente (ed ecco a cosa serve la sicurezza informatica: a proteggere quelle cose che più importano alla gente).
Ask the expert: #GReAT @jorntvdw talks #ransomware https://t.co/xXL1yyHq1h #IT #infosec pic.twitter.com/v9MUl3a6fy
— Kaspersky (@kaspersky) July 20, 2016
Come aiuteresti una persona normale, senza un’approfondita conoscenza informatica, a capire l’importanza della crittografia nella propria vita?
Penso che uno dei modi migliori sia quello di fornire alcuni esempi su cosa potrebbe succedere se non esistesse la crittografia. Una cosa che succede molto spesso è la perdita o il furto di portatili o chiavette USB della gente che contengono dati sensibili. Qualora i dati non fossero crittati, i file e i dati personali della gente potrebbero essere visualizzati da chiunque abbia accesso al portatile o alla chiavetta USB. Puoi pensare anche ai pagamenti online e a come possa essere manipolato il traffico se non esistesse la crittografia. E così via. Gli esempi della vita reale sono la miglior spiegazione.
È facile creare algoritmi crittografici? Quanto tempo si impiega?
Creare un algoritmo crittografico affidabile, quello matematicamente sicuro, richiede anni di ricerca, senza contare la formazione in ambito matematico. Se invece vuoi creare qualcosa di semplice, che possa essere craccato in pochi secondi, ci vuole veramente poco.
Come funziona la crittografia?
Dobbiamo fare una differenza tra i diversi tipi di criptografia: cifrario a flusso, crittografia simmetrica e asimmetrica (quest’ultima è anche nota come crittografia a chiave pubblica).
Per quanto riguarda il cifrario a flusso è abbastanza facile. Basandosi sulla tua chiave, viene generato un infinito flusso di dati; devi applicare una Disgiunzione esclusiva (XOR) con il tuo testo cifrato (se stampi entrambe le serie di dati, puoi comparare una all’altra). Ti risulterà il testo originale non formattato.
Per la cifratura simmetrica devi fare esattamente l’opposto del processo di crittografia. Ad esempio, se per crittare i dati hai seguito il passaggio A, B e infine C, adesso per decrittarli dovrai seguire i passaggi C, B e infine A.
Infine, per quanto riguarda la crittografia asimmetrica si tratta di “vera e propria magia”. Dipende molto dal tipo di cifratura asimmetrica (gli algoritmi ECC e RSA funzionano in maniera completamente diversa). Ma ho scritto “magia” per le proprietà matematiche che sono coinvolte. Sapere come decrittare non è la stessa cosa di capire bene la matematica nascosta dietro il processo di decrittazione.
Would a golden key actually solve encryption issues? https://t.co/2JUAypdDf3 #apple #FBiOS pic.twitter.com/O8btU4j7Xy
— Kaspersky (@kaspersky) February 19, 2016
Qual è l’algoritmo crittografico più affidabile?
Esistono molti algoritmi crittografici che possono essere utilizzati per diversi scopi. In linea generale, utilizzerei quelli che hanno vinto la competizione NIST (AES/Rijndael e SHA-3/KECCAK). Dipende molto anche da come viene utilizzato l’algoritmo e da che tipo di sistema si usa. Se ad esempio hai uno spazio di archiviazione limitato, potresti anche optare per l’algoritmo ECC, che utilizza chiavi più brevi rispetto a quello RSA.
Quali sono i metodi di crittografia che resistono agli attacchi di forza bruta dei computer quantistici?
Wow, mi sono dovuto informare molto per rispondere a questa domanda. Ecco quello che ho trovato. Prima di tutto, la differenza tra un computer quantistico e un computer normale riguarda l’unità di misura utilizzata: il computer quantistico utilizza i cosiddetti “qubit” al posto dei normali bit. Un qubit equivale a due bit. Adesso per farla breve, doppiare la dimensione della chiave per la crittografia simmetrica riducerebbe i benefici di possedere un computer quantistico con lo scopo di decrittare.
Quantum computers: what does it mean for you today? https://t.co/E3Fwee3j2W #futuretech pic.twitter.com/mBSnlpoVtV
— Kaspersky (@kaspersky) December 8, 2015
Per quanto riguarda la crittografia asimmetrica, la storia è diversa. Peter Shor, un famoso matematico, ha inventato l’algoritmo di fattorizzazione di Shor, che può essere utilizzato per la fattorizzazione dei numeri interi in tempo polinomiale. Più semplicemente, il problema della fattorizzazione dei numeri primi è uno di quelli su cui molti algoritmi a chiave pubblica fanno affidamento. Essere in grado di fattorizzare i numeri interi in tempo polinomiale (in questo caso il log n), riduce a zero la sicurezza di questi algoritmi.
Come si può implementare un algoritmo di crittografia sul programma di qualcun altro?
Scaricando semplicemente una libreria crittografica per la tua lingua di programmazione e utilizzando l’API. Successivamente, puoi richiamare le funzioni crittografiche da quella libreria e utilizzarle nel tuo codice.
Tutte le organizzazioni utilizzano algoritmi di crittografia “forti” o preferiscono ricavare il codice dalla public source per apportare poi leggere modifiche?
Intendi le aziende che sviluppano software? Non penso apportino modifiche al codice dalla public source. In passato abbiamo visto quanto tutto questo possa essere assolutamente sbagliato. Puoi dare un’occhiata ad esempio al bug nel generatore di numeri casuali del Debian Linux. In poche parole, hanno modificato il codice, rendendolo più debole invece che più forte. Molte volte sono utilizzati SDK che si trovano nel pacchetto (ad esempio un terminale POS) o quelli che sono disponibili pubblicamente. Questo è anche il motivo per cui i bug in OpenSSL causano così tanti problemi per molti fornitori.
In futuro, non appena le agenzie governative (come GCHQ) proveranno ad implementare backdoor per raccogliere i dati delle persone, la criptografia diventerà obsoleta o sarà a rischio?
Non penso che la crittografia diventerà obsoleta (e spero che non lo diventi). Ad esempio, il DES è stato inventato molto tempo fa e, nonostante questo, continuiamo spesso a trovarlo nei dispositivi. Puoi immaginare che passerebbe davvero molto tempo prima che tali dispositivi e quelli più recenti forniti di AES smettano completamente di funzionare. Esistono anche alcuni paesi, come quello in cui vivo, che hanno recentemente opposto resistenza alle backdoor nei software e hanno confermato che la crittografia è una buona cosa. Sono stati anche donati dei soldi per lo sviluppo di OpenSSL (se non ricordo male). Per questo motivo non penso che diventerà obsoleta.
#Dutch Government Embraces Encryption, Denounces Backdoors #nederlands https://t.co/RVSzhJID6m pic.twitter.com/XyApf3xrRl
— Kaspersky (@kaspersky) January 5, 2016
È possibile conoscere l’affidabilità di un sistema come TrueCrypt? Si possono utilizzare alternative, forse sul cloud, come Dropbox?
TrueCrypt è stato controllato per gli errori di backdoor e di implementazione. Non è stato trovato nulla. Un po’ più tardi, il codice sorgente di TrueCrypt era stato pubblicato in modo tale che le persone potessero controllarlo in autonomia. Sono state trovate alcune vulnerabilità ma niente che sembrasse una backdoor. I successivi derivati basati sul codice di TrueCrypt erano open source: vale a dire che anche questi possono essere e sono verificati. In poche parole: sì, si può conoscere l’affidabilità perchè sono stati controllati.
Il vantaggio che una soluzione come TrueCrypt ha rispetto a Dropbox è il fatto che tu possa avere le chiavi. Sebbene Dropbox cripti i tuoi file quando li immagazzina nei suoi server, continua a possedere le chiavi. Ciò vuol dire che possono avere accesso ai tuoi dati. Dall’altro lato, Dropbox rispetto a TrueCrypt ha il vantaggio di essere responsabile dei backup. Il mio consiglio? Critta localmente i tuoi file e potrai successivamente immagazzinarli ovunque tu voglia, purchè tu possieda le chiavi.
I giochi crittano i dati che trasferiscono da un client al server e viceversa? Se ciò non è così, cosa può fare un utente per proteggere i dati trasferiti dai cybercriminali?
Spero che i giochi comunichino con i server su una connessione crittata. Se non lo facessero, inizierebbero le truffe. Qualora non fosse crittata, non c’è nulla che tu, come giocatore, possa fare. Assemblare semplicemente una connessione SSL al server non funzionerebbe, perché il server non riconoscerebbe l’SSL. Ho però solo un piccolo appunto da fare: se la connessione tra il server e il client non è criptata e ti capita di fornire un host sia al server che al client, stai semplicemente creando dei tunnel SSL tra il client e il server e hai perciò criptato le comunicazioni.
Come si può creare una protezione affidabile per i videogiochi?
Se desideri avere una protezione affidabile dovresti optare per una soluzione hardware privo di backdoor. Qui sotto puoi trovare un video molto interessante sull’argomento.
Se vuoi farlo esclusivamente nel software, dà un’occhiata a come Denuvo protegge i videogiochi (sebbene anche quelli siano stati craccati). Puoi farti un’idea su come funziona e su cosa si può fare, in questo link.
Con questa domanda si conclude la nostra sessione “Chiedi all’Esperto” con Jornt van der Wiel, il nostro maggiore esperto in ransomware e crittografia. Speriamo che abbiate potuto trovare le risposte alle vostre domande. Grazie a tutti per aver partecipato a questa sessione!