Salve a tutti,
mi chiamo Giulio Cesare Solaroli, e sono il responsabile tecnologico
di Clipperz.
Mi permetto di intervenire nella vostra interessante discussione per
cerare di completare alcune osservazioni che sono state fatte
relativamente al nostro servizio.
Post by Fabio Pietrosanti (naif)Che non esiste un meccanismo tecnologico che permetta di validare che
il codice javascript caricato sia esente da backdoor o che questa possa
essere introdotta dinamicamente su richiesta da parte di "terzi".
Questa affermazione è assolutamente corretta, ma noi abbiamo compiuto
tutti gli sforzi che al momento riuscivamo a sostenere per
intraprendere un cammino che porti alla risoluzione definitiva di
questo problema. Mi permetto di dettagliare le soluzioni che abbiamo
già messo in opera per alleviare il problema:
Il codice della nostra applicazione viene caricato tutto in un unico
file; html, javascript, css e anche immagini (per i browser che le
riescono a gestire) sono codificate nell'unico file che viene
scaricato dal browser. I sorgenti dell'applicazione nessi a
disposizione sul sito per la verifica del codice, contengono anche uno
script in grado di generare lo stesso identico file che viene
scaricato dal browser nell'applicazione online; la fase finale del
processo di build termina con il calcolo dei checksum della pagina
generata che devono corrispondere con quelli pubblicati online.
E' vero che il browser al momento non e' in grado di verificare il
checksum della pagina (stiamo lavorando anche a questo aspetto, ma le
questioni in ballo per risolverlo sono ancora troppo grandi per
riuscirle a gestire da parte nostra), pero' abbiamo messo a
disposizione di tutti i nostri utenti un piccolo script PHP che
permette di effettuare il controllo prima di accedere all'applicazione
vera e propria. Io, ad esempio, accedo sempre all'applicazione
passando dall'url che ho memorizzato qui:
http://del.icio.us/gcsolaroli/clipperz
E' ovvio che questo tipo di controllo non e' ideale, dato che il
checksum viene verificato su una pagina inviata ad uno script, e non
su quella finale che verra' eseguita dal browser, ma mostra in modo
abbastanza preciso come potrebbe funzionare una validazione della
pagina da parte del browser stesso.
Relativamente poi alla possibilita' di caricare codice dinamicamente,
anche questa e' una possibilita' assolutamente reale, ma che noi
abbiamo accuratamente evitato e resa inerte con qualche semplice
accorgimento:
- non viene mai caricato del codice html dal server, ma solo dati che
vengono processati dall'applicazione;
- non viene mai eseguita l'istruzione "eval" sui dati caricati dal
server, per impedire di alterare dinamicamente la struttura
dell'applicazione.
E' possibile verificare nell'applicazione di cui distribuiamo i
sorgenti che questi due accorgimenti sono stati assolutamente
rispettati, ed e' quindi impossibile alterare il funzionamento
dell'applicazione in esecuzione sul browser costruendo opportunamente
i dati restituiti dal server.
Post by Fabio Pietrosanti (naif)Che le mie password non mi sognerei mai di salvarle su di un database
diverso dal file cifrato che tengo sul mio computer.
Clipperz offre la possibilita' a tutti di scaricare agevolmente una
versione Offline della nostra applicazione; quello che viene scaricato
e' un file HTML che, oltre a tutta l'applicazione, contiene anche i
dati dell'utente criptati, esattamente come sono memorizzati sul
nostro DB.
Questo file offre un grossissimo vantaggio rispetto a tutti i vari
metodi alternativi di memorizzazione delle password in locale: tiene
legati dati ed applicazione d'accesso ai dati stessi, in modo da
renderli utilizzabili ovunque, a prescindere dal software installato
sul computer che si usa. Ovviamente serve avere accesso ad un browser
"moderno", ma questa e' una richiesta quasi scontata si computer
odierni.
Post by Fabio Pietrosanti (naif)Esporre *tutte* le proprie credenziali di accesso a distanza di "una password"
non lo considero un rischio accettabile, ...
Non e' la stessa condizione in cui sei quando salvi tutti i tuoi dati
su un file memorizzato sul tuo computer?
Se qualcuno riesce ad avere accesso a quel file, ha accesso a tutte le
tue credenziali.
Post by Fabio Pietrosanti (naif)... sopratutto quando una vulnerabilità
potenziale semplice come un XSS le metterebbe a rischio di disclosure.
Le vulnerabilita' XSS sono reali, ma possibili solo quando il sito ha
certe caratteristiche. La nostra applicazione non ha nessuno dei
requisiti perche' un attacco di tipo XSS possa essere perpetrato. La
nostra applicazione (in tutti i browser tranne IE, che non supporta il
protocollo data://) non carica nemmeno le immagini dal server,
rendendo assolutamente impossibile il contaminamento dell'applicazione
da parte di qualsiasi agente esterno, anche con il controllo del
server stesso di Clipperz.
Post by Fabio Pietrosanti (naif)L'impressione è positiva, quello che mi lascia un po' perplesso è che
un servizio del genere è molto utile per un utilizzo "nomade", vale a
dire su computer pubblici, o di altre persone, che però sono fuori dal
nostro controllo.
Inserireste le credenziali per accedere a tutte le vostre password, su
un computer del quale non sapete nulla? Ci sono dei troiani che
inviano al server dell'attaccante i dati di login prima della
cifratura ssl se non ricordo male.
Poi ovviamente dipende dall'uso che se ne fa e dal nostro grado di paranoia...
Il problema di troian e keylogger e' assolutamente reale; e c'e' una
sola opzione efficace per contrastarli: one time password.
Ovvero password che, una volta usate, non permettono piu' l'accesso all'account.
Supponendo che tu debba accedere alla tua posta (o qualsiasi altro
servizio web) da un internet cafe', quello che noi cosigliamo di fare
e' il seguente:
- avere a disposizione sempre un paio di One Time Password scritte su
un foglietto nel portafogli;
- usare la OTP per accedere all'account Clipperz;
- usare i direct login per accedere ai servizi.
Qualsiasi informazione riesca a raccogliere un keylogger, non sara'
mai in grado di accedere nuovamente all'account Clipperz, ne tanto
meno al servizio terzo che si vuole utilizzare, dato che nessun tasto
e' stato premuto per inserire le credenziali.
Questo presuppone che nessuno abbiamo volutamente sovvertito il
browser stesso per raccogliere informazioni in modo specifico, ma al
momento ritengo questa ipotesi troppo remota per essere presa in seria
considerazione.
Spero di avere aiutato a rendere un po' piu' chiaro il funzionamento
di Clipperz.
Per qualsiasi ulteriore dubbio potete rivolgervi direttamente a me,
oppure fare tutte le domande del caso (possibilmente in Inglese) nel
nostro forum:
http://www.clipperz.com/forum
Grazie a tutti per l'attenzione.
Saluti,
Giulio Cesare Solaroli
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List