Esiste un file system crittografato di sola scrittura per Linux?


14

Sto cercando un filesystem crittografato per Linux che può essere montato in modalità di sola scrittura, nel senso che dovresti essere in grado di montarlo senza fornire una password, ma essere comunque in grado di scrivere / aggiungere file, ma nemmeno tu essere in grado di leggere i file che hai scritto o leggere i file già presenti nel filesystem. L'accesso ai file dovrebbe essere concesso solo quando il filesystem è montato tramite la password. Lo scopo è quello di scrivere file di registro o dati simili che vengono solo scritti, ma mai modificati, senza che i file stessi vengano esposti. Le autorizzazioni per i file non aiutano qui perché voglio che i dati siano inaccessibili anche quando il sistema è completamente compromesso.

Esiste una cosa del genere su Linux? O in caso contrario, quale sarebbe la migliore alternativa per creare file di registro crittografati?

La mia soluzione attuale consiste semplicemente nel reindirizzare i dati gpg --encrypt, il che funziona, ma è molto ingombrante, poiché non è possibile accedere facilmente al filesystem nel suo insieme, è necessario reindirizzare gpg --decryptmanualmente ogni file .


3
Credo che tu possa fare quello che vuoi tramite syslog. Ciò separa la generazione dei messaggi di registro dal sistema che li memorizza, quindi le app che generano il messaggio non hanno accesso al luogo in cui sono archiviate. I registri possono persino essere (e spesso lo sono) su un server separato.
mpez0,

Voglio fare un ulteriore passo avanti e avere i dati non accessibili affatto, non solo al processo che li ha creati, ma nemmeno al root. Questo è ciò che fa la crittografia a chiave pubblica con gpg, ma sto cercando un modo per farlo a livello di file system.
Grumbel,

Risposte:


4

... Voglio che i dati siano inaccessibili anche quando il sistema è completamente compromesso.

Non è possibile. Se il sistema è completamente compromesso, "per definizione" è accessibile qualsiasi cosa, comprese le chiavi di crittografia.

La crittografia è inutile nella protezione contro i compromessi del sistema, mentre il sistema è in esecuzione, SE le chiavi per crittografare / decrittografare i dati si trovano sullo stesso sistema con i dati crittografati. Ad esempio, se hai un filesystem LUKS montato e qualcuno ottiene l'accesso root al tuo sistema, è possibile estrarre le chiavi dalla RAM, perché devono risiedere nella RAM per decrittografare il filesystem. Nella tua situazione, se stai digitando la tua passphrase ogni volta che crittografi un file, sei protetto (supponendo che un keylogger non sia presente sul tuo sistema), in caso contrario, sei nella stessa situazione e qualcuno che compromette il tuo sistema può scoprire che chiave e annulla tutta la tua crittografia.

Devi spedire i dati che vuoi proteggere al di fuori del sistema + NON scriverli su un supporto intermedio su quel sistema se non vuoi assolutamente che root lo raggiunga. rsyslogsupporta esplicitamente questo per quanto riguarda la registrazione e puoi crittografare la connessione tra sorgente e sink con OpenVPN stunnelo simili. Sono sicuro che ci sono altre opzioni di trasferimento "a senso unico" là fuori.



"perché devono vivere nella RAM per decrittografare il filesystem" questo può essere vero con LUKS in particolare, ma non in generale: la crittografia asimmetrica è progettata esattamente per quello scopo (qualcuno che detiene la chiave pubblica può crittografare, ma non decrittografare)
Clément

3

Mi sembra che stai andando nella direzione sbagliata. Se vuoi un file su cui puoi scrivere, ma non leggere, le autorizzazioni per i file sono ciò che stai cercando.


$ touch log
$ chmod 222 log
$ echo test > log
$ cat log
cat: log: Permission denied

Naturalmente, questo file può trovarsi su un filesystem crittografato.


Puoi montare il filesystem con una data umask, non permettendo agli utenti di cambiare le autorizzazioni.
nn.

E solo il proprietario del file (o superutente) può modificare l'autorizzazione.
Gorilla,

Penso che OP stia cercando di proteggersi anche da un utente malintenzionato che ottiene il root.
Clément,

1
umask 0477 && touch file && echo test > file && cat file

può anche essere utile. Qualsiasi file creato nell'ambito del processo corrente avrà la modalità 0200.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.