Správci hesel jsou hojně užívaní pro zvýšení uživatelského komfortu. Čas od času se někdo pokusí pohanět jejich bezúhonnou pověst a jindy se zase jiní lidé snaží přesvědčit i ty nejzatvrzelejší zpátečníky, že jejich notýskům zamčeným ve skříňce dávno odzvonilo. Pravda je asi taková, že správci hesel krom již zmíněného komfortu nepřinášejí nic navíc a větší míru zabezpečení teprve ne. Přesto se správci hesel snaží budit dojem solidní služby, která uchová vaše nejniternější tajemství v naprostém bezpečí. Nejméně jeden z nich je v tom tak dobrý, že by mu leckterý sňatkový podvodník mohl závidět. Tím výjimečně nadaným "šikulou" je kwallet, standardní součást prostředí KDE.
Případ první: Podívej, to je tajné heslo!
Takhle nějak zachází kwallet s hesly, přeochotně je ukazuje každému náhodnému kolemjdoucímu. Pro kouminkaci s klienty používá kwallet ve své aktuální verzi (ten z KDE4) mechanismus d-bus, přes něj přijímá požadavky a přes něj také zasílá požadovaná hesla. Spusťte nejprve dbus-monitor, potom třeba kopete (za předpokladu, že používá kwallet, samozřejmě) a přihlaste se do své oblíbené sítě. Krom spousty nezajímavých zpráv vykřičených do mikrosvěta vašeho aktuálního sezení na vás dbus-monitor vyhrkne taky vaše heslo. Jestli jste svá hesla už delší dobu díky správci hesel neviděli, výstup dbus-monitoru vám osvěží paměť.
Případ druhý: Odečet plynoměru? Tak pojďte dál!
A takhle se kwallet chová ke klientům, které mu klepou na dveře. Zeptá se co jste zač a když se dozví, že princezna Diana, pozve srdečně princeznu Dianu dál. Ukázka je velmi jednoduchá. Budeme se vydávat za kopete a budeme číst frázi k soukromému ssh klíči, kterou do kwallet uložil ksshaskpass. Kdo ksshaskpass nepoužívá, může číst libovolný jiný záznam, kwalletmanager pomůže najít nějaký vhodný. K celé akci stačí následující sled příkazů:
$ HANDLE=`dbus-send --print-reply --dest=org.kde.kwalletd /modules/kwalletd org.kde.KWallet.open string:kdewallet int64:0 string:Kopete`
$ HANDLE=`echo $HANDLE | awk 'END {print $NF}'`
$ dbus-send --print-reply --dest=org.kde.kwalletd /modules/kwalletd org.kde.KWallet.readPassword int32:$HANDLE string:ksshaskpass string:"$HOME/.ssh/id_rsa " string:Kopete
Pokud se podařilo, díváte se do konzole na požadovaný údaj. Pokud se nezdařilo, zkontrolujte jméno úschovny (já používám výchozí kdewallet), jména složky a položky. Jestli máte pro kopete povolen automatický přístup, bude požadováno maximálně vložení hesla pro otevření úschovny, pokud právě není otevřená. Jestli požadujete potvrzení pro každý přístup kopete do úschovny, objeví se vám žádost o potvrzení přístupu k úschovně pro kopete. Pokud ale kopete už běží, nezobrazí se dialog žádný, vše proběhne zcela skrytě. Docela slušný výkon na 3 řádky.
Závěrečné hodnocení
Správce kwallet dostává basu a nemilosrdně propadá. Nechrání přístup k jednotlivým položkám, pouze úschovnu jako celek, posílá hesla přes veřejný kanál a neověřuje identitu žadatele.
O poznání lépe je na tom gnome-keyring z konkurenčního prostředí, viděl bych to na lepší 4. Používá pro komunikaci socket, hesla už neposílá veřejně, pokud je jen trochu rozumně napsaný (moc jsem ho nezkoumal), dokáže i ověřit skutečnou identitu klienta a řídí přístup k jednotlivým položkám. To je ale tak všechno, k socketu má stále přístup každý s patřičnými právy a hesla z něj lezou v čitelné formě. Můžete si zkusit strace na nějakou aplikaci přistupujícího do úschovny a hledat ve výpisu to správné volání read.
Integrovaní správci hesel nejspíše většinou nebudou trpět problémy obecných správců, hodnocení se ale bude lišit případ od případu. Některé programy umí ukládat hesla do souborů v čitelné formě zcela bez ostychů. Uživatelský komfort ale s těmito správci drasticky klesá.
Nakonec ohodnotím ssh-agent, ten si zaslouží skvělou 2. Jedná se o jednoúčelový nástroj, díky čemuž drží svůj obsah v relativně slušném bezpečí. Komunikuje přes socket, hlídá, kdo k socketu přistupuje a nikdy neposílá tajný ssh klíč. Místo toho sám provádí operace nutné pro autentizaci a vrací jen jejich výsledky. Ani ssh-agent ovšem není bez vady, kdo má přístup k socketu, může se autentizivat vaší identitou, což je docela významná vada na kráse.
Možná jsem byl v hodnocení moc přísný, ukázky musí být spuštěny lokálně s patřičnými právy a leckdo může namítnout, že kdo může spustit tohle, může spustit cokoli. Jenže zatímco do klávesnice nadatlite heslo jen jednou za čas, správci hesel (a kwallet zvlášť) vystavují důvěrná data trvale a usnadňují tak případné zcizení, či zneužití.
Navzdory všem výtkám budu stále svá hesla svěřovat správcům hesel. Uživatelský komfort, který poskytují je hodně příjemný a návykový. Vyzrazení velké části hesel by mé soukromí nijak neohrozilo a ty opravdu dúvěrné údaje jsem nikdy do počítače neukládal.
Co Vy, věříte správcům hesel?
komentářů: 34