EncFS

EncFS
Type kryptografisk filsystem
Udvikler Valient Gough (Valent Gough)
Operativ system Linux , FreeBSD og macOS
Første udgave 2003 [1]
nyeste version
Licens GNU GPL
Internet side vgough.github.io/encfs/

EncFS  er et gratis kryptografisk filsystem baseret på FUSE , der transparent krypterer filer ved hjælp af en vilkårlig mappe som et sted at gemme krypterede filer. Distribueret under GPL-licensen .

Ved montering af EncFS angives kildebiblioteket (kildebiblioteket med de krypterede filer) og monteringspunktet. Efter montering svarer hver fil i monteringspunktbiblioteket til en specifik fil fra den krypterede mappe. I monteringspunktbiblioteket præsenteres filerne i kildebiblioteket således i ukrypteret form. Filer krypteres ved hjælp af en nøgle, som igen gemmes i samme mappe som de krypterede filer, i krypteret form. Den adgangskode , som brugeren indtaster på tastaturet, bruges til at dekryptere denne nøgle.

Arkitektur af EncFS

EncFS interagerer direkte med libfuse (FUSE-grænseflade), logbibliotek og OpenSSL (krypteringsbibliotek). "Kommunikation" med kernen sker gennem FUSE.

Interaktion med libfuse

Oversigt over kryptering i EncFS

Det anvendte OpenSSL-bibliotek leverer krypteringsalgoritmer AES (16-byte blokchiffer med en nøglelængde på 128-256 bit) og Blowfish (8-byte blokchiffer med en nøglelængde på 128-256 bit). Tidlige versioner (før 1.1) havde delvis understøttelse af Botan- krypteringsbiblioteket . Kryptering sker således:

Kryptering af filnavne

Filnavne krypteres og kodes derefter i 64-bit-kodning, mens "." og "/". Der er mulighed for streaming (standard op til version 1.1) og blokkryptering. 16-bit MAC'en bruges som en IV (initialiseringsvektor) og foranstillet det krypterede navn, hvilket tillader randomisering af krypteringsresultatet (de samme filnavne krypteres forskelligt, da hele stien til filen bruges, når initialiseringsvektoren genereres ).

Adgangskodebrug

Hver EncFS-instans bruger en tilfældigt genereret nøgle (volumentast). Denne nøgle opbevares krypteret med en brugerindtastet adgangskode. Og det dekrypteres, når brugeren indtaster en adgangskode fra tastaturet. Dette giver dig mulighed for at opnå følgende fordele:

Filsystemblokstørrelse

Alle læse/skrive-operationer i EncFS er blok-baserede. Blokstørrelsen bestemmes af brugeren ved oprettelse af filsystemet og varierer fra 64 til 4096 bytes. En lille blokstørrelse reducerer tilfældig adgangstid, men øger antallet af anmodninger, når du læser/skriver store bidder af filer. Store blokstørrelser øger databehandlingshastigheden, men øger tilfældig adgangstid. I modsætning til rigtige filsystemer spilder store blokstørrelser ikke diskplads (ufyldte blokke er ikke fyldt med nuller).

MAC- brug

Hver blok i filen er krypteret med en MAC-header. Til og med den seneste version af EncFS bruges 64-bit SHA-1 som MAC . En 512-byte blok er således 504 bytes krypterede data og 8 bytes MAC.

Konfigurationsfil

Hver forekomst af EncFS-filsystemet indeholder en ".encfs%"-konfigurationsfil, hvor % er versionsnummeret. Denne fil indeholder:

Understøttelse af Unix -filsemantik

EncFS understøtter den grundlæggende semantik i et filsystem med følgende undtagelser:

Understøttede operativsystemer

Den vigtigste EncFS-implementering understøttes af Linux, Mac OS X, FreeBSD-operativsystemer. Der er flere aktivt udviklede implementeringer under Windows [3] [4] [5] [6] .

Brug af EncFS på Linux

Brug af krypterede mapper ligner meget at installere ethvert andet filsystem under Linux. En rigtig mappe oprettes med alle dine filer, for eksempel /home/user/crypt-raw. Du skal også oprette et monteringspunkt, lad det være /home/user/crypt. Når du tilgår disse mapper, skal du sørge for at bruge absolutte stier (ikke kun /usr/bin/crypt).

Data krypteres med kommandoen:

> encfs /home/user/crypt-raw /home/user/crypt Lydstyrkenøglen blev ikke fundet, opretter ny krypteret volumen. Adgangskode: Verificere:

Når krypteringen er fuldført, kan filerne tilgås ved hjælp af krypteringsmappen. Når arbejdet er afsluttet, kan du bruge kommandoen:

> fusermount -u /home/user/crypt

Denne kommando afmonterer krypt-mappen, og efterlader krypt-rå krypteret.

Fordele

EncFS har en række fordele i forhold til andre harddiskpartitionskrypteringssystemer, fordi hver fil er individuelt krypteret og gemt som en almindelig fil.

  • Diskpladsen optaget af EncFS "volumes" er ikke fast - den vokser og falder afhængigt af ændringer i antallet og størrelsen af ​​krypterede filer.
  • Nogle mapper i monteringspunktbiblioteket kan være fysisk placeret på forskellige enheder.
  • Sikkerhedskopieringsværktøjerne kan kun opdatere filer, der er ændret i kildemappen, ikke hele mappen.

Ulemper

  • EncFS-volumener kan ikke formateres med et vilkårligt filsystem. De bevarer funktionerne og begrænsningerne i filsystemet, der indeholder kildebiblioteket.
  • Fragmentering af en krypteret volumen forårsager fragmentering af filsystemet, der indeholder kildemappen.
  • Hver bruger med adgang til kildebiblioteket er i stand til at se antallet af filer i det krypterede filsystem, hvilke tilladelser de har, deres omtrentlige størrelse, omtrentlige navnelængde og sidste adgangs- eller ændringsdato.

Filsystemindstillinger

Når du opretter en ny EncFS-mappe, er forskellige muligheder tilgængelige.

Krypteringsalgoritme

EncFS kan bruge alle krypteringsalgoritmer, der kan findes på systemet. Blowfish og AES er almindeligt tilgængelige .

Hvis krypteringsalgoritmen tillader dig at vælge nøglelængden, kan dette gøres, når du bruger den i EncFS.

Blokstørrelse

Hver fil er krypteret blok for blok, og denne mulighed giver dig mulighed for at vælge blokstørrelsen. Når du læser mindst én byte fra en krypteret fil, dekrypteres hele blokken. Også, når du skriver, dekrypteres blokken først i sin helhed og derefter krypteret tilbage.

Standardblokstørrelsen er 512, hvilket er tilstrækkeligt i de fleste tilfælde.

Kryptering af filnavne

I modsætning til indholdet af krypterede filer kan filnavne krypteres med en blok- eller stream-chiffer. En blokchiffer giver dig mulighed for at skjule den nøjagtige længde af filnavne, mens en stream-chiffer viser det nøjagtigt det samme, mens du sparer plads på mediet (omend en lille en).

Kæder af fulde filstier

Denne mulighed giver dig mulighed for at kryptere de samme filnavne i forskellige mapper forskelligt baseret på den fulde sti til filen.

Men hvis den overordnede mappe omdøbes, vil alle underliggende filer og mapper også blive omdøbt. Dette kan være en ganske ressourcekrævende operation. Derfor anbefales det ikke at bruge denne indstilling, hvis hyppig omdøbning af meget indlejrede mapper forventes.

Initierende vektor for filer

Hvis denne mulighed er aktiveret, krypteres hver fil med en vilkårlig 8-byte startvektor, som er placeret inde i den krypterede fil. Hvis denne mulighed er deaktiveret, krypteres hver fil med den samme initialvektor, hvilket kan gøre nøglen mindre modstandsdygtig over for revner.

Aktivering af denne indstilling gør filsystemet mere sikkert på bekostning af kun at tilføje 8 bytes til hver fil.

Eksterne kæder af initierende vektorer

Giver dig mulighed for at kryptere indholdet af de samme blokke af forskellige filer på forskellige måder, baseret på den fulde sti til filen.

Derfor vil ændring af stien til filen også ændre dens krypterede indhold.

Bloker MAC-headere

Giver dig mulighed for at gemme en kontrolsum for hver krypteret blok, så korruption eller ændring af den krypterede fil kan detekteres af EncFS. Kontrolsummen er 8 bytes tilføjet til hver blok. Du kan bruge 8 ekstra tilfældige bytes, så to identiske åbne blokke har en forskellig kontrolsum.

Denne mulighed pålægger CPU'en en ekstra omkostning , da hver blok skal kontrolleres mod sin kontrolsum, hver gang den læses eller skrives.

Automatisk afmontering efter et vist tidsrum med inaktivitet

Hvis det krypterede filsystem ikke har været brugt i nogen tid (adskillige minutter), kan det automatisk afmonteres. Afmontering vil ikke finde sted, hvis mindst én fil er åben, heller ikke til læsning.

Sammenligning med jævnaldrende

Sammenligningen blev foretaget med CryptoFS (også baseret på FUSE) og LUKS (kerne-implementerede) filsystemer. CryptoFS- og EncFS-filsystemerne viser den bedste ydeevne, når fil- og skrivestørrelsen er tæt på den "native" sidestørrelse for Linux-systemer (4096 KB). Resultaterne af begge brugerrumssystemer ligger som forventet væsentligt bagefter resultaterne af LUKS-kryptering. Faktisk pålægger brugen af ​​forskellige FUSE-abstraktioner og kryptografiske systemer yderligere latenstid på alle læse- og skriveoperationer. EncFS's ydeevne viste sig dog at være lidt højere end CryptoFS's ydeevne [7] .

Se også

Noter

  1. encfs/README.md
  2. Udgivelse 1.9.5 - 2018.
  3. EncFSMP (downlink) . Hentet 17. oktober 2015. Arkiveret fra originalen 15. oktober 2015. 
  4. WEncFS (Windows Encrypted File System) Arkiveret 8. januar 2009 på Wayback Machine  - et ufærdigt projekt til at portere EncFS til Windows
  5. encfs4win Arkiveret 4. juli 2011 på Wayback Machine  - brugbart projekt til at portere EncFS til Windows (seneste udgivelse 2013)
  6. encfs4win Arkiveret 20. november 2016 på Wayback Machine  — Fork af det originale projekt, aktivt udviklet (seneste udgivelse 2016), bruger den nuværende Dokan-version, hostet på github Arkiveret 14. januar 2017 på Wayback Machine
  7. LUKS, EncFS og CryptoFS datakrypteringssystemer til Linux (utilgængeligt link) . Hentet 25. december 2008. Arkiveret fra originalen 30. april 2009. 

Links