Browsed by
Tag: keepass

KeePass bezpečnost – část druhá

KeePass bezpečnost – část druhá

Minulý článek bylo takové nakousnutí toho, co všechno je potřeba pořešit pro kvalitní zabezpečení kritických dat. Dneska bych se chtěl věnovat tomu, jak vytvořit opravdu bezpečné úložiště pro Vaše data a přitom mít možnost ho mít kdekoli v cloudu. To jsou totiž většinou dva největší protiklady. Naštěstí je způsob, jak toto skloubit.

Odpovědí je aplikace KeePass a Dropbox (nebo kterékoli jiné synchronizované úložiště). Úplně slyším, jak teď většina z Vás říká cosi o tom, že je pěkná blbost dát do Dropboxu super-bezpečná data. Kupodivu to blbost není. Pojdmě na to.

Začnu KeePassem. Jak jsem už psal, jde o free a open-source bezpečnostní program, který umožňuje bezpečně a strukturovaně ukládat informace. KeePass tu je již řadu let a za tu dobu získal spoustu ocenění a certifikací, takže ho lze považovat za bezpečný.

V základu není KeePass nic jiného, než jakási kartotéka, kde můžete do složek přidávat položky. Ke každé položce můžete přiřadit uživatelské jméno, heslo, poznámku, url a pak hromadu dalších informací. Všechna zadaná data KeePass ukládá do jednoho souboru, který může (a měl by být) být zašifrován.

V základu umožňuje KeePass zašifrovat soubor pouze heslem, což není špatné, ale abychom dosáhli požadované super-bezpečnosti, muselo by být heslo raději opravdu dlouhé. Problém dlouhého a složitého hesla je pak v jeho zadávání. Je to zdlouhavé a otravné.

A tady přicházejí na řadu pluginy (rozšíření) do KeePassu. Díky nim lze do KeePassu doplnit obrovské množství dalších funkcí.

To, co jako první do KeePassu doplníme, je podpora pro Yubikey. Způsobů, jak Yubikey do KeePassu integrovat je více, ale nejlépe mi vychází integrace skrz Challenge-Response protocol, který Yubikey podporuje. Zároveň je možné nastavit stejné heslo do více Yubikey, takže není nutné přenášet jeden fyzický klíč, ale lze použít neomezené množství klíčů.

Abych trošku vysvětlil, o co jde. Zabezpečení Challenge-response spočívá v tom, že máte nějaký tajný klíč, který nahrajete jak do Vašeho Yubikey (viz dále), tak ho nastavíte do KeePassu. Během přihlašování pak KeePass vygeneruje náhodný řetězec, který do Yubikey pošle a nechá ho v Yubikey zašifrovat (klíčem, který jste tam původně nastavili). Yubikey poté náhodný řetězec vrátí a KeePass ho porovná s hodnotou, kterou sám vypočítal pomocí tajného klíče. Tím ověří, že Yubikey zná správné heslo. Zároveň ale toto tajné heslo nikdy neopustí ani KeePass, ani Yubikey. Prosté a jednoduché :).

Díky tomu přidáváte velkou část zabezpečení, aniž byste museli cokoli složitého psát. Zároveň se ale nelze obejít úplně bez hesla. Důvod je, že (alespoň u nás doma) zůstavají Yubikey zastrčené v PC. Představa přenášení a neustálého odpojování nebyla akceptována z důvodu snadného použití. Proto je potřeba pořešit ještě situace, kdy by Vám někdo ukradl notebook včetně Yubikey. Bez hesla by najednou existoval způsob, jak se Vám do Vašich dat dostat.

A proto je potřeba přidat ještě heslo. Ale to už nemusí být extra složité. A to ze dvou důvodů. Zaprvé, díky Yubikey klíči už nelze tak snadno použít brute-force útok (automatické tipování miliard kombinací), jelikož pro každé vygenerování hesla z Yubikey je potřeba ručně stlačit tlačítko na klíči. A zadruhé, v případě krádeže se o ni pravděpodobně vcelku rychle dozvíte a můžete provést náležitá protiopatření, takže i kdyby se nějaký útok uskutečnil, než proláme i to jednoduché heslo, vy už budete mít dávno kritické přístupy změněny.

Třetí obrovský benefit napojení Yubikey na KeePass je v tom, že se do KeePassu nelze přihlásit na dálku. Představme si scénář, kdy se Vám do počítače dostane škodlivý kód, který odposlouchává všechny Vaše stisky kláves a zároveň umožňuje ovládání Vašeho počítače někomu cizímu. I když tento účastník uvidí, co píšete za heslo, tak on nebude schopný se na dálku do Vašeho KeePasu dostat. Je to proto, že aby Yubikey vygeneroval challenge-response heslo, je nutné se fyzicky dotknout klíče. A tím totálně eliminuje vzdálený útok.

Jak vidíte, zabezpečení KeePassu jen heslem je o dost méně bezpečné.

  • Kdokoli může zkoušet náhodný útok přes všechny možné hesla. A i když to bude trvat, udělat takový útok lze.
  • Kdokoli, kdo odposlechne stisky Vaši klávesnice, se může poté na dálku přihlásit do Vašeho KeePasu.
  • Heslo je potřeba mít dostatečně dlouhé a složité, což ale zase dost komplikuje jeho využití, když ho máte zadávat několikrát denně.

Poslední, co zbývá je synchronizace KeePassu. A tady přichází na řadu zmíněný Dropbox. Věřím, že po přečtení předchozích řádků je Vám jasné, že je úplně jedno, kam svůj datový soubor s hesly umístíte. Díky Yubikey a heslu je totiž šifrovaný tak dobře, že se do něj nikdo a nijak nedostane. V extrému byste ho mohli vyvěsit klidně veřejně na webu. Samozřejmě je stále lepší ho držet alespoň trochu rozumně bezpečně, ale, teoreticky by to mělo být opravdu jedno.

A proto si můžeme dovolit použít Dropbox. I když i ten by měl být sám o sobě bezpečný, už to znamená mít své věci někde v cloudu. Tam k nim teoreticky může mít přístup kdekdo, navíc stále existuje riziko, že Vám Dropbox můžou hacknout. Proto i s ostatními daty v něm opatrně.

Pro naše účely je ale Dropbox naopak naprosto ideální. Uložíme si na něj zaheslovaný KeePass soubor a díky tomu k němu můžeme přistupovat odkudkoli, kde budeme mít Yubikey klíčenku. Díky tomu jsem schopný se doma do dat dostat jak z pracovního PC, tak z jakéhokoli notebooku.

Jak nastavit Yubikey

Teorii máme za sebou, pojďme nastavovat. Jako první nakonfigurujeme Yubikey, konkrétně jeho slot2 (každý Yubikey má dva programovatelné sloty). Na to je nutné stáhnout a nainstalovat Yubikey Personalisation Tool.

 

V aplikaci pak zvolíme “Challenge-Response” položku v horním menu a zvolíme variantu HMAC-SHA1.

V následujícím okně pak zvolíte, že chcete programovat slot 2,  že chcete využít fixed 64byte input a stisknete tlačítko “Generate”

Heslo, které se Vám vygenerovalo, si uložte rovnou do KeePass, nebo dočasně někam do souboru na počítači, kde ho ho ale poté musíte 100% zlikvidovat. Jde totiž právě o ono super-bezpečné heslo, pomocí kterého se bude Váš KeePass synchronizovat s Yubikey. A proto se Vám k němu nesmí nikdo dostat.

Až budete mít heslo uloženo, stistkněte tlačítko Write Configuration. Ještě před samotným zápisem Vám aplikace nabídne uložit jakýsi CSV soubor, který obsahuje právě toto zmíněné heslo. Zde zvolte “Cancel”, protože rozhodně nepotřebujete, aby bylo heslo uloženo ještě v nějakém dalším souboru.

Tím máte Yubikey nakonfigurovaný. Pokud v budoucnu budete chtít spárovat další yubikey, stačí postupovat přesně stejným postupem jen s tím rozdílem, že namísto tlačítka “Generate” zkopírujete Vaše heslo do políčka Secret Key (v mém případě 61 4a 11 19 d0 14 85 75 db ce 85 07 ba bf a0 28 f3 e5 e1 eb). Takto můžete spárovat tolik klíčenek, kolik budete potřebovat.

Jak nastavit KeePass

Nejprve si KeePass stáhněte z oficiálních stránek (nikdy nestahuje odjinud, nemáte jistotu, že není kód jakkoli upraven ve Váš neprospěch).

A ze seznamu “Plugins” si stáhněte KeeChallenge plugin (https://keepass.info/plugins.html), případně ho lze stáhnout rovnou zde http://richardbenjaminrush.com/keechallenge/. Plugin rozbalte a umístěte do podsložky “Plugins” ve složce KeePass.

To, že jste plugin aktivovali správně, poznátek tak, že vyberete menu Tools->Plugins a uvidíte v seznamu pluginů KeeChallenge.

Pokud máte plugin nainstalovaný, pojďme se pustit do vytvoření bezpečného úložiště. Z menu zvolte “File” a “New”.

A potvrďte následující okno, kde Vás KeePass informuje, že si máte dobře zapamatovat heslo, které zadáte 🙂

V dalším kroku zvolte, kde se má soubor uložit a jak se má jmenovat. Já osobně ho mám uložený přímo ve složce s KeePassem, který mám celý v Dropboxu. Výhoda tohoto řešení je, že se mi krom samotného datového souboru synchronizuje i celé nastavení Dropboxu se všemu pluginy. Nemusím se proto starat o každý počítač zvlášť, ale všude mám stále stejné nastavení.

A teď se dostáváme k tomu zajímavému. V následujícím okně nyní zvolte Vaše “Master password”, tzn. heslo, které budete zadávat. Krom toho ale zaškrtněte ještě volbu “Show export options”

Po zaškrtnutí “Show expert options” se Vám ukáží další volby k nastavení. Vy dále zaškrtněte “Key file / provider” a ze seznamu vyberte “Yubikey challenge-response”.

A volbu potvrďte stisknutím “OK”.

Zobrazí se Vám další okno, kam nyní zadáte Vaše tajné heslo, které jste si vygenerovali v Yubikey.

V mém případě tak zadávám “61 4a 11 19 d0 14 85 75 db ce 85 07 ba bf a0 28 f3 e5 e1 eb”. Volbu “Variable Length Challenge” nechte odškrtlou. Opět stiskněte OK.

Nyní se Vám rozsvítí Váš Yubikey a vyskočí okno, kde běží časový odpočet. Klikněte na tlačítko na Yubikey. Tím je spárování dokončeno.

 

V tomto kroku můžete nyní nastavit parametry Vašeho KeePass souboru. Krom jeho popisu a názvu lze ještě dále upravit způsoby šifrování. Osobně využívám v defaultním nastavení. Toto lze v budoucny kdykoli změnit. Opět potvrďte OK.

V dalším kroku Vám KeePass nabídne vytisknutí formuláře, kam si můžete poznamenat veškeré bezpečností nastavení a hesla, která jste zvolili. Osobně dávám Skip a hesla ukládám jinam.

A tím je hotovo. Máte vytvořený bezpečnostní soubor, kam se Vám nikdo nedostane.

Nyní aplikaci zavřete a zkuste ji znovu pustit a přihlásit se. Ať si ověříte, že vše funguje jak má.

Po zadání hesla a jeho potvrzení byste měli opět vidět výzvu na stisknutí tlačítka na Yubikey spolu s rozsvícením Yubikey.

Dodatečná nastavení KeePass

Tak, máme nastavený Yubikey a KeePass, nyní ještě nastavíme pár dalších věcí v KeePassu. V základu totiž KeePass po odemknutí úložiště zůstane odemknut. Takže pokud počítač usne / zapne spořič a vy odejdete, tak je databáze stále odemknuta a někdo by se Vám fyzicky mohl k datům stále dostat.

I toto naštěstí umí KeePass vyřešit. Lze nastavit, aby se KeePass automaticky zpět zahesloval po x-minutách neaktivity, nebo při usnutí PC, nebo při spuštění screensaveru, nebo při stisku klávesy ESC v případě, že už víte, že přístup nebudete potřebovat. Díky tomu jsou data odemknuta po opravdu minimální nezbytnou dobu a jinak jsou data zaheslována a nepřístupná.

V menu Opitions najdete hromadu voleb, včetně:

  • “Lock workspace when computer is about to be suspended”, která říká, že má KeePass být zamčen při usnutí.
  • “Lock workspace after global user inactivity”, která říká, za jak dlouho KeePass sam zamkne, pokud se na PC nic neděje

Je toho opravdu spousta, co lze nastvit. Ostatní položky ponechám k vlastnímu studiu, jelikož už záleží na vkusu uživatele. Například, zda se má KeePass zobrazovat jako běžící aplikace nebo v Tray, zda Close tlačítko zavírá aplikaci, nebo ji jen minimalizuje do Tray, atd.

Obnova přístupu k datům

Poslední kapitola bude už dříve zmiňované “coby-kdyby”. Jak zajistit, že se k těmto datům dostanou i jiní v případě nouze. Já to pro tyto účely mám řešeno následovně.

  • Je potřeba si na papír poznamenat heslo, které je zadáno do Yubikey (tzn 61 4a 11….), dále pak heslo, které se zadává přímo do KeePassu (v případě tohoto dema “heslo”).
  • Kromě toho je pak potřeba ještě uživatel a heslo do Dropboxu.
  • A k tomu nějaký návod, jak vše obnovit. V mém případě link na tento článek 🙂

Tyto údaje jsou zapsané na papíru, odkud je nelze nijak elektronicky zcizit. Papír pak lze dle uvážení vložit do bezpečnostní schránky banky, kde ke schránce nastavíte přístup i dalším osobám, případně jej zakopat někde na zahradě a lokaci sdělit ostantím. Případně poslední varianta je pak zalepená obálka, kterou uschováte u důvěryhodných osob pro případ nouze.

Všechna další data, závěti nebo krizové plány již můžete průběžně ukládat a měnit v KeePasu. To hodně usnadňuje distribuci těchto kritických informací. Jediné, kdy musíte obsah obálky a schránky aktualizovat, je, když změníte Yubikey heslo, KeePass heslo, nebo přístup do Dropboxu.

Závěrem

Tak, další část návodu mám za sebou. Stále je toho spousta, jak zabezpečit vše ostatní. Primárně právě 2FA ochrana, o které budu mluvit příště. Jak ale vidíte, jen samotné zabezpečení KeePassu je kapitola sama o sobě. Když se to ale udělá správně, je to úložiště naprosto bezpečné, zároveň synchronizované a k tomu obnovitelné v případě nouze.

Pokud Vám návod pomůže, zvažte zaslání nějaké té koruny na podporu našeho blogu. Jen pro představu, článek jako je tento jsem zpracovával dnes 3 hodiny. Je fajn ostatním pomáhat, ale je i fajn vidět, že to lidé dokáží ocenit. Díky!

Bezpečnost účtů – část první

Bezpečnost účtů – část první

Už několik týdnů, možná spíš měsíců, řeším zabezpečení svých účtů. A i když jsem předpokládal, že v dnešní době všudepřítomné osvěty o bezpečnosti to bude hračka, tak bohužel ani omylem. Navíc, vše musí být tak jednoduché, aby řešení používala i má žena. Jinak by celá bezpečnost byla ta tam.  A jako třešnička na dortu, celé zabezpečení musí být udělané tak, aby se v případě živelné katastofy, nebo kdyby se mi nedejbože něco stalo, dalo stále ke všem účtům a penězům (a kryptoměn) dále dostat.

Dnešní stav bezpečnosti je slušně řečeno smutný. Na jedné straně tady máme USB tokeny jako je třeba Yubikey, Trezor a další a na druhé straně pak poskytovatele služeb, kde je vrchol zabezpečení šestimístné heslo. Do toho vše zhoršuje ještě fakt, že se většina uživatelů potřebuje přihlašovat na více zařízeních s více různými operačními systémy. Pak už je to úplná katastrofa.

A tak jsem opravdu dlouhou dobu řešil, jak zabezpečit své pracovní PC postavené na Widnows, přitom mít možnost pracovat občas i na OSX a do toho mít přístup k datům i z Android telefonu. Jakmile totiž chce člověk opravdu dobré zabezpečení, je to problém.

Původně jsem používal kombinaci Lastpass a Authy. V Lastpass jsem měl všechna hesla a měl je chráněné pomocí 2FA TOTP (dvoufázová autentizace založená na časových kódech). Tyto 2FA kódy jsem generoval původně přes Google Authenticator, později pak přes Authy.

Celé řešení má ale hned několik problémů. Zaprvé, Lastpassu se prostě nedá věřit na 100%. Pořád jsou data uložena někde v cloudu (i když šifrovaná) a pořád se dá k datům v prohlížeči teoreticky dostat. Pár průšvihů už Lastpass mělo a hlavně, data jsou v určitou chvíli rozkódovaná v pluginu prohlížeče, kde je může vyluxovat někdo dalši.

A to stejné platí o 2FA kódech v Authy. Ačkoli je authy zaheslované masterpasswordem, tak jsem používal cloudsync, abych mohl 2FA kódy používat jak na pracovním PC, tak notebook a mobilu. A všude tak hrozilo, že se k těmto kódům nějaká další cizí aplikace dostane (a bohužel to nelze vyloučit nikdy).

Moje původní představa, jak z toho ven, byla, že si pořídím HW klíč a vše už bude jenom krásné. Bohužel, záhy člověk zjistí, že podpora HW klíču je opravdu tristní. Velcí hráči ala Google, Microsoft, Dropbox a další už ji mají, ale 95% (možná i 99%) ostatních webů vůbec. Když už nějaké zabezpečení, tak v lepším případě časové 2FA TOTP kódy, v horším případě potvrzení přes email, v nejhorším případě nic.

A tak jsem začal vymýšlet, co by se s tím dalo v rámci možností udělat, aby to splňovalo bezpečnost, ale zároveň i komfort použití. Jako první je potřeba si definovat cíl zabezpečení. Cílem není mít 100% bezpečnost u všech služeb. Cílem je mít 100% bezpečné kritické věci a u těch ostatních se spokojit s 99%.

Za kritickou službu číslo jedna považuju email. Konkrétně Gmail a GoogleApps email. Pokud by se mi někdo dostal do emailu, je konec. Přes něj už se dokáže dostat skoro všude, vynutit si změnu hesla u ostatních služeb atd.

Mezi další kritické služby samozřejmě patří Lastpass, kde jsou všechna hesla, dále pak Crypto burzy, Trezor na kryptoměny, … zkrátka takové služby, kde fakt nechcete, aby byl někdo cizí.

A zde je zatím to nejlepší, co jsem vymyslel –  HW Key Yubikey, KeePass, Lastpass, Yubico Authenticator a na kryptoměny Trezor. Jak jsem psal, není to úplně triviální. Bohužel je dnes potřeba několika aplikací a zařízení, aby byla ochrana ideální.

Nejlepší na synchronizaci hesel je stále Lastpass. Potřebuji přístup k heslům jak na Windows, tak OSX a Androidu a to ve více různých prohlížečích. Jelikož ale Lastpassu úplně nevěřím, všechny kritické služby krom hesla mají nějakou další formu 2FA. Tím pádem, pokud mi Lastpass hesla vyluxují, dostanou se sice třeba na vodniky, ale do kritických služeb nikoli.

Na 2FA kódy jsem ale Authy zavrhl. Ne, že by s ním byl problém, ale je to služba třetí strany, které úplně nevěřím. A tak jsem řešil, kam s 2FA. Nakonec se mi povedlo zjistit, že se 2FA kódy dají generovat pomocí určitých pluginů i v aplikace Keepass.

Samotné zabezpečení KeePassu je také kapitola sama pro sebe. Opět, díky pluginům, lze dosáhnout velmi kvalitního zabezpečení. A to díky Challenge-response protokolu a tajnému klíči, který je nahraný do Yubikey. O tom později.

Bohužel, Keepass je jen pro Windows (ten původní Keepass). Existuje několik alternativ KeePassu, které umí fungovat i na OSX či Linuxu. Jenže tam už nemáte tu jistotu bezpečí, navíc, nepodporují pluginy. Například KeePassX jich má pár implementovaných v sobě, ale není to úplně ono.

A pak tu máme android. Rozhodně jsem nechtěl mít generátor 2FA TOTP klíčů na Androidu nechráněný. Takže nějaká read-only databáze KeePassu nepřipadala v úvahu. Stejně tak GoogleAuthenticator neumožňuje žádné zabezpečení. Naštěstí jsem narazil na Yubico Authenticator for Android, který umí zadat klíče do Androidu, ale jsou přitom šifrované konkrétním Yubikey klíčem.

A to je hrubý nástin toho, jaké aplikace jsem se rozhodl použít. Bohužel, jen o aplikacích to není. Je potřeba do Keepasu hodně věcí doinstalovat a nastavit a nebo vymyslet workflow tak, aby ho zvládla používat i žena. Například přenos 2FA TOTP  klíčů mezi Android a Windows, způsob generování 2FA klíčů pomocí Keepassu, zůsob zálohování Yubikey, jelikož jeden klíč je málo, způsob zabezpečení Keepassu, ….

Je toho opravdu hodně. A aby toho nebylo málo, je tam ještě ten jeden požadavek. Toto všechno se musí dát nějak jednoduše popsat tak, aby to mohlo být uloženo v bezpečnostní schránce v bance, aby kdyby se něco stalo, tak se šlo stále ke všemu dostat. Jak zajistit, že se nebude muset obsah schránky neustále aktualizovat. Jak vyřešit, že některé věci musí být jen fyzicky na HW klíči, atd. kryptoměnám a dalším elektronickým statkům by se totiž v případě mého zmizení či demence už nemusel nikdo další k majetku dostat. A proto jsem začal dávat dohromady rovnou i recovery plán.

A o tom budou další články. Uvidím, jak na tom budu s časem, protože tyhle články bohužel nejsou na pár minut. Pokusím se postupně sepsat návod na všechny oblasti zabezpečení, ukázat jak si vše nastavit a rozběhat. A to tak, aby Vaše emaily, účty i Bitcoiny byly v bezpečí :).