Dobry vecer,
na toto tema jsem precetl povicero clanku z ruznych zdroju a minuly semestr jsme na toto tema zamerili jednu celou prednasku... trosku se rozepisu a velice rad uvidim dalsi argumenty pro/proti
Hned na uvod... skoleni uzivatelu na dulezitost spravy hesel nema zadny vliv na jejich chovani (papirky nalepene na monitoru, a i posledni pruzkum ukazuje, ze 2 nejpouzivanejsi hesla jsou "123456" a "password").
Ruzne urovne sluzeb (mail na spamy vs internetove bankovnictvi) by mely mit ruzna hesla. Nekolik mesicu zpatky unikly fotky celebrit z cloudovych ulozist... neutocilo se na bezpecnostni mechanismy Applu/Dropboxu etc., ale na hesla uzivatelu (argument nechavat uzivatele 500x zadat heslo v pripade Applu se da (alespon z meho pohledu) povazovat za selhani Applu)... klasicky slovnikovy utok -> hadana byla nejcasteji pouzivana hesla a svete div se, cloud Rihanny a plno dalsich slavnych osobnosti bylo (je) mozne timto zpusobem "prolomit".
Nektere sluzby (z minulosti typicky MS CHAP) hesla upravovaly stylem... pokud je kratsi 14 znaku, doplnit nulami - fail (MS i tuto slabinu o dost zvetsil),
vsechna mala pismena prevedena na velka - fail (snizeni mnoziny znaku viz kombinatorika),
sifrovani prolomenou sifrou - fail (zpetna kompatibilita, takze i po vylepseni slabina zustala) a jeste nekolik dalsich blbosti, ktere v MS udelali... pevne verim, ze uz se dnes takova zverstva nedelaji.
Zpusob ukladani hesel na serveru...
Nektere servery hesla ukladaji v otevrene podobe, takze v pripade uspesneho utoku jsou hesla plne k dispozici a pokud nekdo totez heslo pouziva i na mail, bankovnictvi, dokazete si dusledky predstavit... verte, ze takovych lidi neni malo!
Pak existuje tzv. hash - jednosmerna funkce (ze "zasifrovaneho" retezce neni mozne dohledat puvodni retezec), kdy je retezec libovolne delky "zasifrovan" na retezec delky konstantni. Na tohle existuji ruzne algoritmy (MD5, SHA-1, ...). Problem je v tom, ze pokud uzivatel1 a uzivatel2 maji stejne heslo, hashe tohoto hesla jsou shodne... existuji databaze jiz "predpocitanych" hashu, takze ani toto neni idealni zpusob.
Poslednim zpusobem je metoda soleni (salted hash), kdy se k heslu uzivatele prida retezec znaku, ktery je pro kazdeho uzivatele unikatni, a az tato "smes" se prozene hashovaci funkci... stejna hesla dvou ruznych uzivatelu maji ruzne hashe.
V pripade metody soleni (bezpecneho ukladani hesel na serveru) a neomezovani stupidnimi podminkami viz MS CHAP (doplnovani/zkracovani hesla) existuje povicero zpusobu, jak vytvorit bezpecne heslo.
Priklad:
oblibene souveti a z neho vybrat prvni 2 pismena z kadeho slova, idealne nahodne vlozit cislici (ci jiny znak)
Nepotesil jste mne, ale ani ja Vas nepotesim -> NeJsMn6AlAnJaVaNe
priklad hadani hesla hrubou silou z hlediska kombinatoriky... v pripade dobreho ulozeni ze strany serveru (salted hash) a "odposlechu" poctu stisku klaves utocnikem a znalosti mnoziny znaku, utocnik zna nasledujici: heslo ma 17 znaku a sklada se z malych a velkych pismen a cislic... algoritmus utoku hrubou silou (zkouseni vsech moznych hesel)... malych pismen je 26 + velkych 26 + cislic je 10 = 62 moznosti na prvni znak hesla, vsech ostatnich 16 znaku hesla ma stejnou moznost, takze z teto mnoziny je mozne vytvorit 62^17 hesel... a to jen v pripade, ze utocnik vi, ze mame 17 mistne heslo slozene z techto znaku

zkuste mnozinu znaku hesla rozsirit o dalsi znaky !@#$%^&*()_ ... casova slozitost "hadani" hesla s jeho delkou roste exponencialne (jiny priklad... 2-mistne heslo slozene z malych a velkych pismen a cislic = 62^2=3844, ale v pripade 3-mistneho hesla je to uz 62^3=238328 moznosti atd...).
Stale spolehame na bezpecne ukladani hesla na serveru, absenci Man in the Middle utoku, absenci keyloggeru...
Bezpecne heslo je dostatecne dlouhe (opet pozor na slovnikovy utok), takze pri tvorbe hesla velice zalezi na fantazii... na to ovsem navazuje problem zapamatovani takoveho hesla (proto uvadim priklad zname fraze/vety, ci jine mnemotechnicke pomucky, ktere zapamatovani usnadni). Pak nastupuji password managery... Last Pass, TrueCrypt atd.
Odpoved na Vase otazky...
proc je heslo "mojeprababicka" silnejsi nez "babicka"?
Protoze v pripade brute-force utoku (hadani vsech moznych kombinaci v mnozine malych pismen) je rozdil hadat 26^14 (mojeprababicka) a 26^7 (babicka), protoze kombinatorika. V pripade slovnikoveho utoku si nejsem vetsi bezpecnosti tolik jisty...
Jak má dnes vypadat správné heslo?
Dostatecne dlouhe a dostatecne velka mnozina znaku - pozor... muze byt limitovano ze strany serveru (jedna cislice, minimalni delka 6 znaku a maximalni 14) atd.
Jaká délka hesla má ještě nějaký vliv, vzhledem k tomu, že se heslo šifruje do nějaké standardní bytové délky?
Vlastnostni hashe jsem popsal vyse... na hashovaci funkce se utoci veeeelmi zridka (spis nikdy)... delka hesla viz predchozi otazka a limity serveru.
Nejlepsi zpusob, jak se utokum branit, je vzit se do role utocnika
Pokud neco neni jasne nebo chcete probrat detailneji/srozumitelneji, staci rict
