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)