Questi sono tanti uno e zero.
È quello che chiamiamo informazione binaria.
I computer parlano così.
I computer memorizzano così le informazioni.
I computer pensano così.
È in questo modo che i computer fanno
quello che fanno.
Sono un ricercatore per la sicurezza informatica,
significa che il mio lavoro consiste
nel dare un senso a queste informazioni,
cercare di capire cosa significano tutti gli uno e zero.
Sfortunatamente per me, non stiamo parlando solo
di uno e zero che ho qui sullo schermo.
Non stiamo solo parlando di qualche pagina di uno e zero.
Stiamo parlando di miliardi e miliardi
di uno e zero,
più di quanto si possa comprendere.
Per quanto possa sembrare elettrizzante,
quando cominciai a fare informatica --
(Risate) --
quando cominciai a fare informatica, non ero sicuro
che passare al setaccio uno e zero
fosse quello che volevo fare per il resto della mia vita,
perché nella mia mente, l'informatica
consisteva nel tenere lontano i virus dal computer di mia nonna,
evitare attacchi ai profili Myspace,
e forse, nei giorni più gloriosi,
evitare il furto di informazioni di carte di credito.
Queste sono cose importanti,
ma non è così che volevo passare la vita.
Ma dopo 30 minuti di lavoro
come consulente della difesa,
scoprii presto
che ero fuori pista.
Di fatto, in termini di sicurezza nazionale,
tenere lontani i virus dal computer di mia nonna
era sorprendentemente in fondo alla lista delle priorità.
E il motivo è che l'informatica
è molto più grande di tutte queste cose.
L'informatica è parte integrante delle nostre vite,
perché i computer sono parte integrante delle nostre vite,
anche se non possediamo un computer.
I computer controllano tutto nelle auto,
dal GPS agli airbag.
Controllano il vostro telefono.
Sono il motivo per cui potete chiamare il 911
e trovate qualcuno dall'altra parte della linea.
Controllano l'infrastruttura di tutta la nazione.
Sono il motivo per cui abbiamo elettricità,
riscaldamento, acqua pulita, cibo.
I computer controllano le apparecchiature militari,
tutto, dai missili ai satelliti
alla rete di difesa nucleare.
Tutte queste cose sono possibili
grazie ai computer,
quindi grazie all'informatica.
E quando qualcosa va storto,
l'informatica rende possibili tutte queste cose.
Qui entro in scena io.
Una parte importante del mio lavoro è difendere tutte queste cose,
farle funzionare,
ma ogni tanto, parte del mio lavoro consiste nel rompere una di queste cose,
perché informatica non vuol dire solo difesa,
vuol dire anche offesa.
Entriamo in un'epoca in cui si parla
di armi informatiche.
Infatti, il potenziale degli attacchi informatici è così vasto
che l'informatica è considerata un nuovo campo di battaglia.
Guerra.
Non è necessariamente una cosa cattiva.
Da un lato, significa che abbiamo un nuovo fronte
in cui dobbiamo difenderci,
ma d'altro canto,
significa che abbiamo un nuovo modo per attaccare,
un nuovo modo per impedire ai cattivi
di fare cose cattive.
Consideriamo un esempio
assolutamente teorico.
Immaginate che un terrorista voglia far saltare un edificio,
e vuole farlo ripetutamente
in futuro.
Non vuole essere nell'edificio quando esplode.
Userà un telefono cellulare
come detonatore remoto.
L'unico modo che avevamo
per fermare questo terrorista
era con una raffica di pallottole e un inseguimento in auto,
ma non è più necessariamente così.
Entriamo in un'era in cui possiamo fermarlo
con la pressione di un tasto
da migliaia di chilometri di distanza,
perché che lo sappia o meno,
non appena decide di usare il suo telefono,
entra nel regno dell'informatica.
Un attacco informatico ben progettato potrebbe entrare nel suo telefono,
disabilitare le protezioni ad alto voltaggio della batteria,
sovraccaricare drasticamente il circuito,
surriscaldare la batteria facendola esplodere.
Niente più telefono, niente più detonatore,
magari niente più terrorista,
tutto questo premendo un tasto
da migliaia di chilometri di distanza.
Come funziona?
Ritorniamo a questi uno e zero.
L'informazione binaria fa funzionare il vostro telefono,
e usata correttamente, può fare esplodere il vostro telefono.
Quando cominciate a vedere l'informatica da questo punto di vista,
passare la vita in mezzo all'informazione binaria
comincia a sembrare elettrizzante.
Ma ecco la fregatura: è difficile,
molto, molto difficile,
ed ecco perché.
Pensate a tutto quello che avete nel telefono.
Avete le foto che avete scattato.
Avete la musica che ascoltate.
Avete una lista di contatti,
la vostra mail, e forse 500 app
che non avete mai usato in vita vostra.
E dietro a tutto questo c'è il software, il codice,
che controlla il vostro telefono,
e da qualche parte, sepolto in quel codice,
c'è un pezzettino che controlla la vostra batteria,
ed è quello che cerco,
ma tutto questo, è solo una serie di uno e zero,
e sono tutti mischiati insieme.
In informatica, chiamiamo questa scoperta un ago in un mucchio di aghi,
perché sembra tutto uguale.
Cerco un pezzo chiave,
ma si confonde in mezzo a tutto il resto.
Facciamo un passo indietro da questa situazione teorica
del fare esplodere il telefono di un terrorista,
e osserviamo una cosa che mi è capitata.
Qualunque cosa io faccia,
il mio lavoro inizia sempre
con una serie di informazioni binarie.
Cerco sempre un pezzo chiave
che faccia una cosa specifica.
In questo caso, cercavo un pezzo di codice
molto evoluto e tecnologico
che sapevo di poter attaccare,
ma era in qualche modo sepolto
all'interno di miliardi di uno e zero.
Sfortunatamente, non sapevo
esattamente quello che stavo cercando.
Non sapevo cosa stavo cercando,
il che rendeva la ricerca molto difficile.
Quando devo fare questo, quello che faccio
è analizzare vari pezzi
di questa informazione binaria,
per cercare di decifrare ogni pezzo, e capire se possa essere
quello che cerco.
Dopo un po', pensai di aver trovato
il pezzo che cercavo.
Pensavo che fosse quello.
Sembrava corretto, ma non ero sicuro.
Non ero sicuro di quello che gli uno e gli zero rappresentassero.
Così cercai di mettere insieme queste cose,
ma senza troppa fortuna,
e alla fine decisi,
che ce l'avrei fatta,
che ci avrei lavorato su un weekend,
e non sarei andato via
prima di aver capito che cosa rappresentasse.
Così feci. Iniziai a lavorarci un sabato mattino,
e in circa 10 ore, avevo tutti i pezzi del puzzle.
Solo, non sapevo come metterli insieme.
Non sapevo il significato di questi uno e zero.
Dopo 15 ore,
cominciai ad avere un quadro migliore,
ma avevo un sospetto crescente
che quello che stavo analizzando
non era per niente collegato a quello che stavo cercando.
Dopo 20 ore, i pezzi cominciarono a mettersi insieme
molto lentamente -- (Risate) --
ed ero abbastanza sicuro
di essere sulla strada sbagliata,
ma non volevo smettere.
Dopo 30 ore in laboratorio,
capii esattamente quello che stavo analizzando,
e avevo ragione, non era quello che stavo cercando.
Ho passato 30 ore a mettere insieme
uno e zero che formavano l'immagine di un gattino.
(Risate)
Ho buttato via 30 ore della mia vita alla ricerca di questo gattino
che non aveva niente a che fare
con quello che stavo cercando di compiere.
Ero frustrato, ero esausto.
Dopo 30 ore in laboratorio, probabilmente puzzavo.
Ma invece di andare a casa
e darmi per vinto, feci un passo indietro
e mi chiesi cosa era andato storto.
Come potevo aver fatto un errore così stupido?
Sono abbastanza bravo.
Lo faccio per vivere.
Cos'era successo?
Ho pensato: quando si cercano informazioni a questo livello,
è così facile perdere di vista quello che si sta cercando.
È facile non vedere la foresta attraverso gli alberi.
È facile finire nella tana del coniglio sbagliato
e buttare via tantissimo tempo
facendo la cosa sbagliata.
Ma ho avuto una rivelazione.
Stavamo cercando i dati nel modo sbagliato
fin dal primo giorno.
I computer pensano così: uno e zero.
Le persone non pensano così,
ma abbiamo cercato di adattare le nostre menti
a pensare come computer
in modo da capire queste informazioni.
Invece di cercare di adattare la nostra mente al problema,
avremmo dovuto adattare il problema
alla nostra mente,
perché i nostri cervelli hanno un enorme potenziale
in grado di analizzare un'enorme quantità di informazioni,
solo non in questo modo.
E se potessimo sbloccare quel potenziale
semplicemente traducendolo
nel tipo giusto di informazioni?
Con questa idea in mente,
schizzai fuori dal laboratorio seminterrato del lavoro
al laboratorio seminterrato di casa,
che era più o meno uguale.
La principale differenza è che al lavoro
sono circondando da materiale informatico,
e l'informatica sembrava essere il problema in questa situazione.
A casa, sono circondato da tutto quello che ho imparato.
Ho divorato tutti i libri che sono riuscito a trovare,
ogni idea che trovavo,
per vedere come tradurre un problema
di un settore in qualcosa di completamente diverso.
La grande domanda era,
cosa vogliamo tradurre?
Cosa fanno i nostri cervelli in modo naturale
che potremmo sfruttare?
La mia risposta fu "visione".
Abbiamo una grande capacità di analizzare informazioni visive.
Possiamo combinare gradienti di colore,
tanti tipi di segnali diversi
in un'unica immagine coerente del mondo intorno a noi.
È incredibile.
Se potessimo trovare il modo di tradurre
questi schemi binari in segnali visivi,
potremmo veramente sbloccare la forza del nostro cervello
per elaborare questo materiale.
Ho cominciato ad analizzare l'informazione binaria,
e mi sono chiesto cosa avrei fatto
quando avessi incontrato una cosa come questa.
La prima cosa che voglio fare,
la prima domanda a cui voglio rispondere,
è cosa sia.
Non importa cosa fa, come funziona.
Tutto quello che voglio sapere è cos'è.
E lo posso capire
analizzando pezzi,
sequenze di informazione binaria,
osservo la relazione tra questi pezzi.
Dopo aver raccolto un numero sufficiente di sequenze,
comincio a farmi un'idea esatta
di cosa sia questa informazione.
Allora torniamo
al terrorista e all'esplosione del telefono.
Questo è un testo inglese
a livello binario.
I vostri contatti sarebbero così
se dovessi esaminarli.
È davvero difficile analizzarli a questo livello,
ma se prendiamo questi stessi pezzi binari
che sto cercando di scoprire,
e li traduciamo
in una rappresentazione visiva,
se traduciamo queste relazioni,
ecco cosa otteniamo.
Questo è un testo inglese
sotto forma di astrazione visiva.
Improvvisamente,
ci mostra la stessa informazione
che c'era tra gli uno e zero,
ma la mostra in modo totalmente diverso,
in un modo che possiamo immediatamente capire.
Vediamo immediatamente gli schemi.
Ci vogliono pochi secondi per estrarre schemi,
ma ore, giorni, per capirli
sotto forma di uno e zero.
Ci vogliono minuti a chiunque per capire
cosa rappresentano questi schemi,
ma anni di esperienza informatica
per capire cosa rappresentano questi stessi schemi
sotto forma di uno e zero.
Questo pezzo è generato
da lettere minuscole seguite da lettere minuscole
contenute in quella lista di contatti.
Queste sono maiuscole seguite da maiuscole,
maiuscole da minuscole, minuscole da maiuscole.
Questo è generato dagli spazi. Questo è generato dall'invio.
Possiamo analizzare ogni singolo dettaglio
dell'informazione binaria in pochi secondi,
invece che settimane, mesi, a questo livello.
Questa è un'immagine
del telefono cellulare.
Invece questo è come viene
con un'astrazione visiva.
Questa è musica,
ma ecco l'astrazione visiva.
Soprattutto, per me,
questo è come vedete il codice all'interno del vostro telefono.
Questo è quello che sto cercando,
ma questa è la sua astrazione visiva.
Se non riesco a trovare questo, non posso far esplodere il telefono.
Potrei passare settimane a cercarlo
tra gli uno e gli zero,
ma ci vogliono secondi per identificarne
un'astrazione visiva.
Una delle parti più straordinarie di tutto questo
è che ci dà un nuovo modo di capire
nuove informazioni, roba che non abbiamo mai visto prima.
So a cosa assomiglia l'inglese a livello binario,
e conosco la sua astrazione visiva,
ma non ho mai visto il russo a livello binario in vita mia.
Mi ci vorrebbero settimane per capire
cosa sto guardando da file di uno e zero,
ma siccome il mio cervello può identificare istantaneamente
e riconoscere questi sottili schemi
di astrazioni visive,
possiamo inconsciamente applicarle
a nuove situazioni.
Ecco a cosa assomiglia il russo
in astrazione visiva.
Sapendo a cosa assomiglia una lingua,
posso riconoscere altre lingue
anche quando non mi sono familiari.
Ecco a cosa assomiglia una fotografia,
e questa è una clip art.
Questo è il codice del vostro telefono,
ma questo è il codice del vostro computer.
Il nostro cervello riesce a identificare questi schemi
in modi impensabili
guardando solo una fila di uno e zero.
Abbiamo solo sfiorato
quello che possiamo fare con questo approccio.
Abbiamo solo iniziato a sbloccare le capacità
della nostra mente di processare informazioni visive.
Se prendiamo questi stessi concetti e li traduciamo
invece in tre dimensioni,
troviamo modi interessanti di dare un senso alle informazioni.
In secondi, possiamo identificare tutti gli schemi.
Possiamo vedere la croce associata al codice.
Possiamo vedere cubi associati a testo.
Possiamo addirittura identificare minuscoli artefatti visivi.
Cose che ci richiederebbero settimane,
mesi per trovare tra gli uno e gli zero,
sono immediatamente comprensibili
in una certa astrazione visiva,
a mentre procediamo
e inseriamo sempre più informazioni,
scopriamo che siamo capaci di elaborare
miliardi di uno e zero
in pochi secondi
solo usando le capacità innate del nostro cervello
di analizzare gli schemi.
È molto bello e utile,
ma tutto questo mi dice quello che sto guardando.
A questo punto, basandoci su schemi visivi,
posso trovare il codice sul telefono.
Ma non è sufficiente per far esplodere la batteria.
Devo anche trovare il codice
che controlla la batteria, ma torniamo
al problema dell'ago nel mucchio di aghi.
Quel codice sembra uguale all'altro
su quel sistema.
Potrei non essere in grado di trovare il codice che controlla la batteria,
ma ci sono molte cose simili a questa.
C'è il codice che controlla lo schermo,
che controlla i tasti, che controlla i microfoni,
quindi anche se non trovo il codice della batteria,
scommetto che riesco a trovare una di queste cose.
Quindi il passo successivo nel mio processo di analisi binaria
è osservare le informazioni
simili le une alle altre.
È veramente difficile farlo a livello binario,
ma se traduciamo queste somiglianze in astrazioni visive,
non devo neanche passare al setaccio i dati grezzi.
Tutto quello che devo fare è aspettare di vedere apparire l'immagine
per trovare i pezzi simili.
Seguo queste somiglianze come un sentiero di briciole
per scoprire esattamente quello che sto cercando.
A questo punto del processo,
ho localizzato il codice
responsabile del controllo della batteria,
ma ancora non è sufficiente per far esplodere il telefono.
L'ultimo pezzo del puzzle
è capire come quel codice
controlla la batteria.
Per questo, devo identificare
relazioni molto sottili e dettagliate
all'interno dell'informazione binaria,
un'altra cosa molto difficile da fare
osservando degli uno e degli zero.
Ma se traduciamo queste informazioni
in una rappresentazione fisica,
possiamo rilassarci e lasciare che la corteccia visiva faccia il lavoro.
Riesce a trovare schemi dettagliati,
tutti i pezzi importanti.
Può scoprire esattamente come i pezzi di quel codice
funzionano insieme per controllare la batteria.
Tutto questo può essere fatto nel giro di poche ore,
mentre per lo stesso processo
ci sarebbero voluti mesi in passato.
Tutto bene
in un'esplosione teorica del telefono di un terrorista.
Volevo scoprire se avrebbe funzionato veramente
nel lavoro quotidiano.
Stavo giocando con questi stessi concetti
con dei dati che avevo analizzato in passato,
e di nuovo, cercavo di scoprire
un pezzo di codice molto specifico e dettagliato
all'interno di un'enorme massa di informazione binaria.
Ho analizzato a questo livello,
pensando di guardare la cosa giusta,
solo per scoprire che non ha
la connettività che mi aspettavo
per il codice che stavo cercando.
Anzi, non sono neanche sicuro di cosa sia,
ma tornando indietro di un livello
e osservando le somiglianze all'interno del codice
ho visto che non aveva somiglianze
come nessuno degli altri codici.
Potrebbe addirittura non essere codice.
Infatti, da questo punto di vista,
posso dire che non è codice.
Questa è un'immagine di qualche tipo.
E da qui, posso vedere,
che non è solo un'immagine, è una fotografia.
Ora che so che è una fotografia,
ho dozzine di altre tecniche di traduzione binaria
per visualizzare e capire quell'informazione,
quindi nel giro di pochi secondi, possiamo prendere questa informazione,
provare un'altra dozzina di tecniche di traduzione visiva
per trovare esattamente quello che stavamo cercando.
Ho visto -- (Risate) --
era di nuovo quel dannato gattino.
Tutto questo è possibile
perché siamo stati in grado di trovare
un modo di tradurre un problema difficile
in qualcosa che i nostri cervelli fanno naturalmente.
Questo cosa significa?
Per i gattini, significa
che non possono più nascondersi tra uno e zero.
Per me, significa niente più weekend sprecati.
Per l'informatica, significa un modo radicalmente nuovo
di affrontare i problemi più difficili.
Significa avere una nuova arma
sulla scena in evoluzione della guerra informatica,
ma per tutti noi,
significa che gli ingegneri informatici
ora hanno la capacità di diventare i primi ad intervenire
in situazioni di emergenza.
Quando i secondi contano,
abbiamo sbloccato i mezzi per fermare i cattivi.
Grazie.
(Applausi)