NOVINKA: Kurz kybernetickej bezpečnosti teraz už od 0 €. Staň sa žiadaným profesionálom. Zisti viac:
NOVINKA: Staň sa dátovým analytikom od 0 € a získaj istotu práce, lepší plat a nové kariérne možnosti. Viac informácií:

3. diel - Heslá a biometrická ochrana Nové

V minulej lekcii, Symetrická a asymetrická kryptografia , sme si uviedli rozdiely symetrickej a asymetrickej kryptografie a jej využitie v praxi.

V tomto tutoriále kybernetickej bezpečnosti sa pozrieme na ďalšie uplatnenie kryptografie pri ochrane dát. Budeme sa zaoberať najmä heslami, ich bezpečnosťou a ukladaním.

Heslo

Heslo je tradičnou a stále najrozšírenejšou metódou na overenie užívateľa, respektíve toho, či má užívateľ prístup k daným dátam či systému. V zásade využívame heslá dvoma spôsobmi:

  • Heslo tvorí základ pre tvorbu kľúča symetrickej šifry, ktorou sú príslušné dáta zašifrované. Výhodou tohto prístupu je, že k takýmto dátam až do zadania hesla nemá prístup nikto, dokonca ani samotný systém. Pokiaľ by teda došlo ku kompromitácii systému v dôsledku odcudzenia či straty disku, dotyčná osoba sa k takto chráneným dátam bez hesla nedostane.
  • Heslo slúži iba na overenie, či ho daný užívateľ pozná. K samotným dátam už systém prístup má, napríklad heslo do Windows.
Využitie hesla na overenie

Väčšina používateľov si pravdepodobne za procesom overenia pomocou hesla predstaví, že je heslo niekde v systéme uložené a keď ho používateľ zadá, heslo sa jednoducho porovná s tým uloženým a ihneď poznáme výsledok. Je pravda, že niektoré jednoduchšie aplikácie, napríklad starší starší správcovia súborov, to týmto spôsobom do dneška naozaj robia. Avšak do väčšiny z nich už aspoň pribudlo varovné hlásenie podobné tomuto:

POZOR: Ukladanie hesiel nie je bezpečné!

Dnes už ale žiadny aspoň trochu zabezpečený systém tento spôsob nevyužíva. Pretože v prípade úniku takého súboru s heslami, napríklad v dôsledku hacknutia servera, by mal útočník k dispozícii všetky heslá v otvorenej podobe.

Ilustračný obrázok – skryté znaky pri zadaní hesla - Kybernetická bezpečnosť - Kybernetická bezpečnosť

Získané heslá by ihneď mohol skúsiť niekde použiť a my by sme si navyše museli vždy vytvoriť a zapamätať heslá úplne nové, pretože tie pôvodné by boli kompromitované. A preto sa aj v systéme, ktorý inak k vlastným dátam prístup má, používa metóda ukladania hesiel, pri ktorej ani systém otvorenú podobu hesla nepozná. Namiesto hesla sa totiž ukladá takzvaný hash.

Hash

Hash je jednocestná kryptografická funkcia, ktorá z vloženého textu vytvorí sekvenciu bajtov. Tá je síce pre daný vstup jednoznačná, ale vstup samotný už z nej nemožno nijako odvodiť. Príkladom jednoduchej hashovacej funkcie môže byť napríklad checksum, kde dôjde k sčítaniu hodnôt všetkých bajtov zo vstupu. Je samozrejmé, že rovnaký vstup vždy vytvorí rovnaký výstup, avšak konkrétny vstup z výstupu už spätne odvodiť nemožno.

Porovnanie hesla prebieha tak, že sa spočíta hash zo zadaného hesla a porovná sa s hashom uloženým v systéme. Pokiaľ teda útočník získa súbor z hashi uložených hesiel, nikde ich nemôže zadať a ani sa nedozvie, aké heslá sme si vymysleli.

V praxi sa dnes stretávame predovšetkým s modernými hashovacími funkciami určenými na ukladanie hesiel, ako je napríklad Argon2, bcrypt alebo scrypt. Staršie funkcie ako MD5 sú z bezpečnostných dôvodov už považované za nevhodné.

Riešenie má stále drobnú vadu, a to pokiaľ dvaja používatelia použijú rovnaké heslo. V tomto prípade sú potom aj ich hasha na prvý pohľad rovnaké. Útočník si navyše môže pripraviť tabuľku hashov najbežnejších hesiel a ukradnuté hashe hesiel s ňou porovnávať. To je významne rýchlejšia a efektívnejšia metóda, než vždy každý hash počítať znova. Z tohto dôvodu sa k heslu pred jeho hashovaním pridáva ešte takzvaný salt.

Salt

Salt alebo kryptografická soľ predstavuje niekoľko náhodných bajtov, ktoré slúžia ako doplňujúci vstup do hashovacej funkcie a uložia sa spolu s hashom hesla. "Osolený" hash má potom rôznu hodnotu aj keď sú pôvodné heslá rovnaké.

Solenie hesiel - Kybernetická bezpečnosť - Kybernetická bezpečnosť

Aj napriek všetkým vyššie uvedeným opatreniam však stále zostáva získanie takého zoznamu hesiel pre útočníka obrovskou výhodou. Síce mu nezostáva nič iné, než každé možné heslo rovnakým spôsobom zahashovať a výsledok porovnať s tým uloženým, ale stále je táto metóda mnohonásobne rýchlejšia, než skúšať heslo napríklad po sieti prostredníctvom skriptu či dokonca ručne.

Ak útočník využije výkonný hardvér, napríklad veľké množstvo grafických kariet (GPU), môže pri použití nevhodných alebo rýchlych hashovacích funkcií dosahovať veľmi vysoký výkon pri skúšaní hesiel. To výrazne skracuje čas potrebný na ich prelomenie.

Správne zvolené heslo by síce malo takýmto útokom odolať, v praxi sa však nemožno spoliehať na to, že si používateľ vždy zvolí dostatočne silné a skutočne náhodné heslo.

Preto najbezpečnejšiu vychytávku predstavuje ukladanie hesiel pomocou mnohonásobne opakovaného hashovania. Počet opakovaní sa obvykle volí tak, aby na pôvodnom počítači celý cyklus trval medzi 0,1 – 1 sekundou. To pri bežnom overení užívateľa nijako významne nezdržuje a zároveň extrémne sťažuje / spomaľuje možnosť opakovaného skúšania útočníkom metódou BFA.

Využitie hesla pre tvorbu kľúča

Analogické metódy sa používa pri ochrane vlastných dát symetrickou šifrou. Namiesto toho, aby sa dáta priamo šifrovali kľúčom odvodeným z užívateľom zadaného hesla, najprv sa vytvorí na tento účel náhodný a dostatočne dlhý kľúč, ktorým sa dáta skutočne a jednorazovo zašifrujú. Tento kľúč sa potom viacnásobne zašifruje pomocou užívateľského hesla ak súboru priloží.

Dešifrovanie samotného kľúča sa týmto spôsobom zámerne spomalí, čím sa stane odolnejším proti odskúšaniu útočníkom, zatiaľ čo šifrovanie či dešifrovanie vlastných dát zostane rýchle. To je veľmi dôležitá vlastnosť, pretože dáta môžu byť veľké (napríklad u videa). Počet iterácií sa obvykle nastavuje podľa požadovanej úrovne zabezpečenia a výkonu zariadenia. V niektorých nástrojoch (napríklad VeraCrypt) sa tento parameter označuje ako PIM.

Požiadavky na bezpečné heslo

Teraz už vieme, prečo je heslo také dôležité a aké vlastnosti by správne zvolené heslo malo mať. Musí existovať dostatočný počet jeho variácií, aby bolo výpočtovo nezvládnuteľné ich všetky vyskúšať. Počet variácií s opakovaním ľahko vypočítame ako množinu prvkov, z ktorých sa môže skladať, umocnená na počet tvoriaci ich skupinu.

Ilustračný obrázok hackera skúšajúceho prelomiť heslo - Kybernetická bezpečnosť - Kybernetická bezpečnosť

Pokiaľ by sme napríklad uvažovali bežný štvorznakový PIN, ktorý sa môže skladať z desiatich číslic (0-9), potom je počet ich možných variácií 10 4, teda 10 000. Dôležitá je ako množina znakov, ktoré môžu tvoriť heslo, tak aj jeho dĺžka. Avšak dĺžka hesla je výrazne dôležitejšia, pretože počet variácií s dĺžkou hesla rastie exponenciálne.

Dĺžka hesla

Za prakticky neprelomiteľné sa považuje 20-miestne heslo, a to ak použijeme množinu znakov: číslice, malé a veľké písmená (62 možných znakov anglickej abecedy) alebo 18-miestne heslo, ak navyše použijeme bežné špeciálne znaky (množina približne 90 možných znakov celkom). Oboje dáva priestor pre variácie rádovo 10 35. Heslá pre bezpečnostnú úroveň C2 by mali mať dĺžku aspoň 13 znakov.

Profil osoby

Ďalšou základnou bezpečnostnou požiadavkou na heslo je jeho neodhadnuteľnosť útočníkom na základe psychologického profilu osoby, ktorá heslo vytvárala. Ak sa osoba volá Alena Nováková a je narodená 25.12.1974, tak heslo typu AlenkaNovakov&25.12.1974 prelomíme počas prvej hodiny bez ohľadu na to, že má 24 znakov, veľké aj malé písmená a dokonca dva špeciálne znaky.

PIN a bezpečnosť krátkych hesiel

Výnimku z vyššie uvedeného predstavuje PIN k platobnej karte, ktorý má iba 4 číslice, napriek tomu môže byť v praxi dostatočne bezpečný. Je to preto, že jeho použitie je obmedzené špeciálnymi podmienkami.

Po prvé, nie je možné sa ľahko dostať k uloženým dátam v čipe karty. Po druhé je výrazne obmedzený počet pokusov o zadanie PINu – po niekoľkých chybných pokusoch dôjde k zablokovaniu.

Táto ochrana je zaistená pomocou špeciálneho hardvéru, ktorý bráni ako opakovanému skúšaniu PINu, tak pokusom o fyzické narušenie čipu. V niektorých prípadoch sa navyše počíta aj s určitým rizikom zneužitia ako súčasťou celkového návrhu systému.

Biometrická ochrana

Biometrická ochrana je založená na overovaní fyzických vlastností človeka, ktorými sa jednotlivé osoby líšia. Najčastejšie sa jedná o odtlačok prstov alebo sken tváre. Na rozdiel od hesiel či fyzických kľúčov má dve obrovské výhody:

  • Užívateľ ich nemôže zabudnúť alebo stratiť.
  • Overenie je rýchlejšie a pre užívateľov častokrát pohodlnejšie ako písať heslo alebo hľadať po vreckách kľúče.
Na druhú stranu by sme si mali uvedomiť nasledujúce bezpečnostné riziká:
  • Naša tvár či odtlačky prstov sú verejne známe, nechávame ich doslova všade. Ich zneužitie na útok síce nie je úplne triviálne, ale pre profesionála s príslušným vybavením to nepredstavuje vážnejšiu prekážku.
  • Je oveľa jednoduchšie na skener pritlačiť náš prst alebo na nás zariadenie namieriť, než z nás získať prístupové heslo.
  • U väčšiny zariadení je možné pri fyzickom prístupe k hardvéru túto ochranu obísť, hoci ani toto nebýva úplne jednoduché av praxi sa skôr využívajú prvé dve metódy.
Z týchto dôvodov nie je vhodné používať biometrickú ochranu ako jedinú metódu zabezpečenia pri citlivejších systémoch. V praxi sa však veľmi často využíva v kombinácii s ďalšími metódami (napríklad ako súčasť viacfaktorového overenia).

V nasledujúcom kvíze, Kvíz - Základy kyberbezpečnosti, kryptografia a heslá, si vyskúšame nadobudnuté skúsenosti z predchádzajúcich lekcií.


 

Predchádzajúci článok
Symetrická a asymetrická kryptografia
Všetky články v sekcii
Kybernetická bezpečnosť
Preskočiť článok
(neodporúčame)
Kvíz - Základy kyberbezpečnosti, kryptografia a heslá
Článok pre vás napísal David Janko
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje poradenství převážně v oblasti kybernetické bezpečnosti.
Aktivity