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.