Jak zabezpečit svá hesla, díl 1/3

14. 7. 2011

Sdílet

 Autor: Redakce

Úvod, hrozby, metodika

Tento text vznikl původně pro bakalářskou práci. Jejím cílem bylo porovnat, jak různé druhy programů chrání uživatele proti různým bezpečnostním hrozbám, snad důkladněji, než jste z internetových magazínů jinak zvyklí. V zájmu osvěty jsme z výňatků bakalářské práce sestavili miniseriál, jehož první díl dnes čtete.

V roce 2008 zveřejnil deník Guardian statistiku, podle které celých 61 % uživatelů internetu používá stejné heslo na mnoha internetových službách. Málokdo z nich přitom zřejmě dokáže dohlédnout následky, kdyby jejich přihlašovací údaje padly do rukou zlomyslného útočníka. Najde-li se někdo, kdo má zájem na poškození vaší pověsti, asi bude příliš zaneprázdněn psaním pomluv na různá diskuzní fóra, která navštěvujete, než aby se pokoušel hacknout databázi uživatelů a hesel. Může se ale stát, že to nějaký „dobrák“ udělá za něj.

Mnoho webových služeb ukládá heslo v podobě, ze které lze zjistit jeho původní podobu, ne-li přímo v plaintextu. Toto lze snadno zjistit tak, že si uživatel vyžádá zaslání zapomenutého hesla na e-mail. V kolika případech přijde nové, vygenerované heslo nebo odkaz na zadání nového, a kolikrát heslo původní?

Odcizení přístupových údajů zcela jistě může být nepříjemné. Pokud se to ovšem stane v podniku, hrozí vznik nemalé finanční škody. Mohou uživatelům nějak pomoci aplikace označované jako „password managery“ či správci hesel? Pojmem „password manager“ či jeho český ekvivalenty „správce hesel“ a „aplikace pro správu hesel“ budu v tomto článku označovat aplikace nebo části aplikací, jejichž účelem je zabezpečené uchovávání uživatelských jmen a hesel a které usnadňují uživateli proces přihlašování.

Bezpečnostní hrozby číhající na naše hesla

Velmi stručně lze hrozby týkající se hesel rozdělit na tři kateogire. Tou první je spyware, škodlivé software, které hesla odposlouchá při zadávání (keyloggery, monitory kopírovací schránky), případně je přečte z pevného disku počítače.

Druhou kategorií je hádání a crackování hesel (password guessing and cracking). Hádání znamená opakované pokusy o uhodnutí hesla. Tyto útoky využívají ve větší či menší míře hrubou sílu a spoléhají na metodu pokus-omyl. Rozlišujeme útoky na bázi slovníku (zkouší se slova z běžného jazyka), útoky hrubou silou (názorný příklad na tomto videu od první minuty) a hybridní útoky (kombinace obou, většinou dle zvolené šablony). Obdobou je cracking, kdy útočník nejprve získá hash hesla (sledováním síťového přenosu nebo z databáze), namísto pokusů o přihlášení se pak generují hashe řetězců a porovnávají (tento postup je rychlejší a snadno paralelizovatelný).

Třetí je sociální inženýrství (podvodné vylákání hesla z uživatele, podvodné vyžádání si změny hesla u administrátora, nebo i tak obyčejná věc, jako nahlížení přes rameno).

Správci hesel se dotýkají volby hesla a procesu jeho vyplňování, mohou tedy poskytnout alespoň částečnou ochranu proti keyloggerům, clipboard monitorům, pokusům o hádání a crackování a čtením hesla z pevného disku počítače (což je pouze logické, neboť existence této hrozby souvisí s tím, že uživatel nenosí hesla ve své paměti). Hrozby, které budu zohledňovat ve srovnávací metodice, jsou následující:

  • keyloggery,
  • clipboard monitory,
  • hádání hesel (a související způsoby útoků hrubou silou nebo na bázi slovníku),
  • crackování,
  • „shoulder surfing“ (nahlížení přes rameno).

Metodika srovnávání

Požadavky na „systém správy hesel“ dle ČSN 17799 se týkají zejména opatření na straně aplikace, do níž se uživatelé přihlašují, například zadávání nového hesla dvakrát pro vyloučení překlepů. Některé další funkce, které heslem zabezpečené aplikace mohou mít, ale často nemají, lze zastoupit funkcionalitou externího programu – správce hesel. Do této kategorie patří to, co jsem v seznamu níže označil jako výchovný efekt. Aplikace pro správu hesel mohou pomáhat uživateli dodržovat tato opatření, avšak nemohou ho k tomu donutit.

Správci hesel tedy budou hodnoceni dle následujících kritérií:

  • Univerzálnost použití: zdali je řešení použitelné pouze pro webové stránky, nebo i pro další aplikace. Ty lze rozdělit na aplikace s grafickým uživatelským rozhraním (např. FTP klienty, přihlašování ke vzdálené ploše, Subversion úložiště) a aplikace konzolové, do kterých přihlašovací údaje nelze přenést kopírováním (např. Oracle SQLPlus nebo správa serverů po síti přes PuTTy)
  • Kompatibilita s operačními systémy nebo webovými prohlížeči (v případě aplikací instalovaných jako doplňků)
  • Bezpečnost: ochrana proti keyloggerům, ochrana proti sledovačům schránky, síla šifry, kterou jsou uložená hesla chráněna
  • Sdílení hesel mezi více uživateli: zdali aplikace umožňuje takový způsob užití, kdy s jednou množinou hesel může pracovat více uživatelů
  • Výchovný efekt: zdali aplikace učí uživatele, jak zvolit silné heslo a nabádá jej k jeho pravidelné změně
  • Přenositelnost mezi počítači, použitelnost na mobilních zařízeních
  • Snadnost použití a rychlost: kolik kliknutí myší nebo stisknutí klávesových zkratek musí uživatel provést, aby se někam přihlásil; složitost vložení hesla do databáze, srozumitelnost nastavení

Specializované aplikace pro správu hesel slibují vyšší bezpečnost, ale pokud bychom chtěli vést zaměstnance k jejich používání, je důležité, aby se aplikace snadno používala a nezdržovala zaměstnance od jeho práce.

Důležitým hlediskem bude v praxi také cena dané aplikace. V rámci této práce budou porovnány pouze programy, které jsou k dispozici zdarma, tedy jako freeware, případně shareware, u něhož existuje neplacená (free) verze.

Praktické testy

Testované aplikace budou podrobeny třem testům:

  • Pokus o rozluštění uložených hesel
    Pouze pro aplikace, které ukládají hesla lokálně. K rozšifrování hesel bude použit nástroj určený přímo pro danou aplikaci. Nebude-li takový nástroj nalezen, bude použita univerzální crackovací utilita.
  • Odolnost vůči odposlouchávání kláves
    Automatické doplňování hesel bude sledováno keyloggerem. Na počítači bude nainstalován program Actual Keylogger verze 2.4, který je dostupný zdarma a který zaznamenává stisky všech kláves (nejen znaků), a Revealer Keylogger Free Edition.
  • Odolnost vůči sledování kopírovací schránky
    Během doplňování hesel bude aktivní program Clipboard Monitor 1.01b, který zaznamenává veškerý text zkopírovaný do schránky.
    Pokud se k přenášení hesla používá schránka, bude také zjišťováno, zdali je z ní heslo automaticky smazáno, nebo ve schránce zůstává, dokud není nahrazeno jiným objektem.
    Jsou-li hesla na obrazovce vypsána jako hvězdičky nebo tečky, bude proveden pokus je zkopírovat do textového editoru.

Definice, kategorizace

Do definice „správce hesel“ zahrnuji jak programy, které přihlašovací jména a hesla ukládají na pevný disk počítače, tak aplikace a služby (lokální i webové), které hesla ukládají na server poskytovatele, a dále funkcionalitu vestavěnou ve webových prohlížečích. Do definice naopak nezahrnuji řešení single sign-on, synchronizace hesel mezi aplikacemi, prostředky operačního systému pro uchovávání hesel a autentizaci (LDAP/Active Directory), software, které se integruje s přihlašovacími procesy jiných aplikací a hlídá plnění bezpečnostní politiky (vynucování pravidelné změny hesel, uchovávání historie hesel a zamezení jejich recyklaci, apod.) nebo software sloužící uživatelům či administrátorovi pro změnu či resetování hesel.

Aplikace jsem rozdělil do tří kategorií. V první, na kterou se podíváme dnes, jsou zastoupeny samostatné offline aplikace a jedna (sama o sobě obtížněji zařaditelná) služba na webu. V dalších dílech miniseriálu se podíváme, jak obstály webové prohlížeče, přesněji řečeno jejich integrovaná funckionalita pro správu hesel, a aplikace, které se instalují jako doplněk prohlížeče a nabízejí širší funkcionalitu či vyšší bezpečnost.

Testy aplikací

Specializované aplikace – trezory na hesla

V této kategorii dostanou prostor produkty, které slouží jako univerzální zašifrovaná úložiště hesel. Jejich silnou stránkou je všestrannost a snadná přenositelnost na USB flash disku. Z jejich podstaty je použití zdlouhavější, tedy méně pohodlné, a nutnost heslo zkopírovat nebo opsat znamená bezpečnostní slabinu proti keyloggerům a sledovačům schránky.

Je vhodné poznamenat, že aplikace byly vybrány jako pokud možno reprezentativní vzorek, cílem nebylo srovnat veškeré dostupné programy.

pwArch

Testovaná verze: 1.6.3.0
Licence: freeware
Autor: Clark Tisdale
Domovská stránka: http://www.clarktisdale.com/pwArch.php

Hlavní okno programu s dialogem pro zadávání položek

pwArch ukládá ručně zadané adresy stránek, uživatelská jména a hesla do zip archivu, který je zašifrován uživatelem zadaným heslem. Programů určených pro hádání hesel k zip archivům je celá řada, v archivu jsou hesla uložena jako prostý text. Způsob uložení tedy nelze považovat za bezpečný.

V archivu se nachází textový soubor, ze kterého je možné údaje přečíst i bez aplikace. To ovšem není nutné, neboť pwArch i s uloženými hesly lze umístit na flash disk a nosit stále s sebou.

Šikovný je generátor hesel, který má široké možnosti nastavení. Pomocí kliknutí na tlačítko lze otevřít zadané URL ve výchozím prohlížeči, další tlačítko zkopíruje heslo do schránky. Jasnými nedostatky jsou zobrazování hesel v nezamaskované podobě a jejich přenášení přes kopírovací schránku. Jelikož poslední verze pwArch pochází z roku 2007 a dále už se nevyvíjí, šance na nápravu bohužel není.

KeePass Password Safe

Testovaná verze: 2.13, 1.18, KeePassMobile 0.9
Licence: freeware, open-source
Autoři: kolektiv autorů (http://keepass.info/help/base/credits.html)
Domovská stránka: http://keepass.info/

KeePass se chlubí v první řadě robustní bezpečností. Zatímco webové prohlížeče při použití hlavního hesla šifrují pouze hesla a nikoliv další údaje, KeePass šifruje celou databázi. Použitý algoritmus je AES-256/Rijndael. Databázi odemyká kompozitní klíč (master key), který může mít jeden až tři libovolné prvky z následujícího výběru: heslo (master password), soubor klíče (key file) a uživatelský účet ve Windows. Získaný řetězec znaků je prohnán hashovacím algoritmem SHA-256, standardně šesttisíckrát, což má znamenat zdržení asi jedné sekundy při otevírání databáze a zároveň při každé iteraci pokusu o uhádnutí hesla hrubou silou.

Pro některé šifrovací operace program využívá generování pseudonáhodných čísel. Při vytváření souboru klíče není nic ponecháno náhodě a generátorem náhodných čísel je sám uživatel, který je požádán o nahodilé posouvání myší a bušení do klávesnice (viz obrázek).

Vytváření souboru klíče

Heslo lze z KeePassu přenést do aplikace třemi způsoby:

  • zkopírovat do schránky, odkud je po 12 sekundách smazáno (napadnutelné monitorem schránky),
  • simulací stisků kláves poslaných vybranému oknu (Auto-Type), takto lze automaticky napsat i uživatelské jméno (napadnutelné keyloggerem),
  • kombinací obou způsobů (Two-Channel Auto-Type Obfuscation), kdy je část hesla zapsána simulacemi stisků kláves a část přenesena přes schránku

Ani TCATO není stoprocentně bezpečné, údajně ale v současné době neexistuje spyware, které by sledovalo jak stisky kláves, tak schránku, a dokázalo tak heslo zjistit.

Jelikož je KeePass open-source, existují mutace pro mnoho mobilních zařízení, včetně dvou pro platformu Java Micro Edition. Ty jsou kompatibilní s databázemi KeePassu verze 1.x (je vyvíjena souběžně s 2.x) a hesla z nich lze přečíst, aniž by bylo nutno do potenciálně infikovaného počítače zapojovat flashdisk. Nevýhodou je naopak zranitelnost vůči keyloggerům. I v těchto verzích lze do databáze zapisovat, avšak na alfanumerické klávesnici mobilního telefonu je to velice zdlouhavé a nepohodlné; podobně i kopírování hesel do mobilního prohlížeče je zdlouhavý proces.

KeePass řady 1.x je oproti 2.x chudší o možnost použití uživatelského účtu Windows jako součásti klíče a o funkci TCATO. Naopak nabízí možnost bezpečného kopírování (nutno zvolit v nastavení), při němž heslo není zachyceno clipboard monitorem.

Pro KeePass neexistuje (nebo alespoň není veřejně dostupná) utilita, která by rozšifrovala jeho databázi nebo uhodla jeho hlavní heslo. Pouze pro verzi 1.x existuje python skript jménem „KeePass Self-Bruteforce“, který postupně zkouší hesla ze slovníku a oproti spouštění KeePassu s parametry v cyklu je rychlejší díky tomu, že hesla mění přímo v operační paměti. Autor tvrdí, že skript zvládne na počítači s procesorem Intel Core Duo na frekvenci 2,2 GHz vyzkoušet 50 až 60 hesel za sekundu, což je pro útok hrubou silou nepoužitelné, pro útok na bázi slovníku však více než dostačující. Bohužel se mi ale s KeePass Self-Bruteforce nepodařilo nic otevřít, ani když zvolené heslo bylo v jeho slovníku.

KYPS (Keep Your Password Secret)

Licence: freeware – webová služba
Výrobce: XRTC Unternehmergesellschaft – Andreas Pashalidis
Domovská stránka: http://kyps.net/

KYPS je mezi dalšími testovanými aplikacemi poněkud unikátní a bylo těžké jej zařadit do některé z kategorií. Nejblíže má asi k trezorům na hesla, jedná se však o plně webovou aplikaci a slouží pouze k přihlašování na webové služby. Argumentace, proč byste jej měli používat, je následovná: přihlašujete-li se k nějaké službě z potenciálně infikovaného počítače, nehledě na to, jak bezpečně máte heslo uložené a zašifrované a jak se chráníte proti jeho odposlechnutí keyloggery a clipboard monitory, vždy musíte nějakým způsobem heslo do počítače vložit a odeslat na server. V této fázi přihlašovacího procesu by však heslo mohlo být zachyceno sledováním HTTP přenosů. Ani prohlížeč na flash klíčence přitom nemusí být bezpečný, pokud jej napadne spyware v počítači.

Nejsem si však docela jist, zdali je nabízená alternativa o mnoho lepší. KYPS uživatele ochrání před všemi výše zmíněnými hrozbami, za své služby si ale žádá krutou daň. Je nutné mu předem poskytnout přihlašovací údaje a vygenerovat si jednorázová hesla (tentokrát k jednotlivým službám). Na nezabezpečeném počítači pak uživatel zamíří na stránku KYPS, kde zadá svou registrační e-mailovou adresu, vyplní captcha řetězec, vybere službu, ke které se chce přihlásit, a buď zadá jedno ze seznamu jednorázových hesel, které má vytištěné na papíře, nebo zašle SMS s předdefinovaným heslem (společné pro všechny služby). KYPS se přihlásí za něj a po celou relaci funguje jako proxy server.

bitcoin_skoleni

Bohužel se mi nepodařilo se přes KYPS přihlásit na zcela standardní diskuzní fórum systému phpBB. Bylo mi ostatně docela nepříjemné svěřovat hesla třetí straně, čímž tedy testování KYPS dostálo brzkého konce. Svěřil bych KYPS hesla ke stránkám, které navštěvuji jen pro zábavu? Ne, protože újma z odcizení takových hesel by byla minimální a mě by to při přihlašování pouze zdržovalo. Svěřil bych mu heslo do administrace webu svého zaměstnavatele nebo k bankovnímu účtu? Ani náhodou. Byť z internetové kavárny bych se zřejmě k bankovnímu účtu nepřihlašoval.

Trezory na hesla: tabulka hodnocení a shrnutí

  pwArch 1.6.3.0 KeePass 2.13 / 1.18 KYPS
Univerzálnost použití kdekoliv – web, aplikace s grafickým rozhraním (heslo se kopíruje nebo opisuje ručně); konzolové aplikace (jen ruční opsání) kdekoliv, hesla lze doplnit simulací stisků kláves (doplňuje i do konzolových apl.) nebo zkopírovat pouze web
Kompatibilita s operačními systémy Windows (pro jiné OS nutno zkompilovat zdrojový kód) Windows; Linux, Mac OS, BSD a další s frameworkem Mono nezávislé na OS
Kompatibilita s mobilními zařízeními -- PocketPC, Windows Phone 7, iPhone, Android, Java Micro Ed., BlackBerry
Přenositelnost hesel ano, na flashdisku ano, přes webové úložiště
Pokus o rozluštění heslo uhodne kterýkoliv program určený pro zip archivy funkční program není dostupný údaje se neukládají lokálně
Test keyloggerem program neprovádí simulaci stisků kláves simulované stisky kláves jsou zachyceny program neprovádí simulaci stisků kláves
Test clipboard monitorem při kopírování je heslo zachyceno verze 1.x: kopírované heslo není zachyceno;
verze 2.x: kopírované heslo nebo kopírované znaky při TCATO jsou zachyceny
--
Uživatelská přívětivost, rychlost 1/5 3/5 1/5
Lokalizace do češtiny ne ano ne
Další funkce generování silných hesel generování silných hesel, poloautomatické doplňování, nastavení data expirace hesla --

Skupina offline programů, kterou zastupují pwArch a KeePass, trpí hlavně zdlouhavým zadáváním údajů. Ocenil bych funkci importování hesel uložených v prohlížečích. KeePass se však dobře vypořádal s doplňováním přihlašovacích údajů, přičemž dokáže alespoň do jisté míry chránit proti odposlouchávání kláves a sledování schránky. Možnost přepisování přihlašovacích údajů simulací stisků kláves, ač napadnutelná softwarovým keyloggerem, umí doplňovat i do konzolových aplikací. Neprůstřelný není, nicméně tvůrci to alespoň na rozdíl od komerčních aplikací otevřeně přiznávají. KYPS hodnotím jako přinejmenším kontroverzní aplikaci a z myšlenky svěřit jí svá hesla nemám dobrý pocit.

Stále jste přesvědčeni, že integrovaný správce hesel ve vašem prohlížeči vám plně postačuje? Jak v testech uspěly či neuspěly čtyři nejpoužívanější browsery, se dozvíte v příštím díle.