The Design and Implementation of a Transparent Cryptographic Filesystem for UNIX Ciro Amati, Stefania Cardamone Universitá degli Studi di Salerno December 5, 2014 1 / 47
Introduzione Conoscenze scientifiche e tecniche attuali Cryptographic File System(CFS) CriptFS Self-certifying FS The Architecture Authenticating servers Group Sharing Key Management Raw Key Management Scheme Basic Key Management Scheme Kerberized Key Management Scheme Cryptographic Engine Implementations Performance Conclusioni 2 / 47
Introduzione Paper info Dipartimento di Informatica ed Appl., Universitá di Salerno L articolo é stato presentato nel 2001, in occasione dell USENIX Annual Technical Conference, in Boston 3 / 47
Introduzione Introduzione Il networking e la condivisione delle risorse File system come primo servizio distribuito Grande diffusione di sistemi mobili Repository sempre accessibile Accesso indipendente dalla tecnologia di rete Svantaggio: problemi di sicurezza 4 / 47
Introduzione NFS 5 / 47
Introduzione NFS 6 / 47
Introduzione Sicurezza dei dati Con il termine sicurezza informatica si intende quel ramo dell informatica che si occupa dell analisi delle vulnerabilitá, del rischio, delle minacce o attacchi e quindi della protezione dell integritá fisica (hardware) e logico-funzionale (software) di un sistema informatico e dei dati in esso contenuti o scambiati in una comunicazione con un utente. 7 / 47
Introduzione Principali obiettivi Integritá: la correttezza dei dati Cifratura: la confidenzialitá dei dati Autenticazione: l accesso fisico e/o logico solo ad utenti autorizzati Protezione: la protezione del sistema da attacchi di software malevoli per garantire i precedenti requisiti 8 / 47
Introduzione Algoritmi di cifratura 9 / 47
Introduzione Protezione dati Gli utenti devono adottare misure per evitare l esposizione di dati sensibili Tre livelli: Utente Applicazione Sistema é un file system distribuito che affronta il problema della sicurezza a livello di sistema I meccanismi di cifratura e decifratura sono trasparenti all utente Cifrare i dati soltanto durante lo scambio client-server non garantisce che non siano esposti ad utenti maligni 10 / 47
Conoscenze scientifiche e tecniche attuali Cryptographic File System(CFS) CFS 11 / 47
Conoscenze scientifiche e tecniche attuali Cryptographic File System(CFS) CFS Probabilmente il piú diffuso Architettura simile a Principali caratteristiche: Non é trasparente all utente Granularitá a livello di directory Implementato come applicazione utente Condivisione in gruppo non supportata Autenticazione dati non presente 12 / 47
Conoscenze scientifiche e tecniche attuali CriptFS CriptFS Modalitá di cifratura: Cypher Block Chaining Algoritmo di cifratura utilizzato: Blowfish 13 / 47
Conoscenze scientifiche e tecniche attuali CriptFS CriptFS E un file system virtuale cifrato utilizzato al di sopra di file system locali o remoti. Non garantisce integritá dei dati Non consente la presenza di file in chiaro sul file system Vantaggio: buone performance 14 / 47
Conoscenze scientifiche e tecniche attuali Self-certifying FS Self-certifying File System E basato su Public Key Infrastructure Separa la gestione della chiave dalla sicurezza del file system Autenticazione a un server: Il server ha una chiave pubblica Il client utilizza la chiave per connettersi al server Self-certifying pathname Hash della chiave pubblica del server Sintassi: /sfs/location:hostid/real/pathname Gli utenti non hanno bisogno di ricordare alcuna chiave 15 / 47
The Architecture The Architecture Ricerca di un sistema capace di fornire un robusto meccanismo di sicurezza Vantaggi: un modello di fiducia minimo impatto minimo sull amministrazione del sistema impatto minimo sulle applicazioni client impatto minimo sull utente finale 16 / 47
The Architecture The Architecture: lettura (1) 17 / 47
The Architecture The Architecture: lettura (2) 18 / 47
The Architecture The Architecture: scrittura (1) 19 / 47
The Architecture The Architecture: scrittura (2) 20 / 47
The Architecture The Architecture: scrittura (3) 21 / 47
Authenticating servers Authenticating servers prevede meccanismi di autenticazione per i dati l utente deve solo fidarsi del kernel della macchina client utilizzata per accedere al file system Nessun bisogno di dover autenticare il server Privacy del client sempre garantita 22 / 47
Group Sharing Group Sharing Possibilitá di condivisione di file o directory tra gli utenti Threshold: numero minimo di membri attivi per rendere accessibili i file del gruppo Per ogni gruppo viene generata una chiave Ad ogni membro del gruppo viene data una share 23 / 47
Group Sharing Accesso ai file del gruppo 24 / 47
Group Sharing Accesso ai file del gruppo 25 / 47
Key Management Key Management necessita di una chiave di cifratura per proteggere i file Gestione della chiave su differenti livelli: Processo Utente Processi con stesso UID 26 / 47
Raw Key Management Scheme Raw Key Management Scheme Semplice interfaccia per fornire la chiave al kernel Il kernel non effettua nessun controllo sulla chiave l applicazione deve fare in modo che la chiave giusta sia passata al kernel E una base sopra la quale costruire schemi KM piú sofisticati 27 / 47
Basic Key Management Scheme Basic Key Management Scheme Chiave (master key) generata dall utente Login password utilizzata per cifrare la master key Memorizzata in un database BKMS segue i seguenti comandi: 28 / 47
Basic Key Management Scheme Basic Key Management Scheme for Groups 29 / 47
Kerberized Key Management Scheme Kerberized Key Management Scheme (KKMS) Sviluppo: 1980, al MIT Kerberos é un servizio di autenticazione distribuita Permette a un client e a un server di autenticarsi a vicenda e di stabilire un canale di comunicazione privato KKMS alternativa al BKM Nuova componente: Key Server (KS) Differenza sostanziale: tutte le operazioni di gestione delle chiavi sono effettuate tramite rete 30 / 47
Kerberized Key Management Scheme Communication among client and KS 31 / 47
Cryptographic Engine Cryptographic Engine 32 / 47
Cryptographic Engine Principali caratteristiche File cifrati non accessibili senza la conoscenza di file key o master key Impossibile controllare se due file cifrati corrispondono allo stesso testo in chiaro L authentication tag impedice che i dati sul server vengano modificati 33 / 47
Implementations Implementations Progettato per lavorare in kernel space come layer intermedio tra Virtual File System e FS tradizionali Operazioni di protezione/cifratura offerte all utente tramite servizi Interazione con il layer attraverso mount e ioctl Layer manipola solo i dati dell applicazione e non le strutture logiche del FS é stato implementato su Linux e BSD Gestione delle chiavi effettuata a livello utente Fornisce una libreria di sviluppo 34 / 47
Implementations Linux Version 35 / 47
Implementations Linux Version 36 / 47
Implementations Linux Version 2.0 Il kernel di Linux supporta i Loadable Kernel Module (LKM) Parti kernel caricabili a runtime quando se ne ha bisogno Servizi di cifratura di implementati come LKMs Scelti a runtime per cifrare/decifrare con differenti tecniche Moduli indipendenti Utilizzo simultaneo di piú tecniche 37 / 47
Implementations BSD Version 4.4BSD fornisce un interfaccia generica per diversi tipi di FS chiamata virtual node layer Astrae le operazioni di invocazione file system specifici Permette il montaggio e l accesso a file system diversi alla stessa maniera per BSD implementato come un FS layer Offre solo i servizi di cifratura dei file Ridirige le altre chiamate ai FS sottostanti Process Keys Job batch su risorse cifrate Trasparente ai processi Utility tcfsrun 38 / 47
Performance Performance Benchmark utilizzato: versione modificata dell Andrew benchmark Input: sottoalbero contenente il codice sorgente di una applicazione UNIX Cinque fasi: 1. Directories creation 2. File copy 3. Recursive directories stats 4. Recursive file scan 5. Compilation 39 / 47
Performance Performance Quattro suite di test per la misurazione delle performance di: NFS su file non cifrati con cifratura eseguita dal modulo NULL con cifratura eseguita dal modulo 3DES Tutti i test sono stati effettuati su un Pentium II a 233 MHz con 64Mb di memoria 40 / 47
Performance Performance Due serie di esperimenti Prima serie: Albero sorgente in locale File destinazione su file system remoto Seconda serie: Albero sorgente su file system remoto File destinazione in locale 41 / 47
Performance Performance 42 / 47
Conclusioni E oggi? I nostri dati sono al sicuro? 43 / 47
Conclusioni Dropbox Denunciato della Federal Trade Commission per pratiche commerciali ingannevoli 44 / 47
Conclusioni Wuala Basato su una serie di progetti open-source Risultato di attivitá di ricerca e sviluppo condotte da ETH Zurich - Swiss Federal Institute of Technology 45 / 47
Conclusioni Wuala Tutti i dati vengono cifrati a livello locale prima di essere trasferiti al cloud Nessuno potrá visualizzare i dati, se non l utente stesso La password non lascia mai il computer dell utente Nemmeno gli amministratori potranno accedere in chiaro ai file depositati. 46 / 47
Conclusioni Grazie per l attenzione! 47 / 47