Alíkovina

Jak fungují hesla?

vydáno  v 4:30  •  Bezpečnost

Přemýšleli jste někdy nad tím, co se přesně děje, když se přihlašujete do svého oblíbeného webu? Napíšete uživatelské jméno, heslo a puf, najednou systém ví, že vy jste vy. Ale vaše heslo ve skutečnosti nezná.

Abstraktní ilustrace k informatice, © TheDigitalArtist

Přesněji řečeno, pokud je ten web napsaný správně, tak by heslo znát neměl. Proto vám také neřekne, když procházíte přes formulář pro zapomenuté heslo, jaké přesně heslo jste vlastně zapomněli, ale buď vygeneruje nové náhodné, nebo vám nějak nabídne možnost zadat jiné. To zapomenuté prostě nikdo nezná.

Na uložení hesel se používají takzvané jednosměrné šifry. Běžná (tedy obousměrná) šifra převádí jednu zprávu na druhou beze ztrát. Hodně známá je třeba Cézarova šifra, kde se vyměňují písmenka podle nějaké předem dohodnuté převodní tabulky:

TELEVIZE HRAJE => YRARBOUR JTSKR

V tomto případě jsem vyšel z pozice písmenek na klávesnici. Jakmile pochopíte konkrétní použitý postup šifrování, jste schopní rozluštit původní text. Různé jednoduché šifrovací triky si můžete prohlédnout v Zašifrované nástěnce (www.alik.cz/n/zasifrovana-nastenka). U obousměrné šifry bývá cílem, aby příjemce zprávy (a ideálně nikdo jiný!) dokázal bezchybně rozluštit, co mu je sdělováno.

Jednosměrné šifry o bezchybnost neusilují. Jejich cílem je naopak vytvořit poškozenou zprávu – takzvaný otisk – ve kterém je původní sdělení rozmělněno. Třeba můžou seřadit písmenka podle abecedy:

TELEVIZE HRAJE => AEEEEHIJLRTVZ

Z této změti písmenek už původní sdělení jednoznačně poskládat nejde, protože existuje spousta zpráv se stejným otiskem...

HRAJE TELEVIZE => AEEEEHIJLRTVZ
HELE ZAVIREJTE => AEEEEHIJLRTVZ
ZERETE JIHLAVE => AEEEEHIJLRTVZ
HAZEJ VERITELE => AEEEEHIJLRTVZ
... a tak dále.

Na vytváření otisků existuje v informatice spousta prověřených postupů, obvykle se písmenka převádějí na čísla a provádí se s nimi poměrně masivní množství matematických operací – součty, násobení, zbytky po dělení, mocnění. Výsledkem je jedno obrovské číslo (zvané hash, čteno [heš]) poskládané ze stovek nul a jedniček. Drobná změna v šifrovaném sdělení změní hodnotu otisku k nepoznání.

Pokud se tedy někde registrujete, systém si neukládá skutečné heslo, ale jen jeho otisk. Kdykoliv se přihlašujete, tak z vámi zadávaného hesla také vygeneruje otisk stejným způsobem a porovná ho s tím, který má uložený v databázi. Pokud se otisky shodují, je velmi pravděpodobné, že bylo zadané stejné heslo jako při té registraci. Docela chytré, že?

Bystrý čtenář teď namítne „velmi pravděpodobné, to ale neznamená, že je to jisté!“ – a má pravdu. Existuje ve skutečnosti mnoho různých hesel, kterými byste se mohli přihlásit. Dokonce jich je teoreticky nekonečno. 8-o

Nicméně šance, že by se někdo dokázal trefit do hesla se stejným otiskem, je astronomicky malá. Pravděpodobně by to jiné pasující heslo mělo statisíce znaků, takže je mnohem pravděpodobnější, že útočník nějakým způsobem uhodne vaše heslo, než že by si tipnul sáhodlouhou posloupnost roztodivných znaků, kterým by vyšel stejný otisk.

Prověřené jednosměrné šifry bývají tak komplikované, že i kdybyste znali otisk, tak zpětné odvození nějakého pasujícího hesla je strašně moc výpočetně náročné. Pokud se někdo nabourá do cizí databáze, prakticky jedinou možností, jak z ní může vycucat hesla, je metoda pokus-omyl, to jest zkoušet hrubou silou všechny možné kombinace znaků, počítat z každé z nich otisk a ten porovnávat s uloženým otiskem. Když vás nějaký program nebo web nutí dávat do hesla malé i velké znaky, čísla a speciální znaky, nebo zadat delší heslo, dělá to právě proto, aby útočník potřeboval řádově víc pokusů na prolomení. Heslo složené třeba ze čtyř číslic jde prolomit až příliš snadno.

Doufám, že jsem popsal toto zákoutí kryptografie srozumitelně. Je snad teď i docela dobře patrné, jak velký důraz se klade na to, aby byla hesla skutečně tajná. Svoje heslo nikdo nikomu neříkejte. Ani provozovatel webu by se vás na něj nikdy neměl ptát. Opatrný uživatel ho nikam jinam než do registračního a přihlašovacího formuláře nikdy nepíše.

Autor:
» přejít do diskuse

Diskuse k článku  (7)

Příspěvek z 18. května ve 14:08.
Alfa_Beta v něm napsala:

To má, už jen tím, jak vymyslel ty aprílové hodnost. Je dobře, že rozvíjí alíka.

Příspěvek z 17. května v 17:57.
Farmář12 v něm napsal:

-MM- má skvělé nápady....!

Příspěvek z 16. května v 18:16.
JáJá1 v něm napsal:

Nezbytečný článek.:-)$>