Care(less|ful) Computing

Come è noto da tempo, il padre del free software, Richard Stallman, è decisamente contrario all’uso di servizi di cloud computing da parte degli utenti privati:

“Stallman spiega, però, anche i motivi di questa contrarietà: “Negli USA si perde ogni diritto legale se si conservano i propri dati sulle macchine di un’azienda anziché sulle proprie”.

“La polizia” – continua Stallman – “deve esibire un mandato di perquisizione per ottenere i dati da un privato; ma se i dati sono conservati sul server di un’azienda, il privato potrà non saperne mai niente”.

Il fatto che con Chrome OS tutti i dati si spostino sui server di Google non può quindi andare a genio a Stallman il quale, anziché di cloud computing, preferisce parlare di careless computing (computing negligente).

Chrome OS – e tutto il cloud computing – in definitiva è per gli stupidi. “Immagino che molte persone continueranno a migrare verso il careless computing, perché ogni minuto nasce uno stupido. E il governo degli USA potrebbe incoraggiare la gente a mettere i propri dati laddove il governo stesso possa poi sequestrarli senza dover esibire un mandato”. ”

Da “Stallman: Chrome OS è per gli stupidi” apparso su ZeusNews.com

Personalmente, sono d’accordissimo con Stallman ma con un’eccezione: credo che quando si tratta di conservare dati estremamente sensibili fuori dalla portata di persone pericolose, un servizio di “remote storage”, “remote backup” o di “online office” possa essere il migliore alleato.

Quale Cloud Computing

Tutto dipende da quale tipo di cloud computing si utilizza e da come lo si utilizza. Sotto il termine “cloud computing”, infatti, si raccolgono spesso cose molto diverse tra loro.

I servizi seguenti, ad esempio, permettono di avere un proprio deposito di documenti su un server remoto (e di utilizzare delle “suite” di applicazioni da ufficio simili a MS Office).

http://thinkfree.com/

http://www.fengoffice.com/

https://www.zoho.com/index.html

Ne trovate altre qui:

https://secure.wikimedia.org/wikipedia/en/wiki/List_of_office_suites#Online_office_suites

Questi che seguono, invece, permettono di accedere ad un vero “desktop” online, dotato di molte applicazioni.

http://eyeos.org/

http://www.youos.com/

Ne trovate altri qui:

https://secure.wikimedia.org/wikipedia/en/wiki/Web_desktop

Infine, questi servizi permettono di avere il solo “repository” sul server remoto per fare i backup:

https://www.dropbox.com/

https://spideroak.com/

Ne trovate altri qui:

https://secure.wikimedia.org/wikipedia/en/wiki/Comparison_of_online_backup_services

Infine, vi consiglio anche di dare un’occhiata ai sistemi di versioning online:

http://www.projectlocker.com/

http://codesion.com/

http://unfuddle.com/

Ne trovate altri qui:

http://www.straw-dogs.co.uk/09/20/6-free-svn-project-hosting-services/

http://cplus.about.com/b/2007/07/24/free-subversion-hosting-for-small-projects.htm

Ora, se leggete ad esempio le pagine di Zoho dedicate alla sicurezza ed alla privacy, potete capire come questo servizio possa essere utilizzato anche come “store” sicuro per i vostri documenti:

https://www.zoho.com/security.html

https://www.zoho.com/privacy.html

Questo vale anche per molti altri servizi, anche di tipo diverso (ma utilizzabili in questo contesto), come SpiderOak:

https://spideroak.com/whyspideroak

Il Cloud Computing come misura di sicurezza

In pratica, molti servizi online possono essere utilizzati per conservare una copia dei vostri documenti (al limite la unica copia esistente) fuori dalla portata dei vostri nemici, in un luogo a cui essi non possano fisicamente accedere e sotto il controllo di un sistema che non permetta loro né di cancellare né di modificare i vostri documenti.

Per poter usare questi servizi online per questo scopo, tuttavia, essi devono rispettare alcuni prerequisiti. Li elenco qui di seguito, in modo che possiate controllare di persona se il sistema di vostro interesse li implementa.

Requisito #1: crittografia dei file

Ovviamente, i documenti che vengono conservati sul server remoto devono risultare leggibili solo al loro legittimo proprietario. Questo significa che devono essere cifrati sul lato client, prima di venire inviati al server. Questa operazione può essere compiuta in modo esplicito, su ogni singolo file (file-level encryption) oppure può essere effettuata “al volo” su tutti i file in transito da/verso il server remoto (on-the-fly encryption o file-system encryption).

SpiderOak, ad esempio, rispetta questo requisito:

“Complete Privacy Guaranteed

SpiderOak never stores or knows a user’s password or the plaintext encryption keys which means not even SpiderOak employees can access the data

Our zero-knowledge privacy approach means we can never betray the trust of our users”

Da https://spideroak.com/whyspideroak#privacy

Requisito #2: crittografia della connessione

Può non essere del tutto ovvio ma, anche se i file vengono cifrati e decifrati sul lato client e risultano quindi illeggibili dagli amministratori del server, è ugualmente necessario cifrare la connessione tra client e server con strumenti come SSL 3.0 (il famoso HTTPS dei siti web bancari), TLS o simili.

Questo è necessario per evitare che qualcuno possa tentare un attacco di tipo MITM, XSS o CSRF.

Quasi tutti i sistemi citati utilizzano connessioni cifrate per comunicare con l’utente.

Requisito #3: alternative alla web GUI

Più in generale, sia per ragioni di sicurezza che di comodità, l’accesso al file system remoto dovrebbe avvenire (anche) attraverso un canale diverso da HTTPS (web interface), come SFTP o SCP, cioè le versioni cifrate (via SSH) e protette dei protocolli FTP e rcp.

Un esempio di questo approccio viene da SpiderOak e da Dropbox. Entrambe queste utility installano un loro plug-in nel file manager del desktop e lo usano per rendere l’accesso al file system remoto del tutto trasparente.

Requisito # 4: versioning

L’aspetto cruciale resta però quello della cancellabilità dei documenti conservati sul server remoto. Per questa ragione, un requisito importante del sistema è che esso conservi una copia di ogni singola versione di ogni singolo documento, in modo che non sia possibile cancellare o modificare nulla sovrascrivendo il documento stesso. Per fortuna, molti sistemi supportano il versioning.

Anche in questo caso, SpiderOak rispetta questo requisito:

Save all your Historical Versions

Storage of complete version history of every file – accessible by date-stamp – just in case you accidentally save over a file or would like to go back in time

Deleted files stored in the ‘Recycle’ bin just in case an accidental deletion occurs

Due to de-duplication, the work of retaining historical versions is done quickly and effectively

Da https://spideroak.com/whyspideroak#perpetual

Requisito # 5: never forget

Più in generale, sarebbe necessario un sistema “a memoria infinita”, cioè un sistema in cui i file non venissero mai cancellati o sovrascritti. Questo è tecnicamente possibile in vari modi come, ad esempio, usando un file system di tipo COW (https://secure.wikimedia.org/wikipedia/en/wiki/Copy-on-write).

Non mi risulta, però, che qualche fornitore di servizi fornisca questo tipo di implementazione.

Requisito # 6: end of service

La mancanza di un file system di tipo non cancellabile non fa molta differenza, almeno finché è presente un sistema di versioning e vengono fatti dei backup adeguati.

Sotto queste condizioni, infatti, i dati vengono effettivamente cancellati solo al momento in cui termina il contratto di servizio, cioè quando il cliente smette di pagare.

Ad un attaccante, quindi, potrebbe “andar liscia”, se tra la morte del titolare e la sua scoperta passa più tempo di quello necessario alla cancellazione della sua utenza e dei relativi dati.

Per superare questa vulnerabilità è necessario un meccanismo di sorveglianza che provveda ad avvertire tempestivamente una persona di fiducia. Un sistema come “Just in Case I Die” (http://justincaseidie.com/) potrebbe essere sufficiente.

Non mi risulta, infatti, che nessuno dei servizi citati si preoccupi di verificare le ragioni della terminazione della sottoscrizione da parte dell’utente con una telefonata prima di cancellare i suoi dati. Non mi risulta nemmeno che nessuno di questi fornitori conservi i dati dopo la cancellazione della sottoscrizione.

Requisito # 7: backup

Ovviamente, devono essere fatti dei backup di livello professionale dei dati presenti sul server remoto.

Per fortuna, tutti i sistemi citati sono sottoposti a backup adeguati.

Requisito # 8: key storing

Il vero problema, alla fine, è la conservazione delle chiavi di cifra e delle password necessarie per accedere al servizio di cloud computing e per decifrare i file. Anche in questo caso un servizio come http://justincaseidie.com/ potrebbe risolvere egregiamente il problema.

Conclusioni

Insomma, il cloud computing è la solita arma a doppio taglio: può essere fonte di gravi perdite di privacy o può essere il miglior alleato di chi deve conservare dati estremamente sensibili. Tutto dipende da come viene utilizzato.

Alessandro Bottoni

L’immagine di copertina è stata “rubata” dal Blog di David Chou, di Microsoft, ma è, in realtà, il risultato di una elaborazione di Wordle.net su un insieme di termini che riguardano il cloud computing:

http://blogs.msdn.com/b/dachou/archive/2009/01/13/cloud-computing-and-the-microsoft-platform.aspx

http://www.wordle.net/

Comments
One Response to “Care(less|ful) Computing”
Trackbacks
Check out what others are saying...
  1. […] Care(less|ful) Computing « Alessandro Bottoni […]



Lascia un commento

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...

%d blogger cliccano Mi Piace per questo: