EncFS | |
---|---|
Tip de | sistem de fișiere criptografic |
Dezvoltator | Valent Gough (Valent Gough) |
Sistem de operare | Linux , FreeBSD și macOS |
Prima editie | 2003 [1] |
ultima versiune |
|
Licență | GNU GPL |
Site-ul web | vgough.github.io/encfs/ |
EncFS este un sistem de fișiere criptografic gratuit bazat pe FUSE care criptează în mod transparent fișierele folosind un director arbitrar ca loc pentru stocarea fișierelor criptate. Distribuit sub licență GPL .
La montarea EncFS, sunt specificate directorul sursă (directorul sursă cu fișierele criptate) și punctul de montare. După montare, fiecare fișier din directorul punctului de montare corespunde unui anumit fișier din directorul criptat. Astfel, în directorul punctului de montare, fișierele directorului sursă sunt prezentate în formă necriptată. Fișierele sunt criptate folosind o cheie, care la rândul ei este stocată în același director ca și fișierele criptate, în formă criptată. Parola introdusă de utilizator la tastatură este folosită pentru a decripta această cheie.
EncFS interacționează direct cu libfuse (interfața FUSE), biblioteca de logare și OpenSSL (biblioteca de criptare). „Comunicarea” cu nucleul are loc prin FUSE.
Biblioteca OpenSSL utilizată furnizează algoritmi de criptare AES (cifr de bloc de 16 octeți cu o lungime a cheii de 128-256 de biți) și Blowfish (cifr de bloc de 8 octeți cu o lungime de cheie de 128-256 de biți). Versiunile timpurii (înainte de 1.1) aveau suport parțial pentru biblioteca de criptare Botan . Criptarea se întâmplă astfel:
Numele fișierelor sunt criptate și apoi codificate în codificare pe 64 de biți, scăpând în același timp de „.” și "/". Există posibilitatea de streaming (standard până la versiunea 1.1) și de blocare a criptării. MAC-ul pe 16 biți este folosit ca un IV (vector de inițializare) și se adaugă numelui criptat, ceea ce permite randomizarea rezultatului criptării (aceleași nume de fișiere sunt criptate diferit, deoarece întreaga cale către fișier este utilizată la generarea vectorului de inițializare ).
Fiecare instanță EncFS utilizează o cheie generată aleatoriu (cheie de volum). Această cheie este stocată criptată cu o parolă introdusă de utilizator. Și este decriptat atunci când utilizatorul introduce o parolă de la tastatură. Acest lucru vă permite să obțineți următoarele beneficii:
Toate operațiunile de citire/scriere din EncFS sunt bazate pe blocuri. Mărimea blocului este determinată de utilizator la crearea sistemului de fișiere și variază de la 64 la 4096 de octeți. O dimensiune mică a blocului reduce timpul de acces aleatoriu, dar crește numărul de solicitări atunci când citiți/scrierea unor bucăți mari de fișiere. Dimensiunile mari ale blocurilor cresc viteza de procesare a datelor, dar cresc timpul de acces aleatoriu. Spre deosebire de sistemele de fișiere reale, blocurile mari nu pierd spațiu pe disc (blocurile neumplute nu sunt umplute cu zerouri).
Fiecare bloc din fișier este criptat cu un antet MAC. Până la cea mai recentă versiune a EncFS inclusiv, SHA-1 pe 64 de biți este utilizat ca MAC . Astfel, un bloc de 512 octeți reprezintă 504 octeți de date criptate și 8 octeți de MAC.
Fiecare instanță a sistemului de fișiere EncFS conține un fișier de configurare „.encfs%”, unde % este numărul versiunii. Acest fișier conține:
EncFS acceptă semantica de bază a unui sistem de fișiere cu următoarele excepții:
Principala implementare EncFS este suportată de sistemele de operare Linux, Mac OS X, FreeBSD. Există mai multe implementări dezvoltate activ sub Windows [3] [4] [5] [6] .
Utilizarea directoarelor criptate este foarte asemănătoare cu instalarea oricărui alt sistem de fișiere sub Linux. Un director real este creat cu toate fișierele dvs., de exemplu, /home/user/crypt-raw. De asemenea, trebuie să creați un punct de montare, să fie /home/user/crypt. Când accesați aceste directoare, asigurați-vă că utilizați căi absolute (nu doar /usr/bin/crypt).
Datele sunt criptate cu comanda:
> encfs /home/user/crypt-raw /home/user/crypt Cheia de volum nu a fost găsită, creând un nou volum criptat. Parola: Verifica:Când criptarea este completă, fișierele pot fi accesate folosind directorul de criptare. După finalizarea lucrării, puteți utiliza comanda:
> fusermount -u /home/user/cryptAceastă comandă va demonta directorul crypt, lăsând crypt-raw criptat.
EncFS are o serie de avantaje față de alte sisteme de criptare a partițiilor de hard disk, deoarece fiecare fișier este criptat individual și salvat ca fișier obișnuit.
Când creați un nou director EncFS, sunt disponibile diferite opțiuni.
EncFS poate folosi orice algoritm de criptare care poate fi găsit pe sistem. Blowfish și AES sunt disponibile în mod obișnuit .
Dacă algoritmul de criptare vă permite să alegeți lungimea cheii, acest lucru se poate face atunci când o utilizați în EncFS.
Fiecare fișier este criptat bloc cu bloc și această opțiune vă permite să alegeți dimensiunea blocului. Când citiți cel puțin un octet dintr-un fișier criptat, întregul bloc este decriptat. De asemenea, la scriere, blocul este mai întâi decriptat în întregime, apoi criptat înapoi.
Dimensiunea implicită a blocului este 512, ceea ce este suficient în majoritatea cazurilor.
Spre deosebire de conținutul fișierelor criptate, numele fișierelor pot fi criptate cu un cod bloc sau flux. Un cifr de bloc vă permite să ascundeți lungimea exactă a numelor de fișiere, în timp ce un cifr de flux o arată exact la fel, economisind în același timp spațiu pe suport media (deși unul mic).
Această opțiune vă permite să criptați în mod diferit aceleași nume de fișiere situate în directoare diferite, în funcție de calea completă la fișier.
Cu toate acestea, dacă directorul părinte este redenumit, atunci toate fișierele și directoarele subiacente vor fi și ele redenumite. Aceasta poate fi o operațiune destul de intensivă în resurse. Prin urmare, nu este recomandat să utilizați această opțiune dacă se așteaptă redenumirea frecventă a directoarelor foarte imbricate.
Dacă această opțiune este activată, atunci fiecare fișier este criptat cu un vector de pornire arbitrar de 8 octeți, care se află în interiorul fișierului criptat. Dacă această opțiune este dezactivată, atunci fiecare fișier este criptat cu același vector inițial, ceea ce poate face cheia mai puțin rezistentă la cracare.
Activarea acestei opțiuni face sistemul de fișiere mai sigur cu prețul de a adăuga doar 8 octeți la fiecare fișier.
Vă permite să criptați conținutul acelorași blocuri de fișiere diferite în moduri diferite, pe baza căii complete către fișier.
În consecință, modificarea căii către fișier va modifica și conținutul criptat.
Vă permite să stocați o sumă de control a fiecărui bloc criptat, astfel încât corupția sau modificarea fișierului criptat să poată fi detectată de EncFS. Suma de control este de 8 octeți adăugați la fiecare bloc. Puteți utiliza 8 octeți aleatori suplimentari, astfel încât două blocuri deschise identice să aibă o sumă de control diferită.
Această opțiune impune un cost suplimentar CPU , deoarece fiecare bloc trebuie verificat cu suma de control de fiecare dată când este citit sau scris.
Dacă sistemul de fișiere criptat nu a fost folosit de ceva timp (câteva minute), atunci acesta poate fi demontat automat. Demontarea nu va avea loc dacă cel puțin un fișier este deschis, chiar și pentru citire.
Comparația a fost făcută cu sistemele de fișiere CryptoFS (de asemenea bazate pe FUSE) și LUKS (implementat de kernel). Sistemele de fișiere CryptoFS și EncFS arată cea mai bună performanță atunci când dimensiunea fișierului și a scrierii sunt apropiate de dimensiunea paginii „native” a sistemelor Linux (4096 KB). Rezultatele ambelor sisteme de spațiu utilizator sunt semnificativ în urma rezultatelor criptării LUKS, așa cum era de așteptat. Într-adevăr, utilizarea diferitelor abstracții FUSE și sisteme criptografice impune o latență suplimentară tuturor operațiunilor de citire și scriere. Cu toate acestea, performanța EncFS s-a dovedit a fi puțin mai mare decât performanța CryptoFS [7] .
Sisteme de fișiere ( listă , comparație ) | |||||||
---|---|---|---|---|---|---|---|
Disc |
| ||||||
Distribuit (rețea) | |||||||
Special |
|