EncFS

EncFS
Típusú kriptográfiai fájlrendszer
Fejlesztő Valent Gough (Valent Gough)
Operációs rendszer Linux , FreeBSD és macOS
Első kiadás 2003 [1]
legújabb verzió
Engedély GNU GPL
Weboldal vgough.github.io/encfs/

Az EncFS  egy ingyenes kriptográfiai fájlrendszer, amely a FUSE -n alapul, amely transzparensen titkosítja a fájlokat egy tetszőleges könyvtár használatával a titkosított fájlok tárolási helyeként. GPL licenc alatt terjesztve .

Az EncFS csatlakoztatásakor meg kell adni a forráskönyvtárat (a titkosított fájlokat tartalmazó forráskönyvtárat) és a csatolási pontot. A csatlakoztatás után a beillesztési pont könyvtárában lévő minden fájl egy adott fájlnak felel meg a titkosított könyvtárból. Így a csatolási pont könyvtárban a forráskönyvtár fájljai titkosítatlan formában jelennek meg. A fájlok titkosítása egy kulccsal történik, amely viszont ugyanabban a könyvtárban van tárolva, mint a titkosított fájlok, titkosított formában. A felhasználó által a billentyűzeten beírt jelszó a kulcs visszafejtésére szolgál.

Az EncFS architektúrája

Az EncFS közvetlenül együttműködik a libfuse-val (FUSE interfész), a naplózó könyvtárral és az OpenSSL -lel (titkosítási könyvtár). A kernellel való "kommunikáció" a FUSE-n keresztül történik.

Interakció a libfuse-szal

Az EncFS titkosításának áttekintése

A használt OpenSSL könyvtár az AES (16 bájtos blokkrejtjel 128-256 bites kulcshosszúsággal) és a Blowfish (8 bájtos blokkrejtjel 128-256 bites kulcshosszúságú) titkosítási algoritmusokat biztosít. A korai verziók (1.1 előtt) részlegesen támogatták a Botan titkosítási könyvtárat . A titkosítás a következőképpen történik:

Fájlnevek titkosítása

A fájlneveket titkosítják, majd 64 bites kódolással kódolják, miközben megszabadulnak a "." és "/". Lehetőség van streamingre (standard az 1.1-es verzióig) és blokkolt titkosításra. A 16 bites MAC IV-ként (inicializálási vektorként) használatos, és a titkosított név elé kerül, ami lehetővé teszi a titkosítási eredmény véletlenszerűsítését (ugyanazok a fájlnevek különbözőképpen titkosítva vannak, mivel az inicializálási vektor generálásakor a fájl teljes elérési útja kerül felhasználásra. ).

Jelszóhasználat

Minden EncFS-példány véletlenszerűen generált kulcsot (hangerőkulcsot) használ. Ezt a kulcsot a felhasználó által megadott jelszóval titkosítva tároljuk. És akkor dekódolódik, amikor a felhasználó beír egy jelszót a billentyűzetről. Ez lehetővé teszi a következő előnyök elérését:

Fájlrendszer blokkmérete

Az EncFS összes olvasási/írási művelete blokk alapú. A blokk méretét a felhasználó határozza meg a fájlrendszer létrehozásakor, és 64 és 4096 bájt között változik. A kis blokkméret csökkenti a véletlen hozzáférési időt, de növeli a kérések számát nagy fájldarabok olvasásakor/írásakor. A nagy blokkméretek növelik az adatfeldolgozási sebességet, de növelik a véletlen hozzáférési időt. A valódi fájlrendszerekkel ellentétben a nagy blokkméretek nem pazarolják a lemezterületet (a kitöltetlen blokkok nincsenek nullákkal töltve).

MAC használat

A fájl minden blokkja MAC-fejléccel van titkosítva. Az EncFS legújabb verziójáig a 64 bites SHA-1 használatos MAC-ként . Így egy 512 bájtos blokk 504 bájt titkosított adatot és 8 bájt MAC-ot tartalmaz.

Konfigurációs fájl

Az EncFS fájlrendszer minden példánya tartalmaz egy „.encfs%” konfigurációs fájlt, ahol a % a verziószám. Ez a fájl a következőket tartalmazza:

Unix fájl szemantika támogatása

Az EncFS támogatja a fájlrendszerek alapvető szemantikáját a következő kivételekkel:

Támogatott operációs rendszerek

A fő EncFS megvalósítást Linux, Mac OS X, FreeBSD operációs rendszerek támogatják. Számos aktív fejlesztésű implementáció létezik Windows alatt [3] [4] [5] [6] .

EncFS használata Linuxon

A titkosított könyvtárak használata nagyon hasonlít bármely más fájlrendszer telepítéséhez Linux alatt. Valódi könyvtár jön létre az összes fájllal, például /home/user/crypt-raw. Létre kell hozni egy csatolási pontot is, legyen az /home/user/crypt. Amikor eléri ezeket a könyvtárakat, feltétlenül használjon abszolút elérési utat (nem csak a /usr/bin/crypt).

Az adatok titkosítása a következő paranccsal történik:

> encfs /home/user/crypt-raw /home/user/crypt A hangerőkulcs nem található, új titkosított kötet jön létre. Jelszó: Ellenőrzés:

Amikor a titkosítás befejeződött, a fájlok a crypt könyvtár használatával érhetők el. A munka befejezése után használhatja a következő parancsot:

> fusermount -u /home/user/crypt

Ez a parancs leválasztja a crypt könyvtárat, így a crypt-raw titkosítva marad.

Előnyök

Az EncFS számos előnnyel rendelkezik a többi merevlemez-partíció-titkosítási rendszerhez képest, mivel minden egyes fájlt külön-külön titkosítanak és normál fájlként mentenek.

  • Az EncFS "kötetek" által elfoglalt lemezterület nem rögzített - a titkosított fájlok számának és méretének változásaitól függően nő és csökken.
  • A beillesztési pont könyvtárában lévő egyes könyvtárak fizikailag különböző eszközökön találhatók.
  • A biztonsági mentési eszközök csak a forráskönyvtárban megváltozott fájlokat tudják frissíteni, a teljes könyvtárat nem.

Hátrányok

  • Az EncFS-kötetek nem formázhatók tetszőleges fájlrendszerrel. Megőrzik a forráskönyvtárat tartalmazó fájlrendszer jellemzőit és korlátait.
  • A titkosított kötet töredezettsége a forráskönyvtárat tartalmazó fájlrendszer töredezettségét okozza.
  • Minden felhasználó, aki hozzáfér a forráskönyvtárhoz, láthatja a titkosított fájlrendszerben található fájlok számát, milyen engedélyekkel rendelkezik, hozzávetőleges méretét, hozzávetőleges névhosszát, valamint az utolsó hozzáférés vagy módosítás dátumát.

Fájlrendszer beállításai

Új EncFS-könyvtár létrehozásakor különféle lehetőségek állnak rendelkezésre.

Titkosító algoritmus

Az EncFS bármilyen titkosítási algoritmust használhat, amely a rendszeren megtalálható. A Blowfish és az AES általában elérhetők .

Ha a titkosítási algoritmus lehetővé teszi a kulcs hosszának kiválasztását, ezt megteheti az EncFS-ben történő használatakor.

Blokkméret

Minden fájl blokkonként titkosítva van, és ez az opció lehetővé teszi a blokk méretének kiválasztását. Amikor egy titkosított fájlból legalább egy bájtot beolvas, a teljes blokk visszafejtésre kerül. Íráskor a blokk először teljes egészében visszafejtésre kerül, majd visszakódolásra kerül.

Az alapértelmezett blokkméret 512, ami a legtöbb esetben elegendő.

Fájlnevek titkosítása

A titkosított fájlok tartalmától eltérően a fájlnevek blokk- vagy adatfolyam titkosítással titkosíthatók. A blokk titkosítás lehetővé teszi a fájlnevek pontos hosszának elrejtését, míg a stream titkosítás pontosan ugyanazt mutatja, miközben helyet takarít meg az adathordozón (bár kicsi).

A teljes fájl útvonalak láncai

Ez az opció lehetővé teszi, hogy a különböző könyvtárakban található fájlneveket eltérő módon titkosítsa, a fájl teljes elérési útja alapján.

Ha azonban a szülőkönyvtárat átnevezi, akkor az összes mögöttes fájl és könyvtár is át lesz nevezve. Ez meglehetősen erőforrásigényes művelet lehet. Ezért nem ajánlott ezt a beállítást használni, ha a szorosan beágyazott könyvtárak gyakori átnevezése várható.

Kezdő vektor fájlokhoz

Ha ez az opció engedélyezve van, akkor minden fájl egy tetszőleges 8 bájtos kezdővektorral van titkosítva, amely a titkosított fájlon belül található. Ha ez az opció le van tiltva, akkor minden fájl ugyanazzal a kezdeti vektorral lesz titkosítva, ami kevésbé ellenállóvá teheti a kulcsot a repedésekkel szemben.

Ennek az opciónak az engedélyezése biztonságosabbá teszi a fájlrendszert, mindössze 8 bájt hozzáadásával minden fájlhoz.

Kezdeményező vektorok külső láncai

Lehetővé teszi a különböző fájlok ugyanazon blokkjainak tartalmának különböző módon történő titkosítását, a fájl teljes elérési útja alapján.

Ennek megfelelően a fájl elérési útjának megváltoztatása megváltoztatja a titkosított tartalmat is.

MAC fejlécek blokkolása

Lehetővé teszi minden egyes titkosított blokk ellenőrző összegének tárolását , hogy az EncFS észlelhesse a titkosított fájl sérülését vagy módosítását. Az ellenőrző összeg 8 bájt hozzáadódik minden blokkhoz. 8 további véletlenszerű bájtot használhat, így két azonos nyitott blokk ellenőrzőösszege eltérő.

Ez az opció többletköltséget ró a CPU -ra , mivel minden egyes blokkot minden olvasáskor vagy íráskor ellenőrizni kell az ellenőrző összegével.

Automatikus leválasztás bizonyos tétlenség után

Ha a titkosított fájlrendszert hosszabb ideig (több percig) nem használták, akkor az automatikusan lecsatolható. A leválasztás nem történik meg, ha legalább egy fájl nyitva van, még olvasásra sem.

Összehasonlítás társaival

Az összehasonlítás a CryptoFS (szintén FUSE alapú) és a LUKS (kernel-implementált) fájlrendszerekkel történt. A CryptoFS és EncFS fájlrendszerek akkor mutatják a legjobb teljesítményt, ha a fájl- és írásméret közel van a Linux rendszerek „natív” oldalméretéhez (4096 KB). Mindkét felhasználói térrendszer eredményei a várakozásoknak megfelelően jelentősen elmaradnak a LUKS titkosítás eredményeitől. Valójában a különféle FUSE absztrakciók és kriptográfiai rendszerek használata további késleltetést ír elő minden olvasási és írási műveletnél. Az EncFS teljesítménye azonban valamivel nagyobbnak bizonyult, mint a CryptoFS [7] .

Lásd még

Jegyzetek

  1. encfs/README.md
  2. Kiadás 1.9.5 - 2018.
  3. EncFSMP (lefelé irányuló kapcsolat) . Letöltve: 2015. október 17. Az eredetiből archiválva : 2015. október 15. 
  4. WEncFS (Windows titkosított fájlrendszer) archiválva 2009. január 8-án a Wayback Machine -nél  – egy befejezetlen projekt az EncFS Windows rendszerre történő portolására
  5. encfs4win archiválva 2011. július 4-én a Wayback Machine -nél  – működőképes projekt az EncFS Windows rendszerre történő portolására (legutóbbi kiadás, 2013)
  6. encfs4win archiválva 2016. november 20-án a Wayback Machine -nél  — Az eredeti projekt Forkja, aktívan fejlesztve (legutóbbi kiadás 2016), a jelenlegi Dokan-verziót használja, githubon tárolva. Archiválva 2017. január 14-én a Wayback Machine -nél
  7. LUKS, EncFS és CryptoFS adattitkosítási rendszerek Linuxhoz (elérhetetlen link) . Letöltve: 2008. december 25. Az eredetiből archiválva : 2009. április 30.. 

Linkek