dm-krypta

dm-crypt je kryptografický modul mapovače zařízení v linuxovém jádře . Pomocí dm-crypt lze data šifrovat a dešifrovat pomocí různých algoritmů, které lze použít na jakékoli soubory zařízení , ve většině případů na oddíly, pevné disky nebo logické jednotky ( LVM ). Mezi (šifrovanými) (surovými) daty a systémem souborů se zde vytvoří další vrstva. To se pro uživatele provádí zcela transparentně . dm-crypt je vhodný pro šifrování pevného disku (diskové oddíly, celé pevné disky, ale také všechna ostatní blokově orientovaná zařízení, jako jsou logické jednotky (LVM) nebo smyčková zařízení). dm-crypt podporuje různé šifrovací algoritmy, protože používá linuxové jádro Crypto API.

Dalším přístupem je (transparentní) šifrování souborů , ve kterém je systém souborů odpovědný za šifrování a dešifrování.

aplikace

  • Šifrování pevného disku k ochraně citlivých dat před (offline) krádeží (zejména u mobilních zařízení, jako jsou notebooky ).
  • Ochrana před obnovením dat po prodeji nebo likvidaci datových nosičů. Jinak by pro bezpečné odstranění dat byly někdy nutné složité postupy, například přepsání nebo fyzické zničení datového nosiče.

Parametry šifrování

dm-crypt podporuje různé šifrovací algoritmy a provozní režimy. Jsou uvedeny ve speciálním formátu (volitelné části jsou uvedeny v hranatých závorkách):

cipher [: keycount ] - chainmode - ivmode [: ivopts ]

Jednotlivá pole znamenají:

šifra
Název použitého šifrovacího algoritmu. Například aes,twofish
počet klíčů
volitelné pole pro šifrování pomocí více klíčů (aby bylo kompatibilní se smyčkami)
řetězový režim
Režim šifrování, např. B. ecb,cbc
ivmode
Typ inicializačního vektoru, pokud to režim šifrování vyžaduje. Příklady: plain, essiv,lmk
ivopts
Volitelný parametr pro ivmode, je-li požadován. z. B. hash použitý v esenčním režimu:sha256

Příklady:

twofish-ecb Algoritmus Twofish v režimu ECB (nedoporučuje se)
aes:64-cbc-lmk Algoritmus AES v režimu CBC , v režimu 64 kláves, s inicializační vektorovou metodou kompatibilní se smyčkami
aes-cbc-essiv:ripemd160   AES v režimu CBC, přičemž inicializační vektory se počítají pomocí hashového algoritmu RIPEMD-160

Rozšíření o LUKS

Běžným rozšířením je LUKS („Linux Unified Key Setup“), který k šifrovaným datům přidává záhlaví, ve kterém jsou uložena metadata a až osm klíčů. Výhody oproti „čisté“ dm-kryptě jsou: standardizovaný formát, informace o typu šifrování v záhlaví, alokace až osmi klíčů a změna a vymazání klíčů bez přepisování šifrovaných dat.

Vzhledem k tomu, že záhlaví, které LUKS zapisuje do kontejneru, obsahuje jasný textový identifikátor, použité šifrovací a hash algoritmy a velikost hlavního klíče, lze kontejnery LUKS rozpoznat automaticky a snadno. Také zpřístupňuje šifrování třetím stranám a útočným programům. Tím je důvěryhodná popíratelnost obtížná nebo dokonce nemožná. Záhlaví LUKS včetně klíčových dat také snižuje využitelný úložný prostor na médiu o 1028 KiB (standardní nastavení). Na rozdíl od centrálních metadat různých souborových systémů, jako je B. superblok na ext2 , tato data, která jsou důležitá pro provoz datového nosiče, nejsou uložena v distribuované replikaci na médiu. Pokud jsou přepsána nebo je již nelze číst kvůli hardwarové vadě, nelze již dešifrovat uživatelská data na médiu bez zálohy záhlaví (což umožňuje program pro správu cryptsetup ).

Formát na disku

Oddíl pevného disku šifrovaný pomocí LUKS má následující záhlaví (vícebajtové hodnoty se ukládají ve formátu Big Endian, identifikátory prostého textu jsou vyplněny nulovými bajty, pokud jsou kratší než zamýšlený úložný prostor):

Záhlaví LUKS1
Ofset Datový typ obsah
000 000 hex char [6] Magické číslo {'L', 'U', 'K', 'S', 0xBA, 0xBE}
006. 006 hex uint16_t LUKS verze (aktuálně vždy 0x0001)
008. 008 hex char [32] Název šifrovacího algoritmu (např. „Twofish“ nebo „aes“)
040 028 hex char [32] Název režimu šifrování (např. „Cbc-essiv: sha256“)
072 048 hex char [32] Název hashovací funkce (např. „Sha1“ nebo „ripemd160“)
104 068 hex uint32_t Odsazení dat (v sektorech)
108 06C hex uint32_t Počet klíčových bajtů
112 070 hex char [20] Kontrolní součet hlavního klíče PBKDF2
132 084 hex char [32] Sůl hlavního klíče PBKDF2
164 0A4 šestihran uint32_t Počet iterací PBKDF2 (výchozí: 10)
168 0A8 šestihran char [40] UUID oddílu (v obvyklém hexadecimálním formátu, např. „504c9fa7-d080-4acf-a829-73227b48fb89“)
208 0D0 hex (48 bajtů) Keyslot 1 (viz níže)
...
544 220 hex (48 bajtů) Keyslot 8 (viz níže)
592 bytů celkem

Každý z osmi klíčových slotů má následující formát:

Formát slotu klíče LUKS
Ofset Datový typ obsah
00 uint32_t Stav: Aktivní = 0x00AC71F3; Neaktivní = 0x0000DEAD
04. místo uint32_t Počet iterací pro PBKDF2
08. char [32] Sůl pro PBKDF2
40 uint32_t Spusťte sektor klíčových dat
44 uint32_t Počet anti-forenzních pruhů (výchozí: 4000)
48 bytů celkem

Porovnání LUKS versus jednoduchá dm-krypta

Následující seznam si nenárokuje úplnost. Relevance jednotlivých vlastností se také liší v závislosti na zamýšleném použití, takže tento seznam neumožňuje obecně platné vyhodnocení LUKS.

Záhlaví prostého textu
Pro umožňuje skripty bez externí konfigurace pro automatickou integraci datového kontejneru
Contra brání věrohodné popírání
Contra vyžaduje místo na datovém nosiči; To znamená, že 1: 1 kopie sektoru (nešifrovaného nebo přímo použitého jako úložného prostoru) datového nosiče / oddílu v šifrovaném kontejneru LUKS stejné velikosti není možná; cílová jednotka (pro kontejner LUKS) musí být odpovídajícím způsobem větší.
Nevýhody V případě chyb v sektoru záhlaví (které přímo ovlivňují klíčová data) je téměř nemožné obnovit zbývající data bez zálohy záhlaví, i když je lze stále číst (šifrovat).
Nastavení klíče
Profesionální soli pro klíče a hlavní klíče ztěžují útoky s předpočítanými hashy
Pro PBKDF2 vyžaduje zvýšené výpočetní úsilí kvůli iteracím , které zpomalují slovníkový útok v libovolném konfigurovatelném rozsahu (ale ve stejném rozsahu jako integrace svazku)
Contra PBKDF2 vede k znatelnému zpoždění při integraci kontejneru na pomalých počítačích (zadaný čas se odpovídajícím způsobem vynásobí)
Klíčové sloty
Pro umožňuje více hesel / přístupových frází na datový kontejner, které lze také snadno změnit a odstranit
Contra zabírají místo na disku; To znamená, že sektorově kopie 1: 1 nezašifrovaného datového nosiče v šifrovaném kontejneru LUKS (např. Pro zálohy) stejné velikosti není možná
Contra sám přítomnost několika Keyslots a mezer v Keyslotliste ukazují podrobnosti o použití kontejneru dat.

LUKS2

Od linuxového jádra verze 4.12 existuje nová verze LUKS, která nabízí některé nové funkce:

  • Authenticated Encryption - vyžaduje funkci „dm-integrity“, která byla také zavedena s jádrem verze 4.12, aby bylo možné uložit další metadata na sektor.
  • Funkce odvození hesla Argon2 (ve variantách Argon2i a Argon2id), která ztěžuje paralelní útoky hrubou silou
  • Metadata a záhlaví jsou nyní ve formátu JSON a lze je ukládat redundantně a také na samostatných datových nosičích.
  • Podpora externích úložišť klíčů a metod ověřování
  • Konverze z LUKS1 na LUKS2 (a naopak) je možná za běhu, za předpokladu, že nejsou použity žádné nové funkce LUKS2.

nevýhoda

Propustnost

Vzhledem k dalšímu výpočetnímu úsilí šifrovacích algoritmů, stejně jako u jakéhokoli šifrování pevného disku prováděného v softwaru, mohou nastat ztráty výkonu: datová propustnost je ve srovnání s nešifrovanými datovými nosiči snížena. Vylepšení lze dosáhnout rychlejšími procesory, vícejádrovými procesory , optimalizací algoritmů pro příslušnou architekturu nebo implementací jako hardwarové šifrování.

Kryptografická chyba zabezpečení

Kryptografické útoky jsou částečně myslitelné na data šifrovaná pomocí dm-crypt:

Alternativy a porty

S FreeOTFE byla implementace pro Windows kompatibilní s LUKS do roku 2013 . Zdrojový kód byl přenesen do DoxBoxu, který byl v roce 2015 přejmenován na LibreCrypt z verze 6.2ß. LibreCrypt běží na Microsoft Windows 10 a zdrojový kód lze stáhnout z GitHubu.

VeraCrypt je alternativní produkt pro Windows a Linux, který je funkčně téměř srovnatelný .

literatura

webové odkazy

Individuální důkazy

  1. dm-crypt: kryptografický cíl mapovače zařízení s jádrem Linuxu. Citováno 23. dubna 2013 .
  2. Specifikace formátu LUKS na disku. (PDF) Verze 1.2.2. Citováno 19. března 2017 .
  3. gitlab.com (PDF)
  4. Nastavení šifrování pevného disku Linux , anglicky
  5. Dodatek A: Historie verzí ( anglicky ) GitHub, Inc. Zpřístupněno 14. března 2019.