V dnešním příspěvku se chci podívat na problém, který se v souvislosti s bezpečností nejrůznějších systémů objevuje stále častěji: přístupová hesla. Pro ty z Vás, kteří ještě nečetli moji první sérii věnovanou bezpečnosti dat a systémů, připomínám, že bezpečnost systému se vždy hodnotí jako bezpečnost souboru technicko-organizačních opatření, kde organizační složka (dnes obvykle označovaná jako politika) je přinejmenším stejně významná, jako její technická podpora.
Pozitivním vývojem posledních cca 10 let je, že technická podpora různých politik a souborů pravidel pro přístup k různým souborům i funkcím dnes již není manažery vnímaná jako snaha programátorů zbytečně navyšovat rozsah zakázek, jak tomu často bylo ještě koncem minulého století. V důsledku toho všechny významné operační systémy nabízejí podporu velmi složitě strukturovaných politik. Jako každý technický pokrok však i toto pozitivum má svůj rub: řada administrátorů se snaží za každou cenu uplatnit co nejvíce systémem nabízených možností, často bez náležitého zvažování, zda jsou potřebné nebo zda dokonce v daném použití nejsou kontraproduktivní.
Nejčastější důsledek, s nímž se často v prostředí veřejného internetu jako uživatel setkávám, jsou nejrůznější omezení tvaru přípustných uživatelských hesel. Zcela, a to úmyslně, ponechám stranou otázku toho, zda je „klasické“ přihlašování dvojicí uživatelské jméno/heslo řešení důstojné 21. století a zájemce o hlubší úvahy tímto směrem odkáži na první sérii těchto článků, zejména na díl věnovaný polatformě NOTEZA. Zamyslím se spíše nad tím, jaká jsou pro a proti restrikce tvaru hesel a kdy jsou na místě a kdy jsou spíše kontraproduktivní.
V praxi jsem se setkal se třemi typy restrikcí,někdy i ve vzájemné kombinaci:
1) Požadovaný počet různých typů znaků (malá a velká písmena, čísla, jiné znaky) v heslu.
2) Požadovaná změna hesla po určité době.
3) Nemožnost nastavit heslo, které již kdykoli dříve bylo použito a poté změněno.
Na první pohled se zdá, že racionální pozadí každého z těchto požadavků je zřejmé a že jejich zavádění by vždy mělo zvýšit celkovou bezpečnost. Pojďme se tedy podívat na kontraindikace jejich použití.
Obecně platí, že uživatel by:
- měl pro každý server (a nejlépe každou službu na něm) používat jiné heslo,
- neměl používat snadno odhadnutelné kombinace (jméno, název služby, datum narození…) a
- rozhodně by si neměl hesla nikde zapisovat (a papírky pak ztrácet nebo soubory se záznamy nechávat dostupné na svém počítači).
Většina uživatelů však není geniálními dětmi s neomylnou pamětí. Proto nejschůdnější cestou k dodržení výše uvedených pravidel je používání určitého systému pro tvorbu těžko odhadnutelných hesel různých pro jednotlivé služby. Potom stačí znát tento (často relativně jednoduchý) systém a použít různé parametry služby (úmyslně nejsem konkrétnější, abych neposkytoval přílišný návod k pokusům o útok) jako mnemotechnickou pomůcku pro vybavení (znovuvygenerování stejného) hesla.
Problém nastane, pokud vzniklé heslo nesplňuje požadavky na přítomnost konkrétních počtů znaků různých typů. Uživatel pak snadno sáhne k některé z nedoporučovaných praktik:
- vygeneruje dosti dlouhé náhodné heslo s obsahem všech myslitelných druhů znaků a to pak používá na všech svých účtech – a proto prolomením jednoho útočník získá přístup všude,
- zapíše si heslo se všemi důsledky pro případ ztráty nebo zcizení takové poznámky nebo
- začne používat snadno zapamatovatelné (ale i odhadnutelné) prvky – datum narození pro přítomnost číslic, jména pro přítomnost velkých (prvních) písmen…
Jakkoli je zřejmé, že není vhodné umožňovat uživateli hesla typu „123“, „heslo“ nebo název serveru, je matematickou pravdou, že (i při použití 7-bitové ascii) je 128n (počet kombinací n libovolných znaků) vždy větší, než 10k * 26l *128m (k povinných číslic, l povinných velkých písmen, m zbývajících (libovolných) znaků) i v případě, že k+l+m = n. Je zde tedy vždy dobrý důvod k zamyšlení, zda a nakolik omezovat formát použitého hesla a nakolik se raději zaměřit na edukaci uživatelů a připomenutí jejich zodpovědnosti (například povinným souhlasem s tím, že poskytovatel nenese zodpovědnost za prolomení hesla, které bylo evidentně slabé).
V souvislosti s tím, kdy uživatel nemůže použít svůj vlastní systém na snadné zapamatování „pseudonáhodného“ hesla, se objevuje ještě jeden problém. U takto fungujících serverů se uživatelé (zejména ti, kteří dotyčný server navštěvují jen sporadicky) často uchylují k tomu, že raději pokaždé použijí proceduru pro připomenutí nebo změnu hesla.
Přitom si je třeba vždy uvědomovat, že tyto procedury bývají často realizovány cestou zaslání e‑mailu a že i v případě, kdy samotný poskytovatel používá pro odeslání tohoto e-mailu zabezpečený (šifrovaný) přístup k SMTP serveru jehož provozovateli věří, nemá žádný vliv a tím méně garanci na to, zda i dále bude e-mail předáván zabezpečenými přenosy nebo přes které servery bude předáván. A i kdyby zde vše bylo bezpečné, samotný uživatel často ke své schránce přistupuje prostřednictvím nezabezpečeného webu…
Navíc se ještě dnes v reálné praxi až příliš často setkávám s tím, že namísto odkazu pro změnu hesla „připomínací“ e-maily obsahují přímo aktuální heslo v podobě plain textu. Bezpečnost takového řešení už snad nevyžaduje žádný další komentář.
Shrnutí:
Jakkoli omezování formátu hesel lákavé a zní „bezpečněji“ a jakkoli se zdá bezpečnější uživatele přinutit k tomu, aby nejlépe každý den používal jiné heslo, v kombinaci s uživatelovou pohodlností, paměťovými schopnostmi a nutností častěji obnovovat zapomenuté heslo se tím často vytváří „modus operandi“, který ve svých důsledcích může být i výrazně méně bezpečný, než ponechat tvar a změny hesla na zodpovědnosti uživatele, případně podpořené vhodnými edukativními doporučeními.
Nabízí se rovněž individuální práce s uživateli na základě namátkových kontrol síly hesla ve strategii aposteriorní bezpečnosti, o níž budu podrobněji hovořit v některém z dalších dílů této nové série.
Perlička na závěr:
Jako i v minulé sérii se zde pokusím pokaždé přinést nějakou novinku nebo zajímavost. Zde ocituji nedávnou studii, kterou provedla NSA a jejíž celkové výsledky (pochopitelně bez dalších detailů) byly publikovány i ve veřejných zdrojích. Podle této studie (spíše praktických pokusů o prolomení) je více než 70% aktivních prvků kritické infrastruktury U.S.A. dosažitelné z veřejného internetu bez použití hesla nebo s použitím defaultních hesel publikovaných v manuálech příslušných zařízení. Obávám se, že závažnost tohoto zjištění opět není třeba komentovat.