Keepass a 2FA bezpečnost – část třetí

Keepass a 2FA bezpečnost – část třetí

Dnešní článek bude o dvoufaktorovém zabezpeční pomocí TOTP kódů. Článek navazuje na ten minulý, kde jsem ukázal, jak si pomocí Yubikey, Keepassu a Dropboxu udělat bezpečné a zálohované úložiště.

Nejprve trochu o tom, co je TOTP.  TOTP je zkratka “Time-based One-time Password” a jsou to takové ty klasické 2FA kódy, které Vám generuje mobil nebo nějaké zařízení a vy je přepisujete do aplikací a webových stránek. Jak už jsem totiž zmiňoval dříve, ačkoli jsou tu mnohem lepší způsoby zabezpečení (například challenge-response z minulého článku), když už nějaká služba podporuje 2FA, tak většinou využívá právě tyto časové kódy.

Úvod do těchto 2FA kódů a toho, jak fungují, jsem se věnoval v jednom z dřívějších článků, kde jsem také doporučoval aplikaci Authy. Ta sama o sobě nění špatná, ale znamená to věřit externí službě. A i když neříkám, že je Authy špatné, je vždy lepší mít 100% kontrolu nad tím, jak a kde jsou moje data skladována. A o tom bude dneční článek. Jak si udělat náhradu Authy, jak tyto kódy synchronizovat, jak je uchovávat a jak zálohovat.

Celé řešení staví na aplikaci Keepass představenou minule. Za pomocí dvou dalších pluginů rozšíříme Keepass tak, že nejen, že si do něj uložíme zálohovací kódy k 2FA generátorům, ale také Keepass naučíme tyto kódy generovat, ale především, naučíme Keepass generovat QR kódy, které pak můžete vyfotit například mobilem, abyste si tento generátor přenesli i tam. A o tomto si dovolím tvrdit, že nikdo jiný zatím nemá a nenapadlo ho to :).

Standardní postup s 2FA kódy je, že Vás web vyzve, abyste si do mobilu vyfotili QR kód, někam bokem zapsali záložní kód a pak do webu vyplnili pro kontrolu vygenerovaný 2FA kód z mobilní aplikace.

Celý tenhle postup má hned několik nedostatků. Pokud budete chtít kódy synchronizovat mezi více zařízeními, nebo si pořídíte nové zařízení, znamená to ručně bezpečnostní kód přepsat. U jednoho kódu o nic nejde, ale pokud jich máte 20+, je to opruz. Další problém je s bezpečným uložením těchto záložních kódů. A třetí problém je, že pokud používáte 2FA na desktopu, tak se buď upíšete, protože neustále přepisujete kódy z mobilu do počítače, nebo budete mít Authy na počítači, kterému ale co se týká zabezpečení a bezpečnosti uložených dat moc nevěřím.

A nyní, jak to vyřešit lépe.

Jak nascanovat QR kód na počítači

Jako první budeme potřebovat ještě jednu aplikaci. A tou je ShareX. Krom toho, že je ShareX snad nejlepší aplikace na screenshoty na Windows, umí ještě jednu supr věc. Umí vyfotit QR kód, který je kdekoli na PC a přeložit ho do textové podoby. A tady začíná to kouzlo :).

Klikněte pravým tlačítkem na ikonce ShareX, vyberte “Tools” a “QR Code”.

Ukáže se Vám okno, které umí překládat QR kód na text a dokonce i opačně. Vyberte záložku “Decode” a stiskněte tlačítko “Decode from screen”. Ukáže se vám výběrový obdélník, pomocí kterého označíte QR kód na obrazovce.

Takto vyfocený QR kód se Vám přeloží na uri adresu. Pokud například vyfotíte kód, který je na obrázku výše, získáte kód otpauth://totp/me2%40example.com?secret=RLVSCIGF5GOFGW6OEX6F34N432IJKGW3&issuer=DevMovieManager.

QR kódy a KeePass

Jako další si do KeePassu nainstalujte KeePassQRCodeView (link na přímé stažení zde). Po stažení nahrajte soubor KeePassQRCodeView.plgx  do adresáře KeePass/Plugins/KeePassQRCodeView.plgx

Restartujte KeePass a vytvořte novou položku, do které si chcete službu uložit. Po vyplnění základních údajů se přepněte na záložku Advanced a stiskněte Add.

Do “Name” vyplňte třeba “2FA QR” a do Value vložte získaný link (otpauth://……). Zaškrtněte ještě “Enable in-memory protection” pro ještě větší bezpečnost a stiskněte OK.

Celou položku nyní uložte dalším stisknutím OK. Tím máte v KeePassu uložený secret seed (česky řečeno tajný řetězec), ze kterého se pak odvozují časové kódy.

Nyní na nové položce stiskněte pravé tlačítko a v kontextovém menu zvolte QR Code a v něm 2FA QR.

A voila…. Máte QR kód, který můžete kdykoli znovu vyfotit a máte ho bezpečně uložený v KeePassu. Takže je zálohovaný v cloudu, zároveň bezpečně šifrovaný. Dostanete se k němu jen vy, případně kdokoli další, komu dáte do KeePassu skrz Yubikey a heslo přístup.

Generování časových kódů z Keepasu

Jak by řekl Horst Fuchs “To ale to stále není vše!”.

Nyní Keepass umí generovat QR kódy, ale my bychom chtěli, aby uměl také generovat časové kódy, abychom je mohli snadno vkládat do aplikací a webových stránek bez nutnosti je přepisovat z mobilu.

Pro tyto účely nainstalujeme další plugin s názvem Tray TOTP Plugin for KeePass2 ke stažení zde. Po stažení opět nahrát do KeePass/Plugins/TrayTotp.plgx. Po restartu KeePassu se v kontextovém menu jakéhokoli záznamu objeví nová položka  “Copy TOTP” a “Selected Entries->Setup TOTP”.

Jelikož se jedná o jiný plugin, je pro něj potřeba znovu vyplnit TOTP heslo generátoru, které jsme vyfotili z QR kódu. To uděláme tak, že na zvolené položce v kontextovém menu vybereme Selected Entries->Setup TOTP.

Nyní je potřeba projít a vyplnit parametry generátoru. Na první obrazovce dáme “Next”, na další obrazovce ponechte 30 second a zase “Next”. Na další pak vyplňte “6 lenght”, jelikož v 99% budete potřebovat šestimístné kódy.

Na další obrazovce je potřeba zadat tajný kod, který jsme předtím nascanovali pomocí aplikace ShareX z QR kódu. V našem případě to bude “RLVSCIGF5GOFGW6OEX6F34N432IJKGW3″  a opět potvrďte pomocí “Next”. Na další obrazovce nic nevyplňujte (jelikož to v pluginu asi teď nefunguje) a dejte opět “Next”. Na poslední obrazovce pak dejte “Proceed”. Tím máte generátor vyplňený.

Po tomto vyplnění lze nyní TOTP kód získat dvěma možnostmi. Tou první je v okně KeePassu zvolit položku, stisknout pravé tlačítko a dát “Copy TOTP” (případně stisknout CTRL+T v tomto okně). To není špatně, ale lze to ještě snadněji.

KeePass má totiž ještě ikonku v Tray oblasti (to je to ve Windowsech vpravo dole vedle hodin, kde jsou různé malé ikonky). Na té, když kliknete pravým tlačítkem, se nyní ukáže seznam všech nakonfigurovaných TOPT kódů. Stačí tak jen vybrat ze seznamu a do clipboardu (schránky) se Vám ihned kód nakopíruje.

Samozřejmě, pokud máte úložiště uzamčeno, ke kódům se ani přes Tray ikonu dostat nedá. Je potřeba nejprve odemknout úložiště heslem a Yubikey a pak až se Vám kódy vygenerují.

QR Kódy na mobilech

A o mobilech bude poslední část článku. Občas je totiž dobré mít 2FA kódy u sebe a bohužel, k takto uloženým a zabezpečeným kódům v KeePassu se na mobilu nedostanete. Je proto potřeba udělat ještě jeden krok.

Na mobilu lze mít Google Authenticator, ale ten není nijak zabezpečen. A jelikož 2FA má fungovat jako zvýšená bezpečnost, tuto variantu bych určitěn nedoporučoval. Další je Authy, ale jak jsem už psal, musíte věřit třetí straně a hlavně, toto celé děláme proto, abychom Authy nemuseli mít. A pak je tu ještě jedna aplikace – Yubico Authenticator.

Jde o 2FA TOTP generátor kódů pro mobilní zařízení (tuším, že mají i desktopové verze, ale ty už nepotřebujem), kdy kódy jsou zabezpečeny pomoci HW klíče od Yubico s NFC přístupem. Celé to funguje tak, že jsou 2FA kódy uložené někde u nich v cloudu, ale jsou zašifrované pouze Vaším klíčem. Díky tomu, když aplikaci na mobilu spustíte, tak neuvidíte žádná data. A podle toho, jaký klíč s NFC přiložíte, tak takové klíče se Vám na mobilu ukážou. Díky tomu, když HW klíč přiložíte na jiném mobilu, stále uvidíte své kliče.

Bohužel, na druhou stranu, pokud máte klíče dva, je nutné pro oba zadat TOTP kódy znovu. To nám ale nevadí, protože KeePass umí tyto QR kódy vygenerovat, takže přidat nový klíč je hračka.

Přidat klíče do Yubico Authenticatoru je opravdu snadné. Nainstalujte si jejich aplikaci z Android Store, spustťe aplikaci a dejte “Přidat QR kód”. Pro přidání je potřeba kód potvrdit přiložením NFC klíče k mobilu (v případě Samsungu přiložit doprostřed zad mobilu). Tím se klíč zašifruje a uloží.

Zkuste si aplikaci ukončit a znovu spusťit. Po spuštění je aplikace opět prázdná. Přiložte ale klíč k zádům mobilu a najednou uvidíte všechny uložené kódy. Toto je super vlastnost, na kterou jsem přišel až později při využívání Yubikey. Bohužel se o tom člověk na webu nedočte.

V případě ztráty mobilu stačí aplikaci znovu nainstalovat a přiložit klíč. Vše máte opět k dispozici. A v případě ztráty nebo poruchy Yubikey, stačí QR kódy znovu vyfotit z KeePassu.

Závěrem

Jak vidíte, vysoké zabezpečení v dnešní době bohužel obnáší i trochu té práce navíc. Spousta z kroků by se dala zjednodušit, sjednotit funkce pluginu do jednoho, atd. Na druhou stranu, buďme rádi, že to lze aspoň takto. Dalo mi to opravdu spoustu hledání a vymýšlení, než jsem našel způsob, jak udělat vše takto uceleně a s co nejméně externími aplikacemi.

I když je uložení a nastavení trochu složité a šlo by udělat lépe, díky tomuto postupu budete mít absolutní kontrolu nad Vašimi 2FA kódy, budete mít komfort focení QR kódů z mobilu, budete mít vše zaheslované a zálohované.

A to je pro dnešek vše. Tímto třetím článkem uzavírám tuto mini sérii zabezpečení. Předal jsem Vám mé kompletní know-how v zabezpečení a ukázal, jak máme zabezpečení u nás řešeno my. A jelikož mu opravdu věřím, nebojím se ho proto takto sdílet. Pokud by někdo viděl v tomto zabezpečení nějakou slabinu, určitě napište dolů pod článek. Rád se přiučím :).

Jak jsem už několikrát zmiňoval, v případě celého řešení nešlo jen o 100% bezpečnost, ale taky o zálohování a recovery proces. Díky všem těmto krokům budete mít Vaše data a klíče v bezpečí jak před útoky, tak proti případným živelným katastrofám, či při jiných nepředvítelných událostech. Pokud někam do bezpečné schránky uložíte přístup do Dropboxu spolu s jedním záložním Yubikey (nebo jiným U2F klíčem), bude se moci kdokoli oprávněný ke všem Vašim datům v případě potřeby dostat. (Z dropboxu stáhne KeePass, tam se dostane pomoci Yubikey, kde má pak všechny hesla, 2FA kódy a případně i třeba poznámky nebo Vaši závěť 🙂 ).

Článek pak zakončím stejně jako minule prosbou o podporu našeho blogu. Pokud Vám návod pomůže, zvažte zaslání nějaké té koruny na podporu našich článků. I tentokrát si jeho výroba vzala cca 4 hodiny a to nepočítám množství času, než jsem celý systém vymyslel a dal dohromady. Proto pokud Vás článek inspiroval a pomohl Vám s Vaším zabezpečením, budu rád, když nám nějakou korunu přispějete.

Přispět lze přes BTC Lighting network tlačítkem níže, nebo zasláním na BTC adresu bc1ql36zrs6gczm7zlfwdtqdc20jdx900l6wkxqdfv, případně převodem na účet 1012036013/3030. Děkujeme.


Všechny články v sérii:

Pomohl Vám náš blog? Chcete nás podpořit? I málo udělá radost 😉
Become a patron at Patreon!
0 0 votes
Hodnocení články
Subscribe
Notify of
guest

26 Komentáře
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Dalibor Kryl
Guest
Dalibor Kryl
5 years ago

Díky za sdílení, takto kompletní návod a vysvětlení “pro lidi” se jen tak nevidí…. Fakt paráda

Baros
Guest
Baros
5 years ago

Díky za návod, muselo to dát hodně práce.

Včera mi přišel newsletter od btctip.cz a je tam odkaz na e-book od Blockchain Legal – HODL ZA ŽIVOTA A PO NĚM https://www.blockchainlegal.cz/cs/ebook/

Řeší tam bezpečné uložení, zálohování i dědictví kryptoaktiv. V češtině jsem nic podobnýho takovým rozsahu zatím neviděl.

Karel B
Guest
Karel B
5 years ago

Co udelas kdyz stratis ubikey a mas ho namapovany na google ucet? Myslim, ze se tam pak uz neostanes pokud nemas jine metody obnoveni. Takze jedine co zbiva je mit namapovano alespon 2 ubikey klice ? Nebo se milim ?

Karel B
Guest
Karel B
5 years ago
Reply to  L

Cetl jsem na redditu ze nejde mit google ucet zabezpecen pouze yubikey ale vzdy je potreba jeste samozrejme heslo a 2fa nebo mobilni cislo. takze heslo+ yubikey + 2fa/sms , nevim jestli je to jeste pravda

Martin
Guest
Martin
5 years ago

Ahoj, clanek je fajn – diky za nej.
nez se do podobneho reseni pustim, rad bych znal odpovedi na:
1. Pokud chci ke sluzbe pristoupit pres telefon, mam sice generator 2FA TOTP, ale nedostanu se k datum v KeePasu, protoze nejde na android. Google Authenticator navic funguje tak, ze se me pro kazde zarizeni zepta jen pri odhlaseni a 2FA bych nastavoval pouze v pripade, ze bych mel DB kterou bych otevrel a ona mi zadavala hesla “sama” – k tomu zrejme pouzivas ten LastPass, ale pak uz se bavime o dvou druzich pristupu jejichz aktualizace je slozitejsi.

2. Jakym zpusobem mas nastavene aby se ti pri prihlaseni do keepasu rovnou oteviraly linky, ktere by mely vyplnene heslo a nemusely se kopirovat ve “schrance ctrl+c, +v”
Linky jsou jedna vec, RDP a podobne zalzitosti vec druha.

Chapu-li spravne, bavime se tu nyn ivlastne o emailu a kritickych sluzbach ohledne online financi a kritickych sluzbach, ale o zbytku, ktereho je mnohem vice, bezpecnost nastinena ve clanku nehovori… úvstupy na reistratory, FTPka, VPNky – kde samozrejme ne vse vyuzivame na mobilu….

3. Obcas nastava situace, kdy museime pristoupit ke sluzbe z jineho pocitace a duverujeme prave mobilu, ktery mame my v ruce. Myslim ze tim, ze prijdu k nekomu s MACem, pak nemuzu nastavit pristupy nebo udelat upravu dle pozadavku, pokud nebudu mit widle a porotable keepas…

Diky
Diky moc

Karel B
Guest
Karel B
5 years ago

Zacal jsem pouzivat keepassxc, ma plno veci integrovanych zadne pluginy. Pracuje na nem vice lidi kteri to podepisuji multisigem. keepass mam dojem je podepsany jednim clovekem, az mu rupne v kouli tak muzete prijit o hesla. Podporuje OTP a to i pod keepas2android s challenge-response authentication .

Doporucuji zkusit. Pouzival jsem mnoho let keepass ale ted jsem po par dnech testovani presel na keepassxc.

Karel B
Guest
Karel B
5 years ago

Jo proto vznik keepassxc , vyresit kompaktibilitu mezi OS. Me nefunogval yubikey s keepas2droid proto jsme presel na keepassxc. Ten uz vsobe ma i OTP atd. Nemusite resit pluginy tretich stran ktere vas opet muzou vykrats. pluginy jsou velky security problem co vidim ja. Proto budu spolehat na 5 lidi co pisi vse.

porad slabina je keepass2droid

Bitcoin ma prave proto taky multisig.

Reseni jednoho cloveka to je vzdy do te doby kdy je jediny co podepisuje vydane soubory. Samozrejme plno lidi tak 95% toto neresi a neoveruje, zmacknou autoupdate.

rupne v kouli v tom, ze jelikoz on podepisuje soubor takze ikdyz je to open source tak udela kompilat svuj a ten podepise , pak si odesle vsechny vase hesla 😉 nerikam, ze se to nemuze stat i u skupiny lidi ale pravdepodobnost je mensi.

Nechci rict ze Keepassxc je nejlepsi atd. jen se mi po delsi uvaze zda byt vice bezpecnejsi z duvodu co jsem popsal vyse.

S474N
3 years ago
Reply to  Karel B

Muzu se te zeptat, jestli kdyz mas Yubikey, tak jestli si do KeePassXC zadaval nekam klic ze Slotu 2? Ja uz tu udelal X pokusu a nikdy nemusim, coz je mi trosicku divne, vuci cemu a jak by to tedy porovnaval?

Jinak originalni Keepass samozrejme HMAC-SHA1 klic chce.

Karel B
Guest
Karel B
5 years ago

Mam dojem ze vam nepomuze jen zakazat komunikaci keepass ven , nejsem tedy programator, ale on muze zakompilovat do instalatoru jinou exovku tu vy uz filtrovat nebudete 😉

Kazdopadne pravda je v tom ze keepass ma obrovksou komunitu a bug by se tam nasel okamzite. Jak rikam muj problem jsou pluginy od jakziva.

Asi ani jedno nase reseni neni spatne a uz tak zachazime do detailu ktery 95% uzivatelu neresi maximalne si checkne checksum z webu ktery je uplne k nicemu a jsou happy 🙂

Btw prave keepassxc ma plugin na android kde vlastne pouzivate yubikey k odemceni DB stejne jak na pc. Jeden z nejvetsich duvodu proc jsem presel. To ze na mobil to nepatri je zastarala predstava. Ja mam mobil vsude sebou a na nem funguji velmi casto a potrebuji svoje hesla, takze spoleham tak trochu na google, vim ze to je slabina ale prave to je ta cast co se odjakziva diskutuje. Bud budete mit super bezpecnost a budete omezen a nebo hold trosku slevite . Nebo se to pak da jeste resit ze budete mit jeste jeden soubro s obzvlast kritickyma heslama. Koneckoncum kdyz se vam nekdo dostane do mobilu tak jste beztak v haji jak s google uctem atd.

kostalkarel
2 years ago

Zdravím, mohl bych prosím požádat o pomoc s Tray TOTP Pluginem? Stáhl jsem ho z linku (pak zkusil i stáhnout starší verzi), ale pokaždé se my při spuštění Keepassu objeví hláška, že Následující doplněk není kompatibilní s aktuální verzí Keepassu a cesta je k TrayTotpGT.dll . Nevíte někdo co s tím?
Předem děkuji za radu

kostalkarel
2 years ago
Reply to  L

Zdravím, já si to myslel, když se tak dívám na poslední datum aktualizace. A mohu se zeptat jak to máte teďka řešené. Pokud jsem dobře četl na Yubikey, tak generátor na mobil by měl mít i PC verzi nebo případně něco jiného? chci začít s kryptama, ale nejdřív zabezpečit počítač a účty (na což jsem do teď docela “kašlal”). díky
A ještě dotaz. Nezkoušel jsi yubico authentizátor pro vstup do Windows (PC)?

Last edited 2 years ago by kostalkarel
kostalkarel
2 years ago
Reply to  L

Takže jsetli to dobře chápu, tak je již generátor integrován přímo do KeePassu? Zítra mi snad přijde Yubikey, tak si připravuji postup a postahovávám věci, abych něco nemusel dohledávat. Využívám špatného počasí venku, když nemohu dělat na baráku. Právě dělám image disku, kdybych něco po…..

26
0
Would love your thoughts, please comment.x
()
x