Runar Skrevet 19. mars 2007 Del Skrevet 19. mars 2007 Jeg har en tabell hvor jeg lagrer medlemmer og deres passord, men hvilken kryptering er best å bruke nå? Jeg har brukt md5 hittil, men ble usikker når jeg så sha1 og crc32. Hvilken av disser tre gir best beskyttelse? Lenke til kommentar
j-- Skrevet 19. mars 2007 Del Skrevet 19. mars 2007 Om du bruker MySQL kan du jo bruke PASSWORD('$var') Lenke til kommentar
BigJackW Skrevet 19. mars 2007 Del Skrevet 19. mars 2007 (endret) Jeg anbefaler sha1() da den er nyest samt den genererer en 40-tegns hash, mens md5() genererer en 32-tegns lengde. Anbefaler også forøvrig å legge til en unik streng for å gjøre det sikrere. f.eks. når du skal hashe passordet gjør du slik: $secretSHA1string = "ejx834yfth85hj43jg54hg548923j"; sha1($secretSHA1string . $_POST['passord']); Pass på at når du sjekker passordet må du også ha med den hashen xD Endret 19. mars 2007 av BigJackW Lenke til kommentar
Mats Danielsen Skrevet 19. mars 2007 Del Skrevet 19. mars 2007 Sha1() med noe salt og pepper funker fint! Vet phpBB2 bruker md5() med noe pepper! Det du også kan gjøre er f.eks. bruke str_replace() og bytte f.eks. e ut med 24 osv, kode: $string = str_replace("e", "24", $string); Lenke til kommentar
Bakke Skrevet 19. mars 2007 Del Skrevet 19. mars 2007 (endret) Hva med å blande sha1 og md5? F.eks: $string = md5($string); $string = sha1($string); Tror ikke du får det noe sikrere en det... Edit: Dei fleste typer cracke-program, f.eks "cain & abel", kan kun cracke en spesiel type hash. Når du blander to hash'er blir slike program udugelige, da må du skrive din egen cracker. Dette vil sette script-kiddies ut av spill Endret 19. mars 2007 av mhbakke Lenke til kommentar
BigJackW Skrevet 19. mars 2007 Del Skrevet 19. mars 2007 (endret) eller gjøre slik: $string = sha(sha(sha(sha(sha(sha(sha(sha(sha(sha(sha($string)))))))))))); Endret 19. mars 2007 av BigJackW Lenke til kommentar
mske Skrevet 19. mars 2007 Del Skrevet 19. mars 2007 Som BigJack sier, ville jeg også valgt sha1(), da den er nyest og også genererer en lengre hash. Lenke til kommentar
Ernie Skrevet 19. mars 2007 Del Skrevet 19. mars 2007 Hva har nyest og lengden på hash med sikkerhet å gjøre da? Lenke til kommentar
genstian Skrevet 19. mars 2007 Del Skrevet 19. mars 2007 På alle versjoner av php5 så er hash inkludert. De som ikke har det har somregel mhash. hash: hash_hmac('sha512', $passord, 'salt og pepper'); hash_hmac('tiger192,4', $salt . $passord, 'pepper'); mhash (har verken sha512 eller tiger192): mhash(MHASH_SHA256, $passord, 'salt og pepper'); mhash(MHASH_TIGER160, $salt . $passord, "pepper"); Lenke til kommentar
Anders Moen Skrevet 19. mars 2007 Del Skrevet 19. mars 2007 Er ikke md5 sikkert nok da? Jeg bruker bare md5 og ser egentlig ikke hvorfor den ikke er sikker...for meg printer den bare ut en masse tall og bokstaver. Hehe, men dere "proffe" klarer vel å finne ut hva som står etter at den har blitt md5 kryptert. Lenke til kommentar
-morten Skrevet 19. mars 2007 Del Skrevet 19. mars 2007 Man kan ikke reversere MD5 og andre hasher på noen matematisk måte. Men man kan ta en ordbok, hashe alle ordene, og så søke i hash-listen sin etter passordhashen man har fått tak i. Det viktigste er altså at passordet ikke er så enkelt at det finnes i en ordbok. En måte å gjøre det på er å legge til en salt (en tilfeldig tekst-streng med masse varierte tegn) foran passordet, slik at en angriper også må få tak i saltet, samt generere ny hash-liste. Det går også an å lagre et unikt salt per bruker, slik at en cracker må lage ny hash-liste for hvert passord han vil finne. En dobbelthash som md5(sha1($string)) osv, gir også noe av samme effekten som en felles salt. Men å nøste dem enda flere ganger er ikke noe vits. Angående MD5, så er det er funnet en effektiv metode for å finne en streng som gir samme MD5-hash som en annen streng, eller noe i den duren. Det er et problem hvis man bruker MD5 som checksum for å bekrefte ekteheten til et dokument osv, men har ikke like mye å si for oss som bruker det som en passord-hash på små nettsteder. Da er det et større problem at noen har kommet seg så langt inn på systemet at de har fått tak i hele brukerdatabasen. Det er funnet svakheter i SHA-1 også, men de krever betydlig mer regnekraft enn svakheten i MD5. Lenke til kommentar
BigJackW Skrevet 20. mars 2007 Del Skrevet 20. mars 2007 Jeg fant ut passordet til en ved, da passordet var lagret i MD5. Jeg fikk cracka det på en secret side Jeg gjort det opptil flere ganger. Lenke til kommentar
Mats Danielsen Skrevet 20. mars 2007 Del Skrevet 20. mars 2007 mailw0rm garantert, jeg har også min egen jeg bruker som er mekka av meg! Lenke til kommentar
endrebjo Skrevet 20. mars 2007 Del Skrevet 20. mars 2007 (endret) Man kan ikke reversere MD5 og andre hasher på noen matematisk måte. Men man kan ta en ordbok, hashe alle ordene, og så søke i hash-listen sin etter passordhashen man har fått tak i. Det viktigste er altså at passordet ikke er så enkelt at det finnes i en ordbok. 8192401[/snapback] Man trenger jo ikke nødvendigvis å hashe en ordbok så lenge passordene har et høvelig antall tegn.Bruteforce blir ofte nevnt sammen med MD5 (og andre hash-typer), og fungerer ved at du prøver alle mulige kombinasjoner av tall og bokstaver, og hasher det. Da hjelper det ikke så veldig med salt, bortsett fra at "passordet" som er utgangspunkt for hashen blir lenger. Men med mange tegn trengs det vannvittige mengder regnekraft. A til Å, a til å og 0 til 9 blir 68 muligheter (og man kan legge til mange flere tegn). Med 10 tegns passord blir det 68^10 muligheter (2 milliarder milliarder). Alle disse mulighetene skal også hashes og søkes. Å skrive en enkel bruteforce-greie er ikke vanskelig, men det er regnekraften som må til som gjør det vanskelig. Endret 20. mars 2007 av endrebjorsvik Lenke til kommentar
genstian Skrevet 20. mars 2007 Del Skrevet 20. mars 2007 For ikke å glemme at sha512/tiger192 krever mer regnekraft enn md5/sha1 samt at HMAC krever enda mer. 8 tegns passord med 8 tegns salt og 8 tegns HMAC Noen som gir 16^8^68 muligheter. ca 1,0996907317744048201180239191185e+655 Lenke til kommentar
Ståle Skrevet 21. mars 2007 Del Skrevet 21. mars 2007 Men hvis man bruker sin egen streng + passordet og så hasher det, så er det mye vanskeligere å finne. Selv om passordet er a. $hash = md5('8amrvtw9r5sd353ir32r' . $passord); Lenke til kommentar
Ernie Skrevet 21. mars 2007 Del Skrevet 21. mars 2007 For ikke å glemme at sha512/tiger192 krever mer regnekraft enn md5/sha1 samt at HMAC krever enda mer. 8 tegns passord med 8 tegns salt og 8 tegns HMAC Noen som gir 16^8^68 muligheter. ca 1,0996907317744048201180239191185e+655 8200112[/snapback] Altså, du kan ikke regne ut antall kombinasjoner sånn. Først må du jo ta utgangspunkt i antall muligheter pr. tegn, altså 68 og opphøye det i antall tegn. Dette må så tilslutt ganges med antall kombinasjoner i HMAC. Det du ender opp med blir da ca 9,5546e+43. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå