přejít na obsah přejít na navigaci

Linux E X P R E S, ZuluCrypt

ZuluCrypt

zamek.png

Potřebujete-li šifrovat nejen lokální data, je ZuluCrypt možná tím pravým nástrojem, který vám v tomto chvályhodném počinu bude výborně napomáhat. Jedná se o grafickou nadstavbu pro práci s robustním nástrojem dm_crypt/LUKS a dokonce mu nejsou cizí TrueCrypt kontejnery. S tímto GUI se šifrování výměnných médií stává jednoduchou záležitostí.


Úvodem

Stále přibývá uživatelů, kteří chrání svá lokální data šifrováním a Linux jim nabízí mnohé možnosti. Někteří mají kompletně šifrovaný harddisk pomocí dm_crypt/LUKS a jiní alespoň využívají ochranu domovského adresáře skrze EncFS. V době miniaturních flashdisků s kapacitou několika GB, je však vhodné chránit i data na těchto médiích. Není až tak těžké ztratit něco malého, co váží několik desítek gramů.

Pominu-li ukončený TrueCrypt, bylo pro mnohé uživatele jednodušší používat pro šifrování výměnných médií zmíněný EncFs, protože jej lze ovládat jednoduchým GUI (Cryptkeeper). Osobně jsem raději volil pro data na flashdisku dm_crypt/LUKS, ale příkazová řádka není to pravé ořechové, obzvlášť máte-li takových flashdisků několik. GUI ZuluCrypt velmi usnadní nejen vytváření, ale i správu výměnných a lokálních médií, byť se zpočátku příkazovému řádku nevyhnete.

Instalace ZuluCrypt

Již jsem zmínil v úvodu nutnost použití příkazového řádku. Bohužel ZuluCrypt není distribuován v podobě deb balíčků a ani s rpm se moc nesetkáte (jsou pro Fedoru18 a OpenSuse). Nezbývá než kompilace ze zdrojových souborů, které stáhnete zde (zuluCrypt-4.7.2.tar.xz).

Kompilace není nikterak složitá a zabere cca 5 minut. Důležitým faktorem však je, jaké vymoženosti od ZuluCrypt požadujete. Ne každý Linux vám v základu umožní využít všech možností tohoto grafického prostředí, proto budu nadále v textu odkazovat na zkušenosti s GUI na Debianu 7.5 a Mintu 17.

Pro kompilaci budete potřebovat následující balíčky:

  • libblkid-dev (nainstaluje i uuid-dev, který je také potřebný)
  • libqt4-dev (GUI je postaveno na Qt)
  • gcc
  • g++
  • cmake
  • cryptsetup-dev (diskové šifrování - nutné)
  • libtcplay-dev (požadujete-li vytváření TrueCrypt kontejnerů – vyžaduje cryptsetup-dev verze 1.6)
  • libgcrypt11-dev (knihovna pro šifrování – nutné / můžete použít i libgcrypt20-dev, máte-li instalován libgcrypt20)
  • libsecret-1-dev (pouze chcete-li využít klíčenku z GNOME pro hesla)
  • kde-dev (pouze chcete-li využít klíčenku z KDE pro hesla)
  • pkg-config
  • libdevmapper-dev

Debian a libtcplay-dev

Pokud potřebujete v Debianu vytvářet a spravovat TrueCrypt kontejnery, je nejjednodušší zůstat u TrueCrypt 7.1a, protože knihovna libtcplay-dev se nachází ve větvi testing a sid. Složitější a mnohem nebezpečnější cestou je vytvoření souboru /etc/apt/apt.conf (jako superuživatel), do kterého vložíte následující text:

APT::Default-Release "wheezy";

Po uložení souboru zadáte do terminálu jen apt-get update a můžete instalovat výše zmíněné balíčky v aktuální verzi. Jistým nebezpečím je povýšení knihoven libc6cryptsetup z 1.4.3 na 1.6.x. Neopomeňte si zálohovat systém, obzvlášť pokud jej máte šifrovaný.

Máte-li instalováno vše potřebné, nastal čas pro kompilaci aplikace. Rozbalte stáhnutý archiv se zdrojovými soubory (aktuální verze 4.7.2) a ve vzniklém adresáři si prohlédněte v souboru BUILD_INSTRUCTIONS možnosti kompilace aplikace.

V příkazovém řádku se přesuňte do zmíněného adresáře a zadejte:

$ mkdir build
$ cd build

(následující volby jsem použil při kompilaci – soubor BUILD_INSTRUCTIONS vám napoví)

$ cmake -DCMAKE_INSTALL_PREFIX=/usr/ -DNOKDE=true -DNOGNOME=true -
DHOMEMOUNTPREFIX=true -DCMAKE_BUILD_TYPE=RELEASE . ..

$ make

(v Debianu místo sudo použijete příkazu su a poté make install)

$ sudo make install

Po instalaci zadejte ještě příkaz:

$ zuluCrypt-cli --test

Objeví-li se u všech testů PASSED, je vše v pořádku a můžete začít využívat grafické prostředí ZuluCrypt.

Začátky se ZuluCrypt

Okno aplikace je jednoduché, plně dostačující svému účelu. Tvorba šifrovaných kontejnerů nebo celých oddílů je práce na několik kliknutí.

GUI aplikace GUI aplikace

Šifrovaný kontejner

Jako první si ukážeme tvorbu šifrovaného kontejneru s LUKS, který má možnost využívat až osm klíčů pro přístup k datům. Vyberte z menu create > encrypted container in a file. V následujícím okně vyplňte pouze název šifrovaného kontejneru a určete jeho velikost. Tu můžete určovat v jednotkách KB, MB a GB. Stiskem tlačítka create se přesunete do dalšího okna.

Název a velikost šifrovaného kontejneru Název a velikost šifrovaného kontejneru

Kontejner je vytvořený, ale je potřebné nastavit jeho vlastnosti zabezpečení. Jak patrno z obrázku, můžete kontejneru nastavit heslo (key), nebo umožnit přístup k datům pomocí souboru (keyfile), což může být certifikát, klíč, textový soubor atd.

Vlastnosti pro zabezpečení kontejneru Vlastnosti pro zabezpečení kontejneru

Ponecháte-li volbu key (heslo), jsou pole pod touto volbou určena pro zadání a opakování hesla. Na obrázku je použito soukromého klíče (vytvořen v OpenSSL – RSA 4096 b), kdy místo hesla zadáváte cestu k souboru.

Volume type určuje druh kontejneru. Na výběr je plain (samotný dm_crypt – nikdo vám nedokáže, že se jedná o šifrovaná data), luks (dm_crypt s nadstavbou LUKS – rozšiřuje možnosti nejen o používání klíčů) a máte-li aplikaci kompilovanou s podporou pro TrueCrypt, naleznete zde i možnost vytvoření jednoduchého i pokročilého (se skrytým kontejnerem) TrueCrypt kontejneru.

Pod volume type se nachází (na obrázku neaktivní) volby pro pokročilý TrueCrypt kontejner, kde určujete vlastnosti zabezpečení skrytému kontejneru.

Nad tlačítky createcancel si určíte souborový systém kontejneru a generátor pro naplnění kontejneru pomocí náhodných čísel.

Poznámka: Pro kontejnery a celé šifrované flashdisky není vhodné používat žurnálovacích souborových systémů (ext3, ext4 atd.). Potřebujete-li přenositelnost mezi Linuxem a Windows, zvolte raději FAT32. Pro čistě linuxové uživatele je výhodnější ext2 (nemá taková omezení na velikost souboru jako FAT32).

Tlačítkem create se vám vytvoří šifrovaný kontejner a jako poslední okno se zobrazí doporučení o zálohování LUKS hlavičky.

Manipulace s kontejnerem

Šifrovaný kontejner již máte vytvořený. Připojení je také otázkou několika kliknutí. Menu open > encrypted container in a file vám zpřístupní vyhledání kontejneru a nastavení potřebného pro jeho dešifrování. Zde je vhodné zmínit, že kompilace s volbou -DHOMEMOUNTPREFIX=true bude veškerá média (kontejnery, oddíly) připojovat do vašeho domovského adresáře. Pokud tedy máte šifrovaný kontejner v domovském adresáři, musíte položku mount name pozměnit.

Připojení šifrovaného kontejneru Připojení šifrovaného kontejneru

Po úspěšném připojení kontejneru se v hlavním okně ZuluCrypt objeví položka obsahující informace o připojení. Nyní můžete v kontejneru manipulovat s daty ve svém správci souborů nebo jej v ZuluCrypt spravovat (záloha/obnova LUKS hlavičky, manipulace s klíči, přidání do oblíbených atd.).

Šifrovaný oddíl (flashdisk)

Zde se tvorba liší pouze na začátku při výběru zařízení. Chcete-li se ZuluCrypt šifrovat celé oddíly i na harddisku (flashdisk není považován za systémový, proto jej v nabídce vždy naleznete),  kompilujte ZuluCrypt bez parametru -DUDEVSUPPORT=true, neboť udev identifikuje externí harddisky jako systémové a jsou v tomto případě z nabídky ZuluCrypt vynechány.

Menu  create > encrypted container in a partition vám zpřístupní výběr všech dostupných oddílů.

Výběr z dostupných oddílů Výběr z dostupných oddílů

Z obrázku je patrné, že mi ZuluCrypt nabízí pracovat se systémovým diskem (sda), flashdiskem (sdc) a externím harddiskem (sdd).  Tlačítko use uuid použije pro další práci s médiem jeho jednoznačnou identifikaci (uuid) místo názvu zařízení (/dev/sdX). Externí média nesmí mít v systému přípojný bod, pokud je chcete v tomto seznamu pro výběr.

Dvojklikem na řádku (v mém případě flashdisk=/dev/sdc) s požadovaným médiem si nejprve zpřístupníte bezpečné smazání (přepis) dat.

Varování před bezpečným smazáním dat Varování před bezpečným smazáním dat

Tuto volbu potvrďte (pokud jste si jisti :-) ) a následuje další varování před spuštěním přepisu dat na médiu.

Poslední varování před přepisem média Poslední varování před přepisem média

U tohoto varování můžete tlačítkem no přeskočit bezpečné přepsání dat na médiu a začít s nastavováním šifrovaného oddílu, které je shodné jako v případě nastavení vlastností šifrovaného kontejneru.

Tlačítkem yes započne přepis dat na médiu (pravděpodobně pomocí /dev/random), což může trvat i několik desítek minut. Naštěstí lze tento přepis kdykoliv přerušit a začít s nastavením šifrování.

Dokončení a následná manipulace se šifrovaným oddílem je shodná jako v příkladu se šifrovaným kontejnerem, jen pro připojení oddílu vyberete menu  open > encrypted container in a partition.

Funkce ZuluCrypt

Jedná se o přímočaré funkce, proto jen ve zkratce s několika subjektivními poznámkami.

zC :

  • obnova seznamu připojených médií (update volume list)
  • zavření všech připojených médií (close all opened volumes)
  • smazání dat (erase data in a device) – kontejner, nebo médium nesmí být v ZuluCrypt připojeno
  • šifrování/dešifrování souboru (encrypt/decrypt a file) – zašifruje samostatný soubor – takový soubor se mi podařilo dešifrovat pouze pomocí ZuluCrypt, což může být limitující při přenosu. Zřejmě se jedná o gpg šifrování, ale to nemám ověřené.

open – create:

  • připojování a vytváření šifrovaných kontejnerů a oddílů
  • tvorba klíče pro šifrování – jedná se o velmi pokročilé heslo v běžném textovém souboru

volumes:

  • přidání klíče pro LUKS (luks add key)
  • odebrání klíče z LUKS (luks delete key)
  • zálohování hlavičky (backup volume header) - LUKS, TC – záloha/obnova bezproblémově funguje (cca 30 pokusů), ale ZuluCrypt používá pro zálohu vlastní formát a proto raději nadále zůstávám u příkazového řádku a programu dd
  • obnovení hlavičky ze zálohy (restore volume header) - LUKS, TC

Pod ostatními volbami naleznete pouze seznam oblíbených médií, nastavení tohoto seznamu, vytvoření "klíčenky" pro oblíbená média (pokud nepoužíváte klíčenky z GNOME/KDE) a pod menu help je k dispozici několik informací (i o použitém výchozím šifrování).

Podle autora aplikace by ZuluCrypt neměl mít problém s LVM ani s raidem. Sice jsem tyto možnosti netestoval, ale jelikož GUI využívá standardních nástrojů (backend je dm_crypt/LUKS), nemám důvod být v tomto ohledu skeptický.

ZuluCrypt vs TrueCrypt

Kontejnery typu TrueCrypt (jednoduché i pokročilé), vytvořené v ZuluCrypt plně fungovaly v aplikaci TrueCrypt 7.1a. Stejně tak kontejnery vytvořené v aplikaci TrueCrypt (použito výchozí i pozměněné nastavení šifrování) jsou v ZuluCrypt bez problému rozpoznány a provozuschopné.

Závěr

Osobně jsem na takovouto aplikaci velmi dlouho čekal. ZuluCrypt je rychlý, přehledný a jednoduchý, což jistě napomůže začínajícím uživatelům. Žádné omalovánky se nekonají, stejně tak výchozí nastavení ohledně šifrování jsou optimální.

Ano, jako zkušenější uživatel bych mohl namítat, že právě volba druhu šifrování je to, co nutně potřebuji pro bezpečí svých dat, že šifrování jednotlivých souborů je nedostatečné (jak jej dešifrovat bez ZuluCrypt?), ale proč bych si měl stěžovat? Tak přímočaré GUI pro mnou oblíbené dm_crypt a jeho nadstavbu v podobě LUKS jsem opravdu dlouho hledal, a na složitější věci mám příkazový řádek :-)

Co více si přát od takové aplikace, než licenci GPL, pilíř linuxové bezpečnosti jako základ a pokračující vývoj.

Nahoru

Odkazy

Příspěvky

Jiří Němec ZuluCrypt
Jirka Němec 21. 08. 2014, 17:05:26
Odpovědět  Odkaz 
Tak tohle vypadá dobře, mám openSUSE, takže balíčky pro moje distro jsou .... ale nějak to stejně nejede :).

zuluCrypt-cli --test

WARNING: "loop" kernel module does not appear to be loaded
tests and opening of encrypted containers in files will fail if the module was not built into the kernel

creating testing images
creating a keyfile
creating a keyfile

create a luks type volume using a key: FAILED
ERROR: a non supported device encountered,device is missing or permission denied
Possible reasons for getting the error are:
1.Device path is invalid.
2.The device has LVM or MDRAID signature
Lukáš Jelínek Re: ZuluCrypt
Lukáš Jelínek 21. 08. 2014, 17:17:00
Odpovědět  Odkaz 
To vypadá, jako kdyby nebyl do jádra načten modul "loop". Je uveden na výpisu modulů (příkaz "lsmod")? Pomůže jeho ruční zavedení příkazem "modprobe loop"?
ZuluCrypt
Debianer 23. 08. 2014, 04:16:44
Odpovědět  Odkaz 
Pokud budete mit problem zkompilovat zulu (jako ja, nemohu nainstalovat libgcrypt11-dev v Debianu Wheezy kvuli dependencies problem :-( ), jako jedna zajimava z alternativ se jevi: Luksus:
https://thomasfrivold.github.io/luksus/

Asi si budu muset pockat na stable release .deb balicku :-\

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz