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.
EncFS interagerer direkte med libfuse (FUSE-grænseflade), logbibliotek og OpenSSL (krypteringsbibliotek). "Kommunikation" med kernen sker gennem FUSE.
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:
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 ).
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:
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).
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.
Hver forekomst af EncFS-filsystemet indeholder en ".encfs%"-konfigurationsfil, hvor % er versionsnummeret. Denne fil indeholder:
EncFS understøtter den grundlæggende semantik i et filsystem med følgende undtagelser:
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 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/cryptDenne kommando afmonterer krypt-mappen, og efterlader krypt-rå krypteret.
EncFS har en række fordele i forhold til andre harddiskpartitionskrypteringssystemer, fordi hver fil er individuelt krypteret og gemt som en almindelig fil.
Når du opretter en ny EncFS-mappe, er forskellige muligheder tilgængelige.
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.
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.
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).
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.
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.
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.
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.
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.
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] .
Filsystemer ( liste , sammenligning ) | |||||||
---|---|---|---|---|---|---|---|
Disk |
| ||||||
Distribueret (netværk) | |||||||
Særlig |
|