Sto lavorando al progetto accademico, una parte della quale sta applicando la crittografia trasparente (AES-CTR) ai file Ext4 selezionati memorizzati sul disco (posso già contrassegnarli come crittografati usando nuovo ioctl ecc.).Modifica dati scritti su disco dal filesystem Ext4
Per fare ciò, ho bisogno di trovare il punto migliore per chiamare il mio algoritmo sui dati, mentre viene letto o scritto dal/sul dispositivo. A causa di una grande quantità di funzionalità (come journal, inline, o-direct, extent) fornite dal filesystem, sto faticando da qualche giorno per trovare la soluzione adeguata - ho bisogno di operare sui dati grezzi, dato che sono memorizzati in i datablocks.
ho avuto alcune idee in mente, uno era di agganciare in qualche parte sul CALLPATH da sys_read(...)
e sys_write(...)
, più precisamente ext4_file_write(...)
e generic_file_aio_read(...)
-, ma che non avrebbe funzionato con mmap
, e probabilmente non è la strada da percorrere. Un altro approccio sarebbe quello di farlo attraverso ext4_writepages(...)
e ext4_readpages(...)
(ed è callback, dato che è asincrono), quando le pagine di memoria vengono scritte su disco.
Perché non è la versione di produzione, è solo una dimostrazione del concetto: posso disattivare alcune funzionalità di Ext4 per semplificare l'operazione. Durante l'utilizzo dell'algoritmo, devo essere in grado di accedere agli xargs dell'inode (dove è memorizzato l'id della chiave) e anche di essere a conoscenza del numero di blocco per generare il vettore iniziale utilizzato nella criptazione [en/de]. Hai qualche idea e/o suggerimento riguardo a quel problema?
Grazie mille per la risposta! Questo sembra essere un buon approccio, tuttavia non sono sicuro se accettabile, in quanto si trattava piuttosto di modificare Ext4 stesso - ciò che ovviamente rende le cose molto più difficili ... –
Con l'approccio che ho menzionato non è necessario modificare EXT4 in uscita implementazione, ed è la cosa bella dell'uso di wrapfs. Per favore fatemi sapere se avete bisogno di ulteriori chiarimenti su questo. – Mavla