EncFS

EncFS
Typ kryptografický souborový systém
Vývojář Valient Gough (Valent Gough)
Operační systém Linux , FreeBSD a macOS
První vydání 2003 [1]
Nejnovější verze
Licence GNU GPL
webová stránka vgough.github.io/encfs/

EncFS  je bezplatný kryptografický souborový systém založený na FUSE , který transparentně šifruje soubory pomocí libovolného adresáře jako místa pro uložení zašifrovaných souborů. Distribuováno pod licencí GPL .

Při připojování EncFS je specifikován zdrojový adresář (zdrojový adresář se zašifrovanými soubory) a bod připojení. Po připojení každý soubor v adresáři bodu připojení odpovídá konkrétnímu souboru ze zašifrovaného adresáře. V adresáři bodu připojení jsou tedy soubory zdrojového adresáře prezentovány v nezašifrované podobě. Soubory jsou šifrovány pomocí klíče, který je zase uložen ve stejném adresáři jako šifrované soubory v zašifrované podobě. K dešifrování tohoto klíče se používá heslo zadané uživatelem na klávesnici.

Architektura EncFS

EncFS přímo spolupracuje s libfuse (rozhraní FUSE), protokolovací knihovnou a OpenSSL (šifrovací knihovna). "Komunikace" s jádrem probíhá přes FUSE.

Interakce s libfuse

Přehled šifrování v EncFS

Použitá knihovna OpenSSL poskytuje šifrovací algoritmy AES (16bajtová bloková šifra s délkou klíče 128-256 bitů) a Blowfish (8bajtová bloková šifra s délkou klíče 128-256 bitů). Dřívější verze (před 1.1) měly částečnou podporu pro šifrovací knihovnu Botan . Šifrování probíhá takto:

Šifrování názvů souborů

Názvy souborů jsou zašifrovány a poté zakódovány v 64bitovém kódování, přičemž se zbaví znaku "." a "/". Nechybí možnost streamování (standardně až do verze 1.1) a blokové šifrování. 16bitový MAC se používá jako IV (inicializační vektor) a je připojen k zašifrovanému jménu, což umožňuje randomizovat výsledek šifrování (stejné názvy souborů jsou šifrovány odlišně, protože při generování inicializačního vektoru se používá celá cesta k souboru. ).

Použití hesla

Každá instance EncFS používá náhodně generovaný klíč (volume key). Tento klíč je uložen zašifrovaný pomocí hesla zadaného uživatelem. A dešifruje se, když uživatel zadá heslo z klávesnice. To vám umožní dosáhnout následujících výhod:

Velikost bloku souborového systému

Všechny operace čtení/zápisu v EncFS jsou blokové. Velikost bloku je určena uživatelem při vytváření systému souborů a pohybuje se od 64 do 4096 bajtů. Malá velikost bloku snižuje čas náhodného přístupu, ale zvyšuje počet požadavků při čtení/zápisu velkých částí souborů. Velké velikosti bloků zvyšují rychlost zpracování dat, ale prodlužují dobu náhodného přístupu. Na rozdíl od skutečných souborových systémů velké bloky neplýtvají místem na disku (nevyplněné bloky nejsou vyplněny nulami).

Využití MAC

Každý blok v souboru je zašifrován MAC hlavičkou. Až do nejnovější verze EncFS včetně se jako MAC používá 64bitový SHA-1 . 512bajtový blok je tedy 504 bajtů šifrovaných dat a 8 bajtů MAC.

Konfigurační soubor

Každá instance systému souborů EncFS obsahuje konfigurační soubor ".encfs%", kde % je číslo verze. Tento soubor obsahuje:

Podpora sémantiky souborů Unix

EncFS podporuje základní sémantiku souborového systému s následujícími výjimkami:

Podporované operační systémy

Hlavní implementace EncFS je podporována operačními systémy Linux, Mac OS X, FreeBSD. Pod Windows existuje několik aktivně vyvíjených implementací [3] [4] [5] [6] .

Použití EncFS na Linuxu

Použití šifrovaných adresářů je velmi podobné instalaci jakéhokoli jiného souborového systému pod Linuxem. Vytvoří se skutečný adresář se všemi vašimi soubory, například /home/user/crypt-raw. Musíte také vytvořit přípojný bod, ať je to /home/user/crypt. Při přístupu k těmto adresářům se ujistěte, že používáte absolutní cesty (nejen /usr/bin/crypt).

Data jsou šifrována příkazem:

> encfs /home/user/crypt-raw /home/user/crypt Klíč svazku nebyl nalezen, vytváří se nový šifrovaný svazek. Heslo: Ověřte:

Po dokončení šifrování lze k souborům přistupovat pomocí adresáře crypt. Po dokončení práce můžete použít příkaz:

> fusermount -u /home/user/crypt

Tento příkaz odpojí adresář crypt a ponechá crypt-raw zašifrovaný.

Výhody

EncFS má oproti jiným systémům šifrování oddílů pevného disku řadu výhod, protože každý soubor je individuálně zašifrován a uložen jako běžný soubor.

  • Místo na disku obsazené „svazky“ EncFS není pevně dané – roste a zmenšuje se v závislosti na změnách počtu a velikosti zašifrovaných souborů.
  • Některé adresáře v adresáři bodu připojení mohou být fyzicky umístěny na různých zařízeních.
  • Zálohovací nástroje mohou aktualizovat pouze soubory, které se změnily ve zdrojovém adresáři, nikoli celý adresář.

Nevýhody

  • Svazky EncFS nelze formátovat pomocí libovolného systému souborů. Zachovávají vlastnosti a omezení souborového systému obsahujícího zdrojový adresář.
  • Fragmentace zašifrovaného svazku způsobí fragmentaci systému souborů obsahujícího zdrojový adresář.
  • Každý uživatel s přístupem do zdrojového adresáře vidí počet souborů v zašifrovaném souborovém systému, jaká má oprávnění, jejich přibližnou velikost, přibližnou délku názvu a datum posledního přístupu nebo změny.

Možnosti souborového systému

Při vytváření nového adresáře EncFS jsou k dispozici různé možnosti.

Šifrovací algoritmus

EncFS může používat jakékoli šifrovací algoritmy, které lze nalézt v systému. Blowfish a AES jsou běžně dostupné .

Pokud vám šifrovací algoritmus umožňuje zvolit délku klíče, lze to provést při použití v EncFS.

Velikost bloku

Každý soubor je zašifrován blok po bloku a tato možnost umožňuje zvolit velikost bloku. Při čtení alespoň jednoho bajtu ze zašifrovaného souboru se dešifruje celý blok. Také při zápisu je blok nejprve celý dešifrován a poté zašifrován zpět.

Výchozí velikost bloku je 512, což je ve většině případů dostačující.

Šifrování názvů souborů

Na rozdíl od obsahu zašifrovaných souborů lze názvy souborů zašifrovat blokovou nebo proudovou šifrou. Bloková šifra umožňuje skrýt přesnou délku názvů souborů, zatímco proudová šifra ji zobrazuje úplně stejně, přičemž šetří místo na médiu (i když malé).

Řetězce úplných cest k souborům

Tato možnost umožňuje zašifrovat stejné názvy souborů umístěné v různých adresářích odlišně na základě úplné cesty k souboru.

Pokud je však nadřazený adresář přejmenován, budou přejmenovány také všechny podkladové soubory a adresáře. To může být poměrně náročná operace. Proto se nedoporučuje používat tuto volbu, pokud se očekává časté přejmenovávání vysoce vnořených adresářů.

Iniciační vektor pro soubory

Pokud je tato možnost povolena, je každý soubor zašifrován libovolným 8bajtovým počátečním vektorem, který se nachází uvnitř zašifrovaného souboru. Pokud je tato možnost zakázána, je každý soubor zašifrován stejným počátečním vektorem, což může způsobit , že klíč bude méně odolný vůči prasknutí.

Povolením této možnosti je systém souborů bezpečnější za cenu přidání pouze 8 bajtů ke každému souboru.

Externí řetězce iniciačních vektorů

Umožňuje šifrovat obsah stejných bloků různých souborů různými způsoby na základě úplné cesty k souboru.

V souladu s tím se změnou cesty k souboru změní také jeho šifrovaný obsah.

Blokovat MAC hlavičky

Umožňuje uložit kontrolní součet každého zašifrovaného bloku, aby bylo možné pomocí EncFS detekovat poškození nebo úpravu zašifrovaného souboru. Kontrolní součet je 8 bajtů přidaných ke každému bloku. Můžete použít 8 dalších náhodných bajtů, takže dva stejné otevřené bloky mají různý kontrolní součet.

Tato možnost uvaluje dodatečné náklady na CPU , protože každý blok musí být kontrolován proti jeho kontrolnímu součtu při každém čtení nebo zápisu.

Automatické odpojení po určité době nečinnosti

Pokud nebyl šifrovaný souborový systém nějakou dobu (několik minut) používán, lze jej automaticky odpojit. K odpojení nedojde, pokud je otevřen alespoň jeden soubor, a to i pro čtení.

Srovnání s vrstevníky

Srovnání bylo provedeno se souborovými systémy CryptoFS (také založené na FUSE) a LUKS (implementované v jádře). Souborové systémy CryptoFS a EncFS vykazují nejlepší výkon, když se velikost souboru a zápisu blíží „nativní“ velikosti stránky systémů Linux (4096 KB). Výsledky obou systémů uživatelského prostoru podle očekávání výrazně zaostávají za výsledky šifrování LUKS. Ve skutečnosti použití různých abstrakcí FUSE a kryptografických systémů způsobuje další latenci všech operací čtení a zápisu. Ukázalo se však, že výkon EncFS je o něco vyšší než výkon CryptoFS [7] .

Viz také

Poznámky

  1. encfs/README.md
  2. Vydání 1.9.5 – 2018.
  3. EncFSMP (downlink) . Získáno 17. října 2015. Archivováno z originálu 15. října 2015. 
  4. WEncFS (Windows Encrypted File System) Archivováno 8. ledna 2009 na Wayback Machine  – nedokončený projekt portování EncFS do Windows
  5. encfs4win Archivováno 4. července 2011 na Wayback Machine  - funkční projekt pro port EncFS na Windows (poslední vydání 2013)
  6. encfs4win Archivováno 20. listopadu 2016 na Wayback Machine  — Fork původního projektu, aktivně vyvíjený (nejnovější vydání 2016), používá aktuální verzi Dokan, hostovanou na githubu Archivováno 14. ledna 2017 na Wayback Machine
  7. Systémy šifrování dat LUKS, EncFS a CryptoFS pro Linux (nepřístupný odkaz) . Získáno 25. prosince 2008. Archivováno z originálu dne 30. dubna 2009. 

Odkazy