View Single Post
Sitat av LetMeBleedPLZ Vis innlegg
md5 tables er ekstremt tilgjengelig på Internett, sørg for at md5 hashene er saltet, med feks hashen av brukernavn og bruker id.
da blir det mye vanskeligere å cracket passordet.
si feks at et en bruker "Boogieman" med bruker id "1304" har passord "PassO0OOrd99"
hashen av "Boogieman_1304" er: 843c64a074b22b67ea1ad7c62f0e6c53
så har du passordet sin hash: 007db57ba24537d67e3c60b37452fa79

så legger du disse sammen og regner ut hashen
843c64a074b22b67ea1ad7c62f0e6c53007db57ba24537d67e3c60b37452 fa79 =

b69e501476f57b8e70fd65c22aed65a5 (blir md5 hashen av disse to hashene)

det vil ta ca 302 quattuorvigintillion år å cracke dette med dagens vanlig desktop pc, dersom en person skulle få mulighet for å hente ut hashene fra databasen din.
i tillegg til det så må han nå cracke passord delen når det er ferdig, og da er nok brukeren allerede slettet eller død.
Vis hele sitatet...
Mange forumvarianter gjør allerede dette. Problemet er når man vet algoritmen bak. Hvis jeg sitter med brukerdatabasen din og finner ut at algoritmen din er md5(md5(user)+md5(pass)) så vil du i beste fall redusere hastigheten min med en faktor på litt over 3. (Siden jeg blir nødt til å utføre 3 md5-kalkulasjoner, samt mellomlagre og addere disse). I verste fall kan jeg tweake algoritmene mine til å utnytte kollisjoner og feil som gjøres når md5-hashen brukes i serie på denne måten og få et resultat som er nesten like raskt som før.

Problemet er at md5/sha* er laget for å være ekstremt kjappe, mens f.eks. bcrypt kan tweakes til å ta akkurat så lang tid det måtte passe deg. Tar det plutselig 1 sekund å regne ut passordet så må en angriper bruke forferdelig mye tid på å brute-force. Likevel bruker utviklere md5 den dag i dag. Et annet problem er at folk flest har generelt ekstremt dårlige kunnskaper innenfor kryptografi og generell statistikk. Det er ikke rent sjeldent jeg ser folk kalkulere rand()*rand() for å "øke randomiseringen" f.eks.