EncFS

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.

Arhitectura EncFS

EncFS interacționează direct cu libfuse (interfața FUSE), biblioteca de logare și OpenSSL (biblioteca de criptare). „Comunicarea” cu nucleul are loc prin FUSE.

Interacțiune cu libfuse

Prezentare generală a criptării în EncFS

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:

Criptarea numelor de fișiere

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 ).

Utilizarea parolei

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:

Dimensiunea blocului sistemului de fișiere

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).

Utilizarea MAC

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.

Fișier de configurare

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:

Suport pentru semantica fișierelor Unix

EncFS acceptă semantica de bază a unui sistem de fișiere cu următoarele excepții:

Sisteme de operare acceptate

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 EncFS pe Linux

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/crypt

Această comandă va demonta directorul crypt, lăsând crypt-raw criptat.

Beneficii

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.

  • Spațiul pe disc ocupat de „volumele” EncFS nu este fix - crește și scade în funcție de modificările numărului și dimensiunii fișierelor criptate.
  • Unele directoare din directorul punctelor de montare pot fi localizate fizic pe diferite dispozitive.
  • Instrumentele de backup pot actualiza numai fișierele care s-au modificat în directorul sursă, nu în întregul director.

Dezavantaje

  • Volumele EncFS nu pot fi formatate cu un sistem de fișiere arbitrar. Acestea păstrează caracteristicile și limitările sistemului de fișiere care conține directorul sursă.
  • Fragmentarea unui volum criptat determină fragmentarea sistemului de fișiere care conține directorul sursă.
  • Fiecare utilizator cu acces la directorul sursă poate vedea numărul de fișiere din sistemul de fișiere criptat, ce permisiuni are, dimensiunea lor aproximativă, lungimea aproximativă a numelui și data ultimei accesări sau modificări.

Opțiuni ale sistemului de fișiere

Când creați un nou director EncFS, sunt disponibile diferite opțiuni.

Algoritm de criptare

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.

Dimensiunea blocului

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.

Criptarea numelor de fișiere

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).

Lanțuri de căi de fișiere complete

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.

Vector de inițiere pentru fișiere

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.

Lanțuri externe de vectori inițiatori

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.

Blocați antetele MAC

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.

Demontarea automată după o anumită perioadă de timp de inactivitate

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ție cu colegii

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] .

Vezi și

Note

  1. encfs/README.md
  2. Versiunea 1.9.5 - 2018.
  3. EncFSMP (link descendent) . Consultat la 17 octombrie 2015. Arhivat din original la 15 octombrie 2015. 
  4. WEncFS (Windows Encrypted File System) Arhivat 8 ianuarie 2009 la Wayback Machine  - un proiect neterminat pentru a porta EncFS pe Windows
  5. encfs4win Arhivat 4 iulie 2011 la Wayback Machine  - proiect viabil pentru a porta EncFS pe Windows (ultima ediție 2013)
  6. encfs4win Arhivat 20 noiembrie 2016 la Wayback Machine  — Furk al proiectului original, dezvoltat activ (ultima ediție 2016), folosește versiunea actuală Dokan, găzduită pe github Arhivat 14 ianuarie 2017 la Wayback Machine
  7. Sisteme de criptare a datelor LUKS, EncFS și CryptoFS pentru Linux (link inaccesibil) . Consultat la 25 decembrie 2008. Arhivat din original la 30 aprilie 2009. 

Link -uri