EncFS

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 arkitektur

EncFS interagerar direkt med libfuse (FUSE-gränssnitt), loggningsbibliotek och OpenSSL (krypteringsbibliotek). "Kommunikation" med kärnan sker genom FUSE.

Interaktion med libfuse

Översikt över kryptering i EncFS

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:

Kryptering av filnamn

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

Lösenordsanvändning

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:

Filsystemblockstorlek

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

MAC- användning

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.

Konfigurationsfil

Varje instans av EncFS-filsystemet innehåller en ".encfs%"-konfigurationsfil, där % är versionsnumret. Denna fil innehåller:

Stöd för Unix -filsemantik

EncFS stöder den grundläggande semantiken för ett filsystem med följande undantag:

Operativsystem som stöds

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

Använda EncFS på Linux

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

Detta kommando kommer att avmontera crypt-katalogen, vilket lämnar crypt-raw krypterad.

Fördelar

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.

  • Diskutrymmet som upptas av EncFS "volymer" är inte fixat - det växer och minskar beroende på ändringar i antalet och storleken på krypterade filer.
  • Vissa kataloger i monteringspunktskatalogen kan vara fysiskt placerade på olika enheter.
  • Säkerhetskopieringsverktygen kan bara uppdatera filer som har ändrats i källkatalogen, inte hela katalogen.

Nackdelar

  • EncFS-volymer kan inte formateras med ett godtyckligt filsystem. De bevarar funktionerna och begränsningarna för filsystemet som innehåller källkatalogen.
  • Fragmentering av en krypterad volym orsakar fragmentering av filsystemet som innehåller källkatalogen.
  • Varje användare med tillgång till källkatalogen kan se antalet filer i det krypterade filsystemet, vilka behörigheter de har, deras ungefärliga storlek, ungefärliga namnlängd och senaste åtkomst- eller ändringsdatum.

Filsystemalternativ

När du skapar en ny EncFS-katalog finns olika alternativ tillgängliga.

Krypteringsalgoritm

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.

Blockstorlek

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.

Kryptering av filnamn

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

Kedjor av fullständiga filsökvägar

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.

Initierande vektor för filer

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.

Externa kedjor av initierande vektorer

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.

Blockera MAC-rubriker

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.

Automatisk avmontering efter en viss tids inaktivitet

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örelse med jämnåriga

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

Se även

Anteckningar

  1. encfs/README.md
  2. Release 1.9.5 - 2018.
  3. EncFSMP (nedlänk) . Hämtad 17 oktober 2015. Arkiverad från originalet 15 oktober 2015. 
  4. WEncFS (Windows Encrypted File System) Arkiverad 8 januari 2009 på Wayback Machine  - ett oavslutat projekt för att porta EncFS till Windows
  5. encfs4win Arkiverad 4 juli 2011 på Wayback Machine  - fungerande projekt för att porta EncFS till Windows (senaste utgåvan 2013)
  6. encfs4win Arkiverad 20 november 2016 på Wayback Machine  — Fork av det ursprungliga projektet, aktivt utvecklat (senaste utgåvan 2016), använder den nuvarande Dokan-versionen, värd på github Arkiverad 14 januari 2017 på Wayback Machine
  7. LUKS, EncFS och CryptoFS datakrypteringssystem för Linux (otillgänglig länk) . Hämtad 25 december 2008. Arkiverad från originalet 30 april 2009. 

Länkar