Kapitola 2 – Kdo jsem a co smím
Lidé umí jednotlivé osoby od sebe poměrně snadno rozeznat například podle vzhledu nebo hlasu. Počítače ale smysly nemají, a proto jim musíme svou identitu prokázat nějakou metodou autentizace.
Jakmile se počítači nebo počítačovému systému prokážeme, proběhne ještě autorizace, která definuje, co můžeme provádět.
1. Úvod
My lidé umíme v reálném světě poměrně snadno rozeznat jednotlivé osoby od sebe a u osob známých i rozpoznat, o koho přesně se jedná. Počítač to má mnohem složitější a člověk mu musí svou identitu prokázat způsobem, který je výpočetní technika schopna zpracovat. Proto existují různé metody přihlašování k počítačovým systémům.
Dalším krokem, který lidé provádějí podvědomě, je posouzení, co všechno daná osoba smí – například projít vrátnicí, požádat o poskytnutí oběda, půjčit si propisku apod. Počítačové systémy také nemůže používat každý stejně, například student nemůže zapisovat svůj výsledek zkoušky, to smí jen zkoušející, učitel zase nemůže měnit sylabus předmětu, toto oprávnění má garant předmětu. Počítačové systémy tedy obsahují seznamy uživatelů a jejich oprávnění, která nastavují administrátoři systémů podle požadavků nebo pracovního zařazení daného uživatele.
Zkrátka, jelikož se dnes řada činností neobejde bez světa počítačů, musí počítač poznat, kdo jste (autentizace) a na základě přidělených oprávnění vás nechá (nebo nenechá) provést specifikované činnosti (autorizace).
2. Elektronická identita (Kdo jsem…)
Elektronická identita je interpretace konkrétní osoby v kybernetickém světě. V reálném světě má každý člověk jednu fyzickou identitu, avšak v kybernetickém jich často používá několik (soukromá emailová schránka, univerzitní konto, pracovní emailová schránka, internetové bankovnictví, sociální sítě apod.).
Elektronická identita je v počítačových systémech uložena jako jednoznačný identifikátor, obvykle je označován jako uživatelské jméno. Tento identifikátor není nijak tajný – například v eshopech je uživatelským jménem typicky emailová adresa. Některé organizace, například banky, používají identifikátor, který není navenek spojen s danou osobou nebo známým číslem účtu, takže útočník musí při krádeži identity uhodnout nejprve platné uživatelské jméno.
Fyzická osoba, která danou elektronickou identitu vlastní, musí tuto skutečnost počítači nějak prokázat, protože uživatelské jméno není tajné a zná jej i někdo jiný než vlastník. Pouze tomu, kdo se správně prokáže, je následně umožněno elektronickou identitu užívat.
Vlastnictví elektronické identity můžeme prokázat různými způsoby (tzv. metody autentizace). Nejčastější, nejjednodušší a univerzální metodou je znalost tajné informace, nejčastěji hesla, PINu (Personal Identification Number), ale může jít i o tajné gesto (opsání prstem po displeji správný tajný tvar) apod. Identita může být také ověřena vlastnictvím předmětů – typicky čip, identifikační karta, biometrické znaky (otisky prstů) apod.
Počítač ale již není schopen poznat, jestli tajnou informaci zadal ten, komu patří, nebo ten, kdo ji pouze získal a zadal. Praktickým důsledkem je, že pokud někdo získá vaše heslo nebo vám ukradne vaši identifikační kartu, může používat vaši elektronickou identitu a v podstatě se za vás vydávat.
Naštěstí lze slabá místa vyztužit vícestupňovou obranou, o které jsme se bavili v kapitole Základní principy a motivace. Uživatel (ale i potenciální útočník) postupně musí absolvovat více metod ověření v tomuto postupu se říká vícefázová autentizace. V praxi se lze nejčastěji setkat s tzv. dvoufázovou autentizací (často se zkracuje na 2FA), kdy jsou požadovány dvě metody ověření – typicky se jedná o klasické heslo doplněné o zadání kódu z SMS odeslané na přednastavené telefonní číslo, případně opsání časově proměnného kódu z propojené aplikace v telefonu.
Proč zrovna dvoufázová autentizace? Proč ne tří nebo čtyř?
Přidání druhé fáze – první je znalost a druhá vlastnictví (kdo vlastní daný mobilní telefon, může si přečíst SMS) zvyšuje bezpečnost přihlašování výrazně. Přidáním dalších fází se bezpečnost také zvyšuje, ale přínos není (vyjma supertajných agentur) už tak velký jako náklady a také tím více trpí pohodlí uživatelů.
Tomu, kdo by se chtěl za nás vydávat, tak již nestačí získat heslo, ale musí se zmocnit i telefonu, který je opět často zabezpečen gestem, otiskem prstu nebo číselným kódem.
Takto ne – nesprávně užitá dvoufázová autentizace
Dnešní smartphony jsou plnohodnotné počítače a jsou tak i používány, což často vede k tomu, že do internetového bankovnictví se lidé přihlašují ze smartphonu, na který jim chodí ověřovací SMS. Pokud by však někdo zařízení kompromitoval, ovládne snadno oba kanály – vidí, co je zadáváno za jméno i heslo, a může si i přečíst doručené SMS. Útočník má tedy vše naservírováno na zlatém podnose.
Úroveň zabezpečení elektronické identity je potřeba zvolit podle toho, jak je elektronická identita cenná a o co můžeme přijít (vzpomeňte na povídání o ceně bezpečnosti z kapitoly Základní principy a motivace). Heslo do eshopu, kde jednou nakoupíme a nemáme tam uložena čísla platebních karet, můžeme volit jednodušší, ale např. heslo k univerzitnímu kontu je již ve vyšší kategorii, protože jeho zneužití může napáchat velké škody, od ztráty prestiže univerzity po například ztrátu zaměstnání. Do nejvyšší kategorie spadá soukromá emailová schránka, pomocí níž je často možné obnovit hesla do ostatních služeb, a vše, kde jde o peníze, tedy typicky internetové bankovnictví.
3. Problematika hesel
Přihlašování pomocí hesla je stále nejrozšířenějším způsobem autentizace, protože je snadné, levné a uživatelé jsou na něj zvyklí. Jak si správně zvolit heslo a jak s ním správně zacházet, jsou nezbytné znalosti, které pomohou chránit elektronickou identitu.
Heslo by mělo odolávat všem možným způsobům kompromitace – vzpomeňme na princip nejslabšího článku. Rizikem může být i nezodpovědné chování správců služeb, ke kterým se přihlašujete (např. eshop). K různým službám, jako jsou eshopy, sociální sítě, univerzitní konto, elektronické bankovnictví apod. tedy volíme různá hesla. Pokud by někdo získal heslo z jedné služby, nedostane se s ním do ostatních.
Podle důležitosti služby volíme hesla také přiměřeně složitá (opět souvisí s cenou za bezpečnost). Složitost hesla chrání před tzv. útokem hrubou silou, kdy útočník generuje náhodná hesla a zkouší se jimi přihlásit stejně jako uživatel. Pokud heslo obsahuje několik typů znaků (tj. malá písmena, velká písmena, číslice a speciální znaky jako tečky nebo lomítka) nebo je dlouhé, vznikne velmi mnoho možných kombinací a uhodnout to správné bude trvat opravdu dlouho. Navíc po určitém počtu pokusů server většinou zablokuje možnost přihlášení a zkoušení se tím omezí.
Útočník také může proniknout na server poskytovatele služby a ukrást zde uložená hesla. Naštěstí dnes již nikdo rozumný hesla neukládá v otevřené čitelné podobě, ale hesla jsou ukládána bezpečně zašifrovaná tak, že útočník nemůže ze získaných informací hesla nijak snadno odvodit. Útočník ale nesmí získat ani zašifrovanou podobu hesel. Pokud by ji získal a uhodnul typ použité šifry, nic by mu nebránilo zkoušet opět náhodně generovaná hesla zašifrovat stejnou šifrou – a porovnávat, zda zašifrovaná podoba hesla souhlasí s tím, co ukradl na serveru. Pokud ano, uhodnul správné heslo. Ale tentokrát už není omezen počtem možných špatných přihlášení a může provádět takový počet pokusů o rozluštění, jaký mu umožňuje výpočetní výkon, který má k dispozici.
Doba potřebná k rozluštění hesla na výkonném zařízení
Předpokládejme, že útočník má k dispozici počítač schopný vyzkoušet 20 miliard kombinací za sekundu.
K vyřešení nám poslouží vzorec pro variaci s opakováním, tj. nk , kde n je počet možných znaků a k je počet znaků tvořících „slovo“.
Heslo ze 4 číslic:
číslice 0–9, tj. 10 možných znaků, 4 znaky v hesle
104 = 10 tisíc kombinací
Rozluštěno za 0,0000005 sHeslo složené z 8 znaků, kdy jsou použita malá a velká písmena a číslice:
počet malých písmen = 26
počet velkých písmen = 26
počet číslic = 10
tj. 62 možných znaků, 8 znaků v hesle
628 = 218 340 105 584 896 = 218,3 bilionů kombinací
Rozluštěno za cca. 3 hodinyHeslo složené z 10 znaků, kdy jsou použita malá a velká písmena a číslice:
počet malých písmen = 26
počet velkých písmen = 26
počet číslic = 10
tj. 62 možných znaků, 10 znaků v hesle
6210 = 839 299 365 868 340 224 = 839 299,4 bilionů kombinací
Rozluštěno za cca. 486 dnůCelkový počet kombinací tedy zvyšuje jak počet různých použitých znaků, tak délka hesla.
Útočníci jsou však mazaní a ví, že většina uživatelů si nevolí hesla zcela náhodná, takže si sestavují seznamy hesel (tzv. slovníky). Další možností získání hesla je tedy tzv. slovníkový útok, kdy nejsou zkoušena náhodná hesla tvořená náhodnou kombinací znaků, ale rovnou relativně malá množina slov, která se pro hesla používají. Takovým příkladem je např. Heslo123, takové heslo by netrvalo rozluštit 3 hodiny (viz výpočet) ale zlomek sekundy, protože je na jednom z čelních míst ve slovnících.
Z požadavku, aby heslo odolalo všem výše uvedeným hrozbám, vyplývají tato rozumná doporučení pro volbu kvalitního hesla:
- Dlouhé – alespoň 12 znaků, čím více tím lépe.
- Složité – použity kombinace různých skupin znaků, tj. malá písmena, velká písmena, číslice, interpunkce nebo další speciální znaky (středník, zavináč, lomítko). Nižší složitost je možno kompenzovat délkou.
- Jedinečné – pro každou kombinaci uživatelského jména a hesla by mělo být použito jiné heslo.
- Pravidelně měněné – zvláště v těch případech, kde není použita dvoufázová autentizace. Interval změny by měl být přiměřený ceně toho, co heslo chrání a dalším použitým prvkům zabezpečení. Obvykle tento interval definuje poskytovatel služby.
4. Autorizace (Co smím…)
Jak již bylo uvedeno v úvodu, ne každý a za všech okolností může provádět stejné akce v systému. Stejně jako v reálném světě, kdy například trestní úkony se zločinci mohou provádět policisté a nikoli občané. V počítačových systémech je to podobné a je tedy nutné po ověření totožnosti uživatele nastavit tomuto uživateli příslušná oprávnění, roli.
V praxi je v každém počítačovém systému seznam uživatelů a jejich rolí. Tyto role nastavuje správce systému na základě potřeb vlastníka systému. Často jsou také role přidělovány na základě účasti v definované skupině, například systém nemusí znát všechny studenty, ale po přihlášení studenta si systém ověří, že se o studenta jedná, a přidělí mu automaticky studentská práva. Pokud v systému máte rolí více a systém, resp. jeho uživatelské rozhraní, se pro každou roli liší, je zpravidla možné role přepínat a vidět tak uživatelské prostředí odpovídající dané roli s jeho funkcemi.
Je nutné, aby nadřízený měl všechna oprávnění svých podřízených?
Nikoli. V případě přidělování oprávnění je dobré ctít pravidlo minimálního přístupu. Tedy pokud nadřízený nezná přesný sled činností svého podřízeného, neměl by mít oprávnění toto provést. Může tím udělat více škody než užitku.
5. Shrnutí
V této kapitole jsme se dozvěděli, co je elektronická identita a jak ji počítačovým systémům prokazujeme. Dále že svou elektronickou identitu je třeba střežit jako oko v hlavě, protože její ztráta může mít nedozírné důsledky. Správná volba hesla a zacházení s ním může útočníkovi znemožnit její zneužití. Kde to jde, je vhodné jít cestou vícestupňové obrany ve smyslu vícefázové autentizace. Dále jsme se dozvěděli, že ne všichni mohou v počítačových systémech provádět stejné operace a jejich oprávnění je tedy nastavováno administrátorem systému tak, jak si to přeje vlastník systému.