EncFS | |
---|---|
Sorts | kryptografiskt filsystem |
Utvecklaren | Valient Gough (Valent Gough) |
Operativ system | Linux , FreeBSD och macOS |
Första upplagan | 2003 [1] |
senaste versionen | |
Licens | GNU GPL |
Hemsida | vgough.github.io/encfs/ |
EncFS är ett gratis kryptografiskt filsystem baserat på FUSE som transparent krypterar filer med hjälp av en godtycklig katalog som en plats för att lagra krypterade filer. Distribueras under GPL-licensen .
Vid montering av EncFS anges källkatalogen (källkatalogen med de krypterade filerna) och monteringspunkten. Efter montering motsvarar varje fil i monteringspunktskatalogen en specifik fil från den krypterade katalogen. Således, i monteringspunktskatalogen, presenteras filerna i källkatalogen i okrypterad form. Filer krypteras med en nyckel, som i sin tur lagras i samma katalog som de krypterade filerna, i krypterad form. Lösenordet som användaren angett på tangentbordet används för att dekryptera denna nyckel.
EncFS interagerar direkt med libfuse (FUSE-gränssnitt), loggningsbibliotek och OpenSSL (krypteringsbibliotek). "Kommunikation" med kärnan sker genom FUSE.
OpenSSL-biblioteket som används tillhandahåller krypteringsalgoritmer AES (16-byte block chiffer med en nyckellängd på 128-256 bitar) och Blowfish (8-byte block chiffer med en nyckellängd på 128-256 bitar). Tidiga versioner (före 1.1) hade delvis stöd för Botan- krypteringsbiblioteket . Kryptering sker så här:
Filnamn krypteras och kodas sedan i 64-bitars kodning, samtidigt som man blir av med "." och "/". Det finns möjlighet till streaming (standard upp till version 1.1) och blockkryptering. 16-bitars MAC används som en IV (initieringsvektor) och läggs till det krypterade namnet, vilket möjliggör randomisering av krypteringsresultatet (samma filnamn krypteras på olika sätt, eftersom hela sökvägen till filen används när initialiseringsvektorn genereras ).
Varje EncFS-instans använder en slumpmässigt genererad nyckel (volymnyckel). Denna nyckel lagras krypterad med ett användarinmatat lösenord. Och det dekrypteras när användaren anger ett lösenord från tangentbordet. Detta gör att du kan uppnå följande fördelar:
Alla läs/skrivoperationer i EncFS är blockbaserade. Blockstorleken bestäms av användaren när filsystemet skapas och varierar från 64 till 4096 byte. En liten blockstorlek minskar slumpmässig åtkomsttid, men ökar antalet förfrågningar när du läser/skriver stora bitar av filer. Stora blockstorlekar ökar databehandlingshastigheten, men ökar slumpmässig åtkomsttid. Till skillnad från riktiga filsystem slösar inte stora blockstorlekar diskutrymme (ofyllda block fylls inte med nollor).
Varje block i filen krypteras med en MAC-header. Till och med den senaste versionen av EncFS används 64-bitars SHA-1 som MAC . Ett block på 512 byte är således 504 byte krypterad data och 8 byte MAC.
Varje instans av EncFS-filsystemet innehåller en ".encfs%"-konfigurationsfil, där % är versionsnumret. Denna fil innehåller:
EncFS stöder den grundläggande semantiken för ett filsystem med följande undantag:
Den huvudsakliga EncFS-implementeringen stöds av operativsystemen Linux, Mac OS X, FreeBSD. Det finns flera aktivt utvecklade implementeringar under Windows [3] [4] [5] [6] .
Att använda krypterade kataloger är mycket likt att installera vilket annat filsystem som helst under Linux. En riktig katalog skapas med alla dina filer, till exempel /home/user/crypt-raw. Du måste också skapa en monteringspunkt, låt den vara /home/user/crypt. När du kommer åt dessa kataloger, se till att använda absoluta sökvägar (inte bara /usr/bin/crypt).
Data krypteras med kommandot:
> encfs /home/user/crypt-raw /home/user/crypt Volymnyckel hittades inte, skapar ny krypterad volym. Lösenord: Kontrollera:När krypteringen är klar kan filer nås med krypteringskatalogen. När arbetet är klart kan du använda kommandot:
> fusermount -u /home/user/cryptDetta kommando kommer att avmontera crypt-katalogen, vilket lämnar crypt-raw krypterad.
EncFS har ett antal fördelar jämfört med andra krypteringssystem för hårddiskpartitioner eftersom varje fil är individuellt krypterad och sparad som en vanlig fil.
När du skapar en ny EncFS-katalog finns olika alternativ tillgängliga.
EncFS kan använda alla krypteringsalgoritmer som kan hittas på systemet. Blowfish och AES är allmänt tillgängliga .
Om krypteringsalgoritmen tillåter dig att välja nyckellängd kan detta göras när du använder den i EncFS.
Varje fil krypteras block för block och detta alternativ låter dig välja blockstorlek. När man läser minst en byte från en krypterad fil dekrypteras hela blocket. Vid skrivning dekrypteras blocket först i sin helhet och krypteras sedan tillbaka.
Standardblockstorleken är 512, vilket är tillräckligt i de flesta fall.
Till skillnad från innehållet i krypterade filer kan filnamn krypteras med ett block- eller strömchiffer. Ett blockchiffer låter dig dölja den exakta längden på filnamn, medan ett strömchiffer visar det exakt samma, samtidigt som du sparar utrymme på media (om än en liten sådan).
Det här alternativet låter dig kryptera samma filnamn som finns i olika kataloger på olika sätt, baserat på den fullständiga sökvägen till filen.
Men om den överordnade katalogen byter namn, kommer alla underliggande filer och kataloger också att bytas om. Detta kan vara en ganska resurskrävande operation. Därför rekommenderas det inte att använda det här alternativet om frekventa byte av namn på mycket kapslade kataloger förväntas.
Om det här alternativet är aktiverat, krypteras varje fil med en godtycklig 8-byte startvektor, som finns inuti den krypterade filen. Om det här alternativet är inaktiverat, krypteras varje fil med samma initiala vektor, vilket kan göra nyckeln mindre motståndskraftig mot sprickbildning.
Aktivering av det här alternativet gör filsystemet säkrare till priset av att bara lägga till 8 byte till varje fil.
Låter dig kryptera innehållet i samma block av olika filer på olika sätt, baserat på den fullständiga sökvägen till filen.
Följaktligen kommer att ändra sökvägen till filen också att ändra dess krypterade innehåll.
Låter dig lagra en kontrollsumma för varje krypterat block så att korruption eller modifiering av den krypterade filen kan upptäckas av EncFS. Kontrollsumman är 8 byte adderade till varje block. Du kan använda ytterligare 8 slumpmässiga bytes så att två identiska öppna block har olika kontrollsumma.
Detta alternativ medför en extra kostnad för CPU :n , eftersom varje block måste kontrolleras mot sin kontrollsumma varje gång det läses eller skrivs.
Om det krypterade filsystemet inte har använts på en tid (flera minuter), kan det automatiskt avmonteras. Avmontering sker inte om minst en fil är öppen, även för läsning.
Jämförelsen gjordes med filsystemen CryptoFS (även baserad på FUSE) och LUKS (kärnimplementerade). Filsystemen CryptoFS och EncFS visar bäst prestanda när fil- och skrivstorleken är nära den "inhemska" sidstorleken för Linux-system (4096 KB). Resultaten för båda användarutrymmessystemen ligger som förväntat betydligt efter resultaten av LUKS-kryptering. Faktum är att användningen av olika FUSE-abstraktioner och kryptografiska system medför ytterligare latens på alla läs- och skrivoperationer. Prestandan för EncFS visade sig dock vara något högre än prestanda för CryptoFS [7] .
Filsystem ( lista , jämförelse ) | |||||||
---|---|---|---|---|---|---|---|
Disk |
| ||||||
Distribuerat (nätverk) | |||||||
Särskild |
|