TCFS Posts

Negli ambienti client/server, le risorse (dischi, stampanti etc.) sono condivise tra i vari client, che accedono, per il loro utilizzo, ai server di rete comuni. La condivisione delle risorse è generalmente affidata alla suite di protocolli NIS/NFS, che rappresentano ormai uno standard de facto negli ambienti distribuiti. La sicurezza di questi ambienti è un problema molto difficile da risolvere; non sempre è possibile assicurarsi che i dati siano trasferiti in maniera sicura tra client e server, non è possibile garantire la riservatezza dei dati custoditi sul server e degli eventuali backup di rete.

Per questo motivo, è consuetudine non affidare alla rete i dati riservati; ottenendo un maggiore controllo sulla protezione di questi, ma rinunciando a tutti i servizi di rete. Sono stati proposti diversi sistemi che si pongono l’obiettivo di rendere sicuro lo scambio di dati tra client e server; la maggior parte dei quali si preoccupa di proteggere i dati durante il trasferimento, e non durante la loro permanenza sul server. Questo rende i sistemi piuttosto insicuri.

Nei sistemi distribuiti, infatti, non è sempre possibile controllare la validità di tutti i client, e spesso non è possibile neppure fidarsi del server stesso che custodisce i dati. Spesso non si possono ritenere sicuri neppure i backup di rete. Si rendono quindi necessari dei sistemi che permettano di proteggere i dati, non solo durante il trasferimento, ma in tutto l’arco della loro esistenza. Questo significa proteggere i dati dal momento in cui sono trasferiti dall’applicazione al sistema operativo perché siano salvati su memoria di massa.

In questo senso si muovono i numerosissimi tools crittografici sviluppati su quasi tutti i sistemi. Occorre tener presente per´o che l’utilizzo di un software dedicato è spesso macchinoso, ed in genere, se non si può garantire la sicurezza del server, l’utilizzo di tali applicazioni pu´o non essere granché utile.

Sono stati anche proposti metodi di protezione a livello di sistema, anche basati su file system cifrati (per una trattazione esauriente delle problematiche legate al disegno dei filesystem cifrati si vedano [?] e [?]). Tuttavia, molti di questi progetti (come alcuni prodotti specifici per DOS) non sono facilmente (o affatto) utilizzabili in ambiente distribuito, oppure il loro utilizzo è macchinoso ed oneroso in termini di efficienza. Il file system TCFS, sviluppato presso il Dipartimento di Informatica ed Applicazioni dell’Università degli Studi di Salerno, realizza un sistema di protezione dei dati in ambiente distribuito che tiene conto di questi fattori, ed introduce come punto cardine del suo progetto la trasparenza per gli utenti e le applicazioni, rispetto alle operazioni di cifratura.

Questo documento si riferisce alla versione 2 (e successive) di TCFS per Linux e quanto esposto è valido (salvo diversa indicazione) anche per la versione BSD del filesystem, attualmente in fase di sviluppo e descritta con maggior dettaglio nel paragrafo ad essa dedicato.

Tecnologia

I recenti progressi nei campi dell’hardware e delle tecnologie della comunicazione hanno reso possibile e possibile condividere un file di sistema tra varie macchine, al di fuori la posizione locale (ma forse anche di una vasta area di rete).

Uno dei più riusciti e ampiamente usati sistemi per tali applicazioni è il Sun NFS (Network File System).

NFS è molto semplice nella struttura, ma assume un forte modello di trust: l’utente si fida del file system remoto del server (che potrebbe anche essere in esecuzione su una macchina localizzata in un paese diverso) e una rete con i suoi dati.

Il server (o chiunque possieda privilegi di superuser) potrebbe benissimo leggere i dati su filesystem ed è ben noto che il sito Internet o una rete locale (Ethernet) è molto facile da toccare (vedi, per esempio, il programma di Berkeley tcpdump).

La personificazione degli utenti è anche un altro titolo svantaggio di NFS. Infatti, la maggior parte delle autorizzazioni di controllo su NFS sono eseguiti nel kernel del client. In tale contesto, un hacker potrebbe temporaneamente assegnare alla propria workstation l’indirizzo Internet della vittima. Senza una connessione sicura RPC sarebbe una ulteriore procedura di autenticazione.

Tenuto conto di quanto sopra, un utente in cerca di un certo livello di sicurezza dovrebbe prendere alcune misure. Vi proponiamo un nuovo file system di crittografia, chiamato TCFS, come soluzione adeguata al problema della privacy per il file system distribuito.

Il nostro lavoro migliora CFS di Matt Blaze, fornendo una più profonda integrazione tra il servizio di crittografia e i file di sistema che si traduce in una completa trasparenza nel poter utilizzare le applicazioni utente.

Tecnologia