Portál AbcLinuxu, 1. května 2025 22:33
Jednak může být problém ve škále dostupných hashovacích algoritmů, které nabízejí dostupné knihovny. Dále maximální (efektivní) délka hesla není jediným kritériem; celkem chápu, že je-li na výběr mezi MD5 (délka prakticky neomezená, John the Ripper 8671 hesel za sekundu) a Blowfish (efektivní délka hesla 16 znaků, John the Ripper 358 hesel za sekundu), dá leckdo přednost Blowfishi, protože těch 16 znaků považuje za více než dostatečnou délku.
Mimochodem, pokud je řeč o HTTP Basic Authentication, připadají mi podobné úvahy poněkud bezpředmětné…
AFAIK někdy od sedmdesátých let. Dnes už se ovšem u téměř žádných novějších systémů nepoužívá.
Když už si chcete hrát na chytrého, měl byste být schopen rozlišit mezi označením DES jako symetrické blokové šifry a označením DES coby algoritmu pro hashování hesel. Nebo si snad myslíte, že to, co se při hashování hesel označuje jako "MD5" je algoritmus MD5, tak, jak je popsán v RFC 1321?
S spočítá si hash(heslo+salt) ← tady server potřebuje znát původní heslo S→K: salt=123456 K→S: hash(heslo+salt) Server zkontroluje, zda klientem poslaný hash odpovídá tomu, který si sám spočítal.První možná změna (která už ale vyžaduje zásah do protokolu) by byla, že se místo hesla použije jeho hash – server si tak nebude muset pamatovat otevřený tvar hesla:
S spočítá si hash2(hash1(heslo)+salt) ← serveru stačí uložený hash1(heslo) S→K: salt=123456 K→S: hash2(hash1(heslo)+salt) Server zkontroluje, zda klientem poslaný hash odpovídá tomu, který si sám spočítal.Ale pokud by uživatel použil stejné heslo na více serverech, bude uložený
hash1(heslo)
na těch serverech stejný, a jeho získání by vzhledem k těmto serverům bylo ekvivalentní získání hesla.
Takže by bylo potřeba použít třetí variantu
S spočítá si hash2(hash1(heslo+salt1)+salt2) ← serveru stačí uložený hash1(heslo+salt1) a salt1 S→K: salt1=123456, salt2= 789012 ← salt1 zůstává stále stejný (pro 1 serevr), salt2 se mění s každým požadavkem K→S: hash2(hash1(heslo+salt1)+salt2) Server zkontroluje, zda klientem poslaný hash odpovídá tomu, který si sám spočítal.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.