Autentizace: řekni mi své heslo
V tomto příspěvku se dozvíte, jaké jsou hlavní výhody a nevýhody autentizace založené na tom, že uživatel něco ví.
Tato nejpoužívanější autentizační metoda je nejčastěji založena na znalosti uživatelského jména a hesla, které se často také označuje jako sdílené tajemství mezi uživatelem a systémem. Identifikace a autentizace v takovém případě probíhá tak, že uživatel je systémem vyzván k zadání svého uživatelského jména a hesla a systém porovná zadané údaje s údaji, které má uložené ve své databázi. Služba, která tento proces zajištuje se nazývá authentication service a předává zadané údaje (credentials) autentizační autoritě (authentization authority). K přenosu autentizačních údajů se používá, resp. měl by se používat bezpečný autentizační protokol. Ten obvykle využívá principů symetrické a asymetrické kryptografie.
Výhody
Hlavní výhodou této nejpoužívanější metody je, že nevyžaduje, aby na počítači, ze kterého se bude uživatel do systému přihlašovat, byla instalována nějaká speciální HW nebo SW komponenta. Uživatel se tak v podstatě může přihlašovat odkudkoliv a nic k tomu nepotřebuje.
Nevýhody
Hlavní nevýhodou této metody je, že uživatel si musí heslo pamatovat a v okamžiku, kdy se hlásí do více systémů, jsou na jeho paměť kladeny značné nároky. To uživatele často vede k tomu, že si hesla začne zapisovat nebo používá do všech systému hesla stejná nebo jen mírně odlišná. V okamžiku, kdy je jeden systém kompromitován, útočník se může pokusit odvodit hesla v dalších systémech.
Možnosti útoků
Heslo může být poměrně snadno odpozorováno, odchyceno, zcizeno, uhádnuto nebo prolomeno a uživatel se o tom nemusí ani dozvědět. V okamžiku, kdy útočník zná uživatelské jméno a heslo, může se za oprávněného uživatele vydávat. (Říkáme, že došlo ke krádeži identity.) Jednotlivé možností útoků si dále popíšeme včetně způsobů, jak se jim bránit.
Sociální inženýrství
Jedná se pravděpodobně o vůbec nejstarší a nejjednodušší metodu, kdy se útočník pokusí získat vaše heslo za použití technik sociálního inženýrství. Své heslo nikomu nesdělujte, nikdo kromě vás ho nepotřebuje vědět. Dejte si také pozor, abyste se nestali obětí phishingu nebo pharmingu a nezadali tak své heslo do aplikace, které se pouze tváří, jako přihlašovací formulář do systému (fake logon screen) a ve skutečnosti přihlašovací údaje odesílá útočníkovi. Neklikejte na odkazy v mailu, byť by se zdálo, že vám mail zaslala třeba vaše banka. Adresu webu raději napište ručně.
Zcizení hesla
Hesla si nikam nezapisujte a rozhodně je nenechávejte napsaná na lístečku pod klávesnicí, přilepená na monitoru, na stole, zapsaná v kalendáři, který máte na stole apod. Když však si svá hesla přesto nemůžete zapamatovat nebo je sdílíte s kolegy, např. heslo k účtu root nebo administrator, těžko se asi jejich zapsání vyhnete. V takovém případě by zapsané heslo mělo být uloženo na bezpečném místě, nejlépe v trezoru, který není možné snadno otevřít nebo odnést. (Nechávat klíč od trezoru viset v kanceláři na zdi za dveřmi není dobrý nápad;-) Vzhledem k tomu, že s hesly často pracuje i systém, měli bychom se podívat také na to, jak jsou hesla v systému uložena, protože útočník by je mohl získat přímo ze systému. Hesla by proto v systému rozhodně neměla být uložena v otevřeném tvaru. Měla by být použita nějaká bezpečná jednocestná funkce a v systému by měl být uložen jen jejich hash. Přístup k takovému souboru by měl být na úrovni systému dostatečně chráněn.
Odpozorování hesla
Heslo by mělo být zadáváno tak, aby bylo sníženo riziko, že ho jiná osoba odpozoruje. Měli bychom zajistit, že nikdo jiný neuvidí, jaké heslo při přihlašování oprávněná osoba zadává. Je proto žádoucí, aby se při zadávání místo hesla na obrazovce zobrazovaly hvězdičky nebo jiné zástupné znaky. Nejbezpečnější však je, když se na obrazovce neobjevují při zadávání hesla znaky žádné. To je pro uživatele na jednu stranu trochu nepohodlné, protože nemá od systému zpětnou vazbu o tom, kolik znaků z hesla již zadal, ale na stranu druhou útočníkovi, který na obrazovku vidí, neposkytuje informaci o délce svého hesla. Útočník bude v takovém případě nejspíš sledovat, které klávesy byly stisknuty. V běžném životě může být problém v tom útočníkovi zabránit, rozložení kláves je totiž pevně dáno a za určitých podmínek lze podle umístění prstů nad klávesnicí usuzovat na to, co bylo asi tak stisknuto. Útočníkovi může pomoci i to, zda se prsty nacházely nad numerickou klávesnicí nebo zda byl stisknut přeřaďovač. Poslechem též může zjistit, kolik kláves bylo stisknuto. Navíc existuje riziko, že heslo bude odpozorováno i v okamžiku, kdy se v těsné blízkosti uživatele nikdo nenachází. Informaci o tom, které klávesy byly stisknuty, může útočník získat např. pomocí kamery, která bude namířena na klávesnici. Taková kamera může být umístěna v podstatě kdekoliv. Některé společnosti pro snížení tohoto rizika požadují po uživateli při každém přihlášení zadání jen některých znaků z hesla. V takovém případě systém uživatele vyzve, aby zadal znak, který se v jeho hesle nachází např. 2, 5 a 7 pozici. Při příštím přihlášení uživatele se samozřejmě jedná o jiné pozice. Je zřejmé, že pokud by se útočník chtěl dozvědět všechny znaky, které heslo obsahuje, musel by uživatele pozorovat déle, resp. musel by zachytit jak výzvu systému, tak i uživatelovu odpověď. Pokud by jen sledoval, jaké znaky uživatel zadává, věděl by sice, které znaky heslo obsahuje, ale ne na jaké pozici. V případě, že by uživatel obdržel výzvu např. přes telefon, byl by takový útok značně ztížen. Mimochodem zajímavý článek i diskuse ohledně hvězdičkování hesel je např. na synopsi.
Odposlechnutí hesla
Dle studie Keyboard Acoustic Emanations je možné za použití mikrofonu nahrávat zvuk, který vydává stisk jednotlivých kláves a následně tyto zvuky analyzovat a s určitou přesností zjistit, které klávesy byly stisknuty.
Odchycení hesla na SW úrovni
Pokud se jedná o odchycení hesla na SW úrovni, může k tomu dojít např. tak, že na počítači, na kterém se uživatel přihlašuje, je nainstalován keylogger. Ten se nejspíš bude maskovat, takže ve správci úloh ho v seznamu běžících procesů pravděpodobně nenaleznete. Z těchto důvodů se používá např. virtuální klávesnice, kdy se heslo zadává klikáním myši na klávesnici, která je vykreslena na obrazovce. Ale v okamžiku, kdy se na počítači nachází speciální verze keyloggeru, může být kliknutí na virtuální klávesnici spojeno se sejmutím obrazovky včetně pozice kurzoru. V takovém případě nepomůže ani to, že se rozmístění kláves na virtuální klávesnici pomocí nějakého algoritmu mění. Kromě toho může být kliknutí na danou klávesu potvrzeno změnou barvy nebo zamáčknutím tlačítka a tak je možné zadávané heslo i odpozorovat. Opatření proti keyloggeru není až tak snadné, jak by se mohlo na první pohled zdát. Jako obrana před jednoduchým keylogerem by mělo stačit před vlastním přihlášením zkontrolovat integritu systému. Jedině tak máme šanci zjistit, že SW konfigurace počítače nebyla změněna. To znamená, že po instalaci systému z důvěryhodného zdroje vytvoříme pro všechny kritické soubory kontrolní součet např. za použití hashovaní funkce SHA 256. To ale na počítači, který není pod naší správou, uděláme asi dost těžko. Pro ještě vyšší pocit bezpečí je možno systém zavádět z nepřepisovatelného média. CD nebo DVD s live distribucí Linuxu se jeví pro takový účel jako ideální. Integritu systému na CD nebo DVD asi těžko někdo naruší. Avšak pozor, i zde hrozí riziko, že takový systém bude napaden. Daná verze systému a aplikací na CD nebo DVD se totiž časem stane zranitelná, pokud ji nebudete aktualizovat. V tomto případě to znamená, že je nutné si vypálit na CD nebo DVD vždy aktuální verzi. Stejný problém budete muset samozřejmě řešit i v případě, že použijete virtuální stroj a systém budete provozovat v něm. Kromě toho keylogger nemusí být vůbec nainstalován v operačním systému, ale může se nacházet i jinde např. v MBR, BIOS, PCI EEPROM. Jde o to, zda váš systém, podporuje to, čemu se říká trusted boot process (TBP). Pokud ne, může proběhnout útok např. podle scénáře, který popsala na svém blogu Joana Rutkowska.
Odchycení hesla na HW úrovni
V případě, že má útočník k zařízení fyzický přístup, může se pokusit heslo odchytit za použití speciálního HW. Předpokládejme, že uživatel používá systém, který podporuje TBP a svůj systém zabezpečil tak, že k odchycení hesla na SW úrovni již nemůže dojít. Může k němu však stále dojít na HW úrovni. Keylogger může mít podobu malého zařízení, které bude umístěno přímo v klávesnici nebo na konci kabelu vedoucího do počítače. Ochrana proti změně HW konfigurace a začlenění nežádoucího HW je na první pohled velice snadná. Dokonce mnohem snadnější než v předchozím případě. Na druhý pohled však natolik otravná, že nelze předpokládat, že by ji někdo opravdu nasadil. Mělo by stačit zakoupit a použít kvalitní zámek, který by vniknutí do počítače zabránil. Před každým použitím počítače by uživatel musel nejprve zkontrolovat, zda se zámek nachází na svém místě, zda nejeví známky mechanického poškození. Dále by ho musel zkusit odemknout a zamknout. To pro případ, že by útočník vyměnil celý zámek. Stejně tak by musel zkontrolovat celý počítač, včetně periférií, zda nejeví známky mechanického poškození. To by znamenalo, že by musely být zapečetěny všechny šrouby a konektory a celistvost těchto pečetí by musela být před každým použitím počítače zkontrolována. Běžně se to proto řeší tak, že se celý počítač umístí do uzamykatelného boxu a pro uživatele je dostupná jen klávesnice, myš a obrazovka (tzv. kiosk mode). Takto zabezpečený počítač se nachází pod nepřetržitým kamerovým dohledem nebo je fyzicky hlídán pracovníkem ostrahy.
Odchycení hesla při přenosu po síti
V okamžiku, kdy máme počítač zabezpečen po HW i SW stránce, nesmíme zapomenout na to, že heslo může být též odchyceno při přenosu po síti, která již není pod naší správou. To znamená, že bychom neměli používat aplikace, které hesla přenášejí v otevřeném tvaru. Tedy žádné SMTP, POP, FTP, HTTP nebo TELNET. Opatření je jednoduché, heslo nebo rovnou celou komunikaci raději šifrovat.
Odchycení hesla při použití bezdrátové klávesnice
V poslední době se v zásadě používají dvě technologie. Ta momentálně používanější a také méně bezpečná pracuje na rádiovém frekvenčním pásmu 27MHz a má dosah až 2 metry. Tato vzdálenost se však jeví v případě použití této technologie v kanceláři, kdy jsou jednotlivé počítače umístěny zpravidla vedle sebe nebo proti sobě jako zcela postačující pro získání hesla, které se přenáší mezi klávesnicí a přijímačem umístěným v počítači. Podobná situace může nastat i v případě dvou sousedících bytů nebo kanceláří, kdy jsou počítače umístěny proti sobě a odděluje je jen stěna. Druhé, podstatně dražší a bezpečnější řešení je postaveno na technologii Bluetooth, které má sice oproti předchozí technologii větší dosah, ale komunikace mezi klávesnicí a počítačem je šifrována.
Uhádnutí nebo prolomení hesla
Nepoužívejte jednoduchá hesla, která mají nějaký vztah k vaší osobě nebo práci. Za bezpečné nelze považovat ani takové heslo, které je napsané pozpátku nebo obsahuje slova s jednoduchou příponou a předponou. Takové heslo může útočník snadno uhádnout nebo prolomit. Pokus o prolomení hesla může probíhat on-line, v takovém případě útočník hádá hesla proti autentizační autoritě nebo off-line, za předpokladu, že máme k dispozici hash hesla. Útok může být veden tzv. hrubou silou (brute-force attack), kdy zkoušíme postupně všechny možnosti nebo se může jednat o tzv. slovníkový útok (dictionary attack) , který spočívá ve vyzkoušení nejčastěji používaných hesel, až po všechna v daném jazyce běžně používaná slova (kvalitní slovník jich může obsahovat až několik set tisíc). Kromě toho se v těchto slovnících vyskytují i slova, která v běžných jazykových slovnících nejsou, např. názvy společností, výrobků, slova s gramatickými chybami apod. Posledním typem útoku je tzv. rainbow-attack, který je založen na kombinaci dvou předchozích způsobů, kdy se za použití slovníku vytvoří databázi hashů a ta je následně k útoku použita.
Poznámka: Heslo (password) je řetězec znaků, kterým uživatel potvrzuje svoji identitu v rámci procesu autentizace. V případě, že se jedná pouze o řetězec čísel, je možné hovořit o passcode nebo PIN. V případě, že je řetězcem skupina slov, můžeme hovořit o passphrase. Passcode je zpravidla nejkratší, password je delší a passphrase nejdelší. My se však budeme držet v našem jazyce běžně používaného pojmu heslo.
V některém z příštích dílů našeho seriálu o autentizaci si povíme, jak vytvořit bezpečné a přitom snadno zapamatovatelné heslo.
Štítky: autentizace, informační bezpečnost
K článku “Autentizace: řekni mi své heslo” se zde nachází 2 komentáře.
Diskuse na tomto webu je moderována. Pod článkem budou zobrazovány jen takové komentáře, které nebudou sloužit k propagaci konkrétní firmy, produktu nebo služby. V případě, že chcete, aby z těchto stránek vedl odkaz na váš web, kontaktujte nás, známe efektivnější způsoby propagace.
Další způsob jak pomocí smartphonu položeného poblíž klávesnice zjistit jaké klávesy uživatel stiskl.
K tomu rainbow som si spomenul na osetrenie hesla „solou“ pred zaheshovanim, potom pri brute force sice ziskate retazec, ktory ale nemusi byt citatelny.