Facebook: quanto sono al sicuro le nostre foto?

faceb-privacy

Da un po di giorni non si parla d’altro. Confusione, crisi, paura. Foto visibili a chiunque, nessuna privacy. Ho letto un paio di articoli sull’argomento (come quello di Andrea, che ringrazio per avermi citato).

Il problema, come spiegato chiaramente su trackback, è di facile comprensione. Le nostre foto vengono caricate su server pubblici pertanto sono accessibili a chiunque a patto di conoscere l’url.

L’url delle foto caricate sul server di facebook (il server fotografico è http://photos-b.ak.fbcdn.net) è composto da diverse parti.

Questa falla è comunque già stata toppata in parte dagli sviluppatori, vediamo subito perchè e cosa è successo distinguendo i due casi: foto caricate tempo fa e foto caricate adesso.

Cosa succede con le vecchie foto?

Ecco una mia foto in un vecchio album che non potete vedere se non siete miei amici:

http://www.facebook.com/photo.php?pid=4264285&id=510530229#/photo.php?pid=4338333&id=510530229

Ma ecco che se prendiamo l’url della foto (ovvero la foto vera e propria sul server) chiunque riesce a vederla:

http://photos-f.ak.fbcdn.net/photos-ak-sf2p/v337/136/5/510530229/n510530229_4338333_4152.jpg

Analizziamo l’ultima parte di questo indirizzo: n510530229_4338333_4152

  1. n sta per normal e indica la dimensione dell’immagine – sostituendo con s otteniamo infatti la versione rimpicciolita. 
  2. 510530229 è il mio ID utente su facebook
  3. 4338333 è l’ID della foto
  4. 4152 è infine un PIN random.

Per scoprire la foto successiva senza essere miei amici dovreste riuscire a comporre l’url. La cosa non è fattibile senza l’utilizzo di uno script – il PIN è random e l’ID della foto può anche variare di molto se le foto non sono state caricate insieme.

Assumendo che le foto dell’album siano state caricate tutte in una volta l’ID della foto è facilmente scopribile (basta incrementarlo di 1), quindi resta solo il PIN. 4 cifre per la bellezza di 10.000 combinazioni!

Cosa succede con le foto caricate recentemente?

Ho appena creato un album ed ho impostato la privacy in modo che possa esser visto solo da me. Nuovamente, ecco ad esempio l’url della pagina di facebook di una delle foto che non potete vedere:

http://www.facebook.com/home.php#/photo.php?pid=6201364&id=510530229

Ecco invece l’url della foto sul server:

http://photos-e.ak.fbcdn.net/hphotos-ak-snc1/hs023.snc1/2562_138473580229_510530229_6201364_5906084_n.jpg

Wow! notate anche voi l’incremento di sicurezza?

Da febbraio 2009 circa il sistema è infatti cambiato. Adesso l’url è più lungo:

  1. 2562_138473580229 è l’identificativo dell’album
  2. 510530229 è l’ID utente
  3. 6201364 è l’ID della foto
  4. 5906084 è il PIN random
  5. n è la dimensione

L’identificativo dell’album non è stato introdotto adesso, c’era anche prima solo che non era inserito in quest’ultima parte dell’indirizzo.

La cosa che salta subito all’occhio è il PIN che è stato incrementato a 7 cifre! adesso le combinazioni non sono più 10.000 ma 10.000.000 !!!

Ecco l’url della prossima foto dell’album:

http://photos-f.ak.fbcdn.net/hphotos-ak-snc1/hs023.snc1/2562_138473585229_510530229_6201365_1608691_n.jpg

Come potete notare l’ID della foto viene incrementato di 1 e il PIN è totalmente casuale.

Conclusioni

Anche questa volta il team di facebook si è dimostrato pronto ed efficace ad intervenire aumentando la sicurezza per una migliore privacy delle nostre foto.

Il problema rimane per le foto caricate prima del febbraio 2009 – basta infatti un attacco brute force per riuscire in pochi minuti a scoprire il PIN della prossima foto ed avere l’accesso, ma credo che presto verrà posto un rimedio anche a questo.

Qualcuno ha parlato di identificare le sessioni per ogni utente ma la mole di dati sarebbe troppo elevata quindi facebook ha deciso di aumentare le cifre del PIN. Adesso ciò che potrebbe fare è un blocco degli attacchi brute force o riscrivere gli url di tutte le foto caricate prima di febbraio.