Treba takto:
(salt je samozrejme nekolik nahodnych znaku a slouzi jen k tomu, aby dva uzivatele, kteri maji nahodou stejne heslo nemeli ulozeny stejny hash; pro zjednoduseni se da vynechat)
Spocitam si
hsh = hash(salt+heslo)
a ulozim si (salt, hsh).
Klientovi poslu (challenge, salt)
klient precte od uzivatele heslo_c a posle
resp = hash(challenge + hash(salt+heslo_c))
na serveru si spocitam
check = hash(challenge + hsh)
pokud heslo_c == heslo, pak
hash(salt+heslo_c) == hsh
a tedy
resp == check,
takze prijmeme uzivatele, ktery zada spravne heslo
A naopak:
pokud resp == check, tak bud se heslo_c==heslo, anebo jsme nalezli kolizi
hashovaci funkce, budto v
hash(salt+heslo_c) == hash(salt+heslo), kde heslo != heslo_c,
anebo az po pricteni challenge,
tedy uzivatele, ktery zada nespravne heslo s vysokou pravdepodobnosti odmitneme.
Tady take asi maji nejakou chybicku. 1459 obrazku pro sberatele starych fotek se svlecnami za par minut:
#!/bin/bash
for Fold in `seq -w 10 100`; do
for Pic in `seq -w 1 20`; do
URL="http://www.vintageporncafe.com/0"$Fold"/biggies/00"$Pic".jpg"
echo "Now:" $URL
wget -O $Fold"-"$Pic".jpg" $URL
done
done
Na tomhle serveru jsou ale opravdu nemozni bastliri. Kdyz uz nemaji osetreno, aby jim neprihlaseni navstevnici lezli, kam se jim zachce, mohli si aspon ty ukazkove fotografie nakopirovat do jineho adresare tak, aby clovek nemohl uhodnout schema, podle ktereho pojmenovavaji adresare a fotky v hlavnim skladisti. Navic mezi temi fotkami maji hafo duplikatu (zcela identickych) a flomcaji tak uloznym mistem.
To ale může být feature - když tam mají duplikáty, vypadá to, že je fotek víc. 1500 fotek, to je dohromady tak 150 mega. Místa na disku je habaděj, duplikát sem, duplikát tam.
Rána kolem 8 hodiny byl na zive "nový článek", který odkazoval na zde popsané stránky s nadpisem cca. "Sysel hacknul zive.cz". Tento "článek" včetně stejného threadu ve fóru několik minut po osmé nenávratně zmizel. Tedy "ona místa" byla informována..