Scatola nera

Cosa accade tra l’input e l’output? Quali operazioni vengono svolte dal il momento in cui inseriamo i dati al momento in cui riceviamo una risposta dal sistema?
Se non vi siete mai posti questa domanda, forse avreste dovuto poiché l’universo informatico è letteralmente pieno di queste scatole nere che per gran parte sono in qualche modo garantite (???) ma chi ci assicura che nella miriade di software scaricabili liberamente  o tra i servizi disponibili nella rete non vi siano programmi che svolgono funzioni nascoste e non riconducibili alla loro mission?

Discutevo con un ragazzo circa una pagina web che aveva lo scopo di verificare quanto resistente fosse una delle nostre password. Tu inserisci la password e lui ti valuta il tempo impiegato per crackarla, probabilmente con un algoritmo di brute force (oltre che attraverso un riscontro a vocabolario delle password più usate).
Si, certo, sono andato a prendere un esempio molto comodo. Perché dovrei andare a mettere una mia password su un sito spuntato dal nulla? Effettivamente non c’è alcun valido motivo ma è un ottimo esempio per far scattare la molla del: “non è che quel sito colleziona password con il falso scopo di valutarne la resistenza?”. In effetti la mia prima reazione è stata questa:

Sicuramente è un sito internet che colleziona password al fine di costruire un vocabolario da usare in attacchi di brute force. Magari tenta anche di collezionare cookies nel tentativo di far corrispondere alla password inserita eventuali siti visitati e nomi utente.

Tuttavia ho deciso di affrontare il problema, verificando se il sistema elaborava solo i dati inseriti localmente oppure instaurava una connessione remota.  Come prima cosa, infatti, ho caricato il sito e dato un rapido sguardo al sorgente disponibile, staccato la connessione e provato a vedere se il sistema di verifica password elaborava comunque. Dato che elaborava comunque potevo cominciare ad escludere un eventuale trasferimento di dati in tempo reale verso il server.
Purtroppo non ero sul computer adatto, altrimenti avrei potuto tentare di verificare con uno sniffer quanta e che tipo di comunicazione avveniva tra me e quel sito, verificare se lasciava dei cookies ecc…
Alla fin fine, se era solo un pezzo di javascript, avrei provato a fare un wget di quella pagina web per provare ad usare l’algoritmo in una sandbox.

Come potete notare, anche se il metodo che avevo intenzione di usare poteva essere buono o meno è comunque derivato da un modo di operare sicuramente cauto ma a tutti gli effetti inapplicabile a tutto il panorama software (chi vi garantisce che il forum xyzzy.yx al posto di memorizzare nel database l’ash della vostra password non memorizzi invece la password in chiaro?), soprattutto per la complessità raggiunta dai sistemi che rendono impossibile il controllo totale sulle meccaniche. Spesso un sistema semplice è anche un sistema robusto e controllabile ma c’è una classe di programmi che a prescindere dalla complessità tendono ad essere più affidabili (nel senso di dare fiducia) di altri: sono i software che rispondono alle meccaniche del software libero ed i sistemi hardware a specifiche aperte.
Un sistema aperto e riconfigurabile è ovviamente più controllabile di una scatola chiusa.
Immaginate di scaricare il programma gratis FigoMail, per mandare e ricevere email. E’ un programma sconosciuto preso da un sito altrettanto sconosciuto ma Jimmy Goloso ve ne ha parlato talmente bene che decidete di provare questo FigoMail. Lì per lì il programma è buono, bello esteticamente ed anche facile da usare, se non fosse che quando inviate una email per la prima volta quel programma invia di nascosto all’indirizzo di un pirata informatico il vostro nome utente e la vostra password. Come accorgersene? Complicato! è un evento che accade una volta sola ed è insospettabile.
Eppure questo spyware non avrebbe avuto lunga vita se il suo codice sorgente fosse stato aperto. Voi o qualcun altro avreste notato il codice di invio di una mail non dichiarata, diffondendo la notizia ed eliminando la minaccia!

Il software libero è il modo più diretto e semplice di far si che voi o la comunità possiate aprire le scatole nere. La semplicità è poi il secondo punto poiché più il software è “strutturato in maniera semplice e sobria” (senza fronzoli insomma) e meno  funzionalità ci sono da controllare, rendendo lampanti eventuali irregolarità malevole.
Il terzo è ultimo punto è: elaborare sui propri sistemi. Se il software gira altrove, non potete controllarlo! Anche avendone le capacità mentali non avete semplicemente accesso a ciò che il software fa. Non si deve avere la smania di portare tutto nella cloud ma solo i servizi che effettivamente sono necessari, il resto è bene elaborarlo in locale su sistemi controllabili.

Qualche decennio fa, inoltre, esistevano quelli che io chiamavo “i meccanici del computer”. La ridotta capacità elaborativa e le meccaniche del tempo facevano sì che se il sistema aveva un comportamento non corretto era possibile rilevarlo “ad orecchio”: un virus poteva rallentare il sistema, si poteva ascoltare l’hard disk che faceva rumori strani, leggeva e scriveva troppo (come un meccanico percepiva il rumorino metallico di un motore guasto) oppure la musica di un modem 56k in dialing non era quella giusta poiché stava chiamando in Venezuela al posto dell’ISP.
Ora rilevare un problema in questo modo non è più possibile poiché l’elevata capacità elaborativa di un sistema moderno fa sì che anche uno spyware o un malware qualsiasi possa elaborare, scambiare dati in rete e magari eseguire attacchi verso un sistema remoto senza intaccare l’esperienza utente, il quale non sospetterà nulla.

Oggi più che mai è conveniente darsi da fare o poter contare su qualcuno con la capacità di leggere e conoscere il sistema che andiamo ad usare per evitare sgradite sorprese. Meglio sistemi semplici, poveri e aperti che scatole nere cui nessuno può accedere.

Advertisements

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...