30.8.12
Server s Linuxem a šifrování disků - Linux E X P R E S
Home » Články » Praxe » Správa linuxového serveru » Správa linuxového serveru: Šifrování s... Předchozí kapitola
Zpět na obsah
Následující kapitola
Správa linuxového serveru: Šifrování s dmcrypt/LUKS Ve třetím díle jsem nakousl teorii diskového šifrování. Dnes na toto téma navážu a podívám se na šifrování trošku blíže.
Čtvrtek, 8. duben 2010 | Autor Michal Dočekal
Zopakujte si: LVM a diskové šifrování
Co lze šifrovat a proč Pomocí dmcrypt/LUKS lze šifrovat jakékoliv blokové zařízení, tzn. diskový oddíl, celý pevný disk, diskové pole (RAID), logický svazek v rámci LVM, atd. Připomínám, že i když se to na první pohled možná nezdá, šifrování jako takové nelze považovat za spolehlivý nástroj pro zajištění bezpečnosti dat před případným útočníkem s fyzickým přístupem k serveru. Nemůže tedy nahradit strážného, který hlídá přístup do serverovny. Důvody jsem popsal již dříve. Může nicméně pomoci ochránit data při likvidaci nebo reklamaci pevných disků, může pomoci zabránit úniku SSH klíčů nebo jiných citlivých údajů ze zcizených laptopů administrátorů, apod.
Jelikož se v současné době začínají masivně rozrůstat možnosti virtualizace, je nutné uvažovat o bezpečnosti takových řešení, a naprosté zbytečnosti šifrování jako ochrany před poskytovatelem virtuálního serveru, jelikož šifrovací klíče jsou uloženy v paměti, a do paměti má obvykle správce virtuálního serveru přístup. Budeteli tedy uvažovat o nasazení šifrování, uvažte pečlivě, jaká data chcete chránit a před kým. Následně
www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-sifrovani-s-dm-crypt-luks
1/5
30.8.12
Server s Linuxem a šifrování disků - Linux E X P R E S
zauvažujte, zdali má šifrování v daném scénáři smysl, a pokud ano, tak jak velký. Jelikož má šifrování negativní dopad na výkon i na případnou záchranu dat z poškozeného pole nebo disku, je třeba pečlivě zvážit, zdali šifrování nasadíte a kam.
Co šifrovat Aby mělo použití šifrování smysl, je třeba zajistit, aby na discích nezůstalo nic z chráněných dat v nešifrované podobě. Proto je každopádně třeba začít se šifrováním swapu. Dále je třeba kromě samotných úložišť citlivých dat zabezpečit i všechna místa, kam by se data mohla dostat. Typicky je to adresář /tmp, pro který bývá dobré využívat buď tmpfs nebo samostatný šifrovaný oddíl. V některých specifických případech to může být kromě obvyklého /home i adresář /var, /srv či jiné umístění. Šifrovat lze samozřejmě jak selektivně (tj. jen to důležité), tak téměř úplně všechno včetně celého systému s výjimkou zavaděče, obrazu jádra a initrd. V prvním případě je nutné dát si pozor na "prosakování" chráněných dat mimo šifrované svazky, ve druhém případě obvykle vznikne problém se zaváděním systému, během kterého bude třeba nějakým způsobem zadat heslo, což třeba u serveru, který je umístěn v nějakém datacentru, a ke kterému přistupujete vzdáleně, působí jistý problém. Ten je možné řešit pomocí malého ssh démona v initrd (třeba dropbear ), který se spustí a umožní správci přihlásit se a zadat heslo vzdáleně. Návod pro toto řešení v rámci distribuce Debian naleznete v článku na debianadministration.org .
Výběr šifry a šifrovacího módu Před samotným nasazením šifrování je třeba připomenout problematiku šifrovacích algoritmů a šifrovacích módů. V zásadě, šifrovací algoritmus byste měli vybírat nejlépe z finalistů AES . Starším šifrám jako DES či Blowfish se doporučuji vyhnout. Se samotným výběrem vám neporadím, jen podotknu, že nejrychlejší implementací je samotný AES/Rijndael, v závěsu za ním pak Serpent a Twofish. Jejich bezpečnost by měla být velmi podobná. Pro diskové šifrování je klíčový výběr vhodného šifrovacího módu. Je totiž nutné šifrovat ohromné kvantum dat, která mají ovšem předvídatelnou strukturu (souborový systém, superblok, atd.), což může případnému útočníkovi usnadnit kryptoanalýzu, i když je samotný šifrovací algoritmus bezpečný. Pro diskové šifrování dnes přichází v úvahu především mód XTS. LRW je vzhledem k jeho objevené zranitelnosti nutné zavrhnout. Pro systémy se staršími jádry, které ještě nemají podporu pro mód XTS, je vhodné použít mód cbcessiv (nikoliv však samotné cbc!). Řada distribucí nabízí v rámci instalátoru možnost postavit šifrovaný systém. Bohužel, tato možnost obvykle neumožňuje precizní nastavení šifrovacího algoritmu a šifrovacího módu, a mnohde bývají výchozí hodnoty nastavené patrně ve snaze zachovat kompatibilitu příliš konzervativně (což je i případ Debianu), tudíž není zvolen výchozí mód XTS, ale třeba cbcessiv. V takových případech je tedy vhodnější postavit šifrovaný systém ručně, neboť šifrovací mód na existujícím šifrovaném svazku měnit nelze.
Alternativy pro šifrování v GNU/Linuxu Pro diskové šifrování v GNU/Linuxu je ideální používat dmcrypt/LUKS, nicméně v oblasti šifrování to není jediný prostředek, který mají uživatelé k dispozici. Představím vám několik alternativ, ať už pro diskové šifrování, tak pro šifrování obecně.
www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-sifrovani-s-dm-crypt-luks
2/5
30.8.12
Server s Linuxem a šifrování disků - Linux E X P R E S
dmcrypt Asi nejjednodušší alternativou dmcrypt/LUKS je dmcrypt jako takový. Jeho asi jedinou výhodou (chceteli se na to tak dívat) oproti jeho kombinaci s LUKSem je absence hlavičky, která dané blokové zařízení nezaměnitelně označí jako šifrované. Oproti LUKS nadstavbě má však řadu citelných nevýhod, počínaje nutností celý oddíl přešifrovat při změně hesla přes nemožnost použít více než jedno heslo až po absenci posílení hesla metodou PBKDF2.
Truecrypt Nejvíce zmiňovanou alternativou pro dmcrypt/LUKS je Truecrypt, zejména kvůli přenositelnosti šifrovaných kontejnerů mezi GNU/Linuxem a MS Windows. V dnešní době je Truecrypt schopen využívat přímo linuxové CryptoAPI a vytváří přímo blokové zařízení prostřednictvím Device Mapperu, což jej řadí blízko k dmcryptu a LUKS. Samotný Truecrypt nabízí uživatelům pěkné grafické rozhraní, stejně jako možnost jej ovládat přes příkazový řádek. Jeho výhodou oproti dmcrypt/LUKS jsou skryté svazky uvnitř šifrovaného svazku a s tím související "plausible deniability" aneb možnost "hodnověrného popření" skryté svazky využívají steganografii , měly by tudíž být neviditelné, pokud připojíte pouze samotný šifrovaný svazek (a nikoliv skrytý svazek v něm ukrytý). V Truecryptu pro GNU/Linux je tato funkcionalita podporována, ale pouze s použitím souborového systému FAT, což může být o něco "nápadnější" než v případě MS Windows. Obzvláště pak, když Truecrypt jinak bez problémů umožňuje vytvářet kontejnery s Ext2/Ext3. Je nutné dodat, že licence Truecryptu je mnohými distribucemi (Debian , Fedora a další) považována za nesvobodnou a mj. pro distributory potenciálně problematickou. Proto třeba nenajdete Truecrypt v oficiálních repositářích Debianu.
encfs Další alternativou je encfs (web projektu ) využívající FUSE. Jeho výhodou i nevýhodou zároveň (záleží na úhlu pohledu) je funkce "nad" existujícím souborovým systémem, nikoliv "pod" ním jako v případě ostatních zmíněných řešení. Šifrují se tedy přímo vlastní data, včetně názvů souborů a adresářů. Potenciálním problémem je zachování metadat (velikost souboru, datum vytvoření a poslední modifikace, atd.) pro
www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-sifrovani-s-dm-crypt-luks
3/5
30.8.12
Server s Linuxem a šifrování disků - Linux E X P R E S
případného útočníka. To sice nemá přímý bezpečnostní dopad ve smyslu usnadnění kryptoanalýzy, ale může to v některém případě odhalit jisté informace, které by nebyly k dispozici, kdyby byl zašifrovaný celý souborový systém. Encfs se však výborně hodí pro různé síťové disky a podobné online služby, kde příslušná data nemáte pod kontrolou a nevíte, kdo má k nim přístup. Jistě, je možné použít šifrovaný kontejner, ale to nemusí být zcela efektivní z hlediska využitého prostoru, který je v rámci daných služeb obvykle velmi omezený.
GnuPG GnuPG je běžnou součástí distribucí a umožňuje jak šifrování souborů asymetrickým klíčem, tak šifrování běžnou, blokovou šifrou. Pomocí GnuPG lze tedy snadno zašifrovat nějaký soubor buď k přenosu přes nezabezpečenou síť nebo pro uložení na nějaké médium či síťový disk. GnuPG využívá, kupříkladu, zálohovací nástroj Duplicity , který umožňuje vytvářet na místním či vzdáleném úložišti šifrované zálohy.
Jak poskládat RAID, LVM a dmcrypt/LUKS? Na závěr tohoto dílu navážu na předchozí tři díly, které se věnovaly LVM. Pokud se podíváme na možnosti uložení, zabezpečení a organizace dat, máme bloková zařízení (pevné disky), z těch můžeme vytvářet disková pole, z disků i diskových polí pak můžeme vytvářet skupiny svazků a logické svazky, přičemž šifrovat můžeme v podstatě kdekoliv. Základ v každém případě tvoří pevné disky nebo disková pole. U serverů je velmi vhodné použít diskové pole s redundancí k zajištění jisté odolnosti vůči výpadku. V případě většího množství disků, kde je velmi vhodné použít různé disky od různých výrobců, je možné použít RAID 10 (RAID 0 na jednotlivých párech zrcadlených disků). RAID 10 nebo 01 dosahuje optimálního kompromisu mezi výkonem a redundancí, ale potřebuje minimálně 4 disky. LVM je velmi vhodné provozovat z hlediska bezpečnosti dat nad diskovým polem s redundancí a používat jej spíše jen k rozdělení dostupného prostoru do logických svazků, snapshotům, apod. dmcrypt/LUKS je ideální umístit buď mezi diskové pole a LVM nebo nad LVM (šifrovat logický svazek). Přidáním dalšího disku nebo disků lze pak postupně krok za krokem dostupný prostor rozšířit (dm crypt/LUKS podporuje operaci resize a u LVM to zvládne pvresize). Šifrovat lze samozřejmě i pod softwarovým RAIDem, což bývá i doporučeno, jsouli pevné disky příliš velké (příliš mnoho dat šifrovaných jedním postupem usnadňuje případnou kryptoanalýzu). Nutnost "odemknout" více zařízení může vyřešit malý šifrovaný oddíl na jednom z disků, který obsahuje klíče k "odemčení" zbylých disků v poli. Co se týče ostatních kombinací, provozovat softwarový RAID nad LVM je sice možné, ale naprosto nesmyslné a potenciálně problémové, a provozovat LVM bez RAIDu na více discích je nevhodné stoupá pravděpodobnost selhání jednoho z disků a selhání kteréhokoliv z disků znamená ztrátu dat. Pokud byste používali zrcadlení v rámci LVM, je podle mého lepší využít rovnou softwarový nebo hardwarový RAID. Tím bych tento díl ukončil. Příště už proberu dmcrypt/LUKS z ryze praktického hlediska. Předchozí kapitola
Zpět na obsah
www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-sifrovani-s-dm-crypt-luks
Následující kapitola
4/5
30.8.12
Server s Linuxem a šifrování disků - Linux E X P R E S
Odkazy Pokud si chcete přečíst více o této problematice, navštivte tyto odkazy: Wikipedia: Disk encryption theory Linux unified key setup (LUKS) Dmcrypt
Přidat názor Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu
www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-sifrovani-s-dm-crypt-luks
5/5