Historie hesel: od starověku až po moderní hackery

Historie hesel sahá až do starověku. Zjistěte, jak funguje hashování, jak útočníci hesla prolomí a jak se bránit.

Historie hesel sahá až do starověku. Zjistěte, jak funguje hashování, jak útočníci hesla prolomí a jak se bránit.


Starověk: hesla existovala dávno před počítači

Hesla nejsou vynález digitální doby. Římská armáda používala tzv. tesserae – dřevěné destičky s denním heslem, které vojáci předávali od jednotky k jednotce. Kdo heslo neznal, neprojde.

Stejný princip fungoval po celou historii lidstva: heslo jako sdílené tajemství mezi dvěma stranami. Jedna strana ho zná a vpustí vás, druhá strana ho nezná a zůstane venku.

Zdroj: https://www.britannica.com/topic/watchword


Digitální éra: první počítačová hesla

První počítačový systém s hesly vznikl na MIT v roce 1961. Systém CTSS (Compatible Time-Sharing System) jako první umožnil více uživatelům sdílet jeden počítač a každý měl svůj účet chráněný heslem.

Hesla byla tehdy ukládána jako prostý text přímo na disku. Nikdo příliš nepřemýšlel nad tím, co by se stalo, kdyby se k souboru dostal někdo neoprávněný. Svět byl jednodušší.

Zdroj: https://web.mit.edu/multics-history/source/Multics_Internet_Memo/memo.html


Kryptografie: proč hesla nestačí ukládat jako text

Představte si, že si zapíšete PIN od bankovní karty na papírek a dáte ho do peněženky vedle karty. Přesně tak vypadalo ukládání hesel v prostém textu.

Řešení přišlo s kryptografií, konkrétně s konceptem jednosměrné funkce. Jednosměrná funkce je matematická operace, kterou lze snadno provést jedním směrem, ale prakticky nelze obrátit.

Jednoduchý příklad: vynásobit dvě velká prvočísla je snadné. Ale vzít výsledek a zpětně zjistit, která dvě prvočísla ho tvoří, je extrémně náročné. Na tom stojí moderní kryptografie.

Zdroj: https://www.khanacademy.org/computing/computer-science/cryptography


Co je hash a jak funguje

Hash je výsledek průchodu dat tzv. hashovací funkcí. Zadáte heslo, funkce ho „promele“ a vydá pevně dlouhý řetězec znaků. Stejné heslo vždy vyprodukuje stejný hash. Ale z hashe nelze heslo zpětně rekonstruovat.

Praktický příklad s algoritmem SHA-256:

  • Heslo: Praha1234
  • Hash: e3b7a2f1c9d4... (64 znaků hexadecimálně)

Když se přihlašujete do systému, server nezná vaše heslo. Zná pouze jeho hash. Porovná hash toho, co jste zadali, s hashem uloženým v databázi. Pokud se shodují, jste vpuštěni.

Takže i když útočník ukradne databázi, získá pouze hashe, ne hesla samotná.

Zdroj: https://csrc.nist.gov/projects/hash-functions


Jak se hesla ukládají v praxi

Moderní systémy nepracují pouze s hashem. Používají tzv. salt – náhodný řetězec znaků, který se přidá k heslu před hashováním.

Proč? Protože bez saltu by dvě osoby se stejným heslem měly identický hash. Útočník by to poznal a věděl, že prolomením jednoho hesla získal hned dvě.

Se saltem je každý hash unikátní, i když hesla jsou stejná:

  • Uživatel A: Praha1234 + salt x7k2m = unikátní hash
  • Uživatel B: Praha1234 + salt p9q4r = jiný unikátní hash

Zdroj: https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html


Jak útočníci hesla prolomí

Slovníkový útok (Dictionary attack)

Útočník má seznam milionů nejčastějších hesel a jejich variant. Projde seznam, hashuje každé heslo a porovnává s ukradenou databází. Hesla jako heslo123, qwerty, Praha2024 padnou během vteřin.

Hrubá síla (Brute force)

Útočník zkouší systematicky všechny kombinace znaků. Krátká hesla padnou rychle. Heslo délky 6 znaků (pouze malá písmena) má přibližně 300 milionů kombinací, moderní hardware to zvládne za minuty.

Rainbow tables

Předpočítané tabulky hashů pro všechna možná hesla do určité délky. Útočník nemusí nic počítat za běhu, jen vyhledává. Proti tomu chrání právě salt zmíněný výše.

Credential stuffing

Útočník vezme seznam přihlašovacích údajů uniklých z jedné služby a zkusí je na jiných. Funguje proto, že spousta lidí používá stejné heslo na více místech. Stačí jeden únik a jsou ohrožené všechny vaše účty.

Zdroj: https://owasp.org/www-community/attacks/Credential_stuffing


Co z toho plyne pro vás

Teorie je pěkná, ale co s tím dělat v praxi?

Používejte dlouhá hesla. Délka je důležitější než složitost. Heslo kocka-sedi-na-strese je bezpečnější než K0c!k4 a zároveň si ho zapamatujete.

Každá služba, jiné heslo. Jeden únik nesmí ohrozit všechny vaše účty. Správce hesel (Bitwarden, KeePass) vám s tím pomůže.

Zapněte dvoufaktorové ověření. I kdyby útočník znal vaše heslo, bez druhého faktoru se nepřihlásí.

Zkontrolujte, zda vaše heslo neuniklo. Na webu https://haveibeenpwned.com zadáte e-mail a zjistíte, zda se vaše přihlašovací údaje objevily v nějakém uniku.


Potřebujete pomoct se zabezpečením?

Pokud si nejste jistí, zda jsou vaše hesla v bezpečí, nebo chcete nastavit správce hesel pro sebe nebo svou firmu, ozvěte se. Poradím vám nebo vše nastavíme společně.

Leave a Reply

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *