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)