Gå til innhold

Kryptering og dekryptering av passord i database


Anbefalte innlegg

Driver og lager en medlems-site hvor det bl.a. er mulig for regisitrerte medlemmer å logge inn. Pr. i dag bruker jeg MD5 til kryptering av passord, lagret i en MySQL-database. Ved innlogging bruker jeg strcmp (stringcompare?) i sjekk på passordet. Dette fungerer alldeles utmerket, men skal nå utvide funksjonaliteten litt.

 

Planen er å lage en 'glemt passord'-funksjon, slik at man (som alltid) ber om å få tilsendt passordet på nytt ved å legge inn e-postadressen sin i et skjema. Men da det er litt vrient å dekryptere passordet slik det er laget nå, tenkte jeg å bruke AES_ENCRYPT/AES_DECRYPT på passordene i stedet.

 

Jeg har kikket litt på det, men får det ikke helt til - er det noen som har et forslag til hvordan jeg best mulig kan legge passordene inn i databasen med AES_ENCRYPT, og samtidig bruke strcmp på passordsjekken? Ser det er anbefalt å bruke BLOB-felt ved bruk av AES_ENCRYPT, men da vil jeg vel støte på et problem ved bruk av strcmp?

Lenke til kommentar
Videoannonse
Annonse

Passord er jo ikke laget for å kunne dekrypteres, hvis de kan det er ikke systemet ditt sikkert(da kan andre og helt sikkert også gjøre det)! Den eneste sikre muligheten som jeg ser det er at medlemmene får tilsendt et tilffeldig generert passord når de trykker på glemt passord-knappen. Så kan de eventuelt skifte passord igjen når de har logget inn på nytt...

Lenke til kommentar

Jeg har tenkt den tanken også, men det finnes da en viss mulighet for at en eller annen 'luring' legger inn e-postadressen til en bruker og ber om nytt passord. Så kommer brukeren og skal logge inn uten å ha lest e-posten sin....da går innloggingen heller dårlig.

 

Sikkerheten trenger ikke være SÅ streng, så derfor tenkte jeg at jeg skulle prøve varianten med dekryptering. Det er jo tross alt brukt på flere nettsteder av mer 'offentlig' karakter.

Lenke til kommentar

Hvorfor skulle andre få bestemme hvem sin epost det skal sendes til? Hvorfor ikke legge til et ekstra felt når man registrer seg som man skriver inn eposten i?

 

Om du gjør det trenger man bare skrive brukernavnet i "glemt passord"delen også blir det nye passordet sendt til brukerens epost :)

Lenke til kommentar

Her brukes e-posten som innloggingsnavn :-/

 

Og uansett - hvis man har brukernavnet 'mittbrukernavn', kan det godt hende at noen gjetter dette også, brukernavnene er ikke nødvendigvis verdens mest kompliserte.

 

Som sagt er jeg klar over risikoen med å kunne dekryptere passordene, men det er jo slik det gjøres på f.eks. finn.no....?

 

Poenget er ikke å diskutere hvor sikkert/usikkert det er, men jeg har litt lyst til å prøve en slik variant for å se hvordan det fungerer, derfor ønsker jeg noen tips :)

Endret av Xqtor
Lenke til kommentar

Da generer du nytt passord som lagres i en "temp_passord" kolonne og sender ut epost til brukeren som det er generert nytt passord for. I eposten inkluderer du en link til en side som aktiverer det nye passordet (kopierer fra "temp_passord" til "passord"). På den måten blir ikke passordet byttet ut ved at en tilfeldig person ber om passordet på en annens vegne.

Lenke til kommentar
Jo, men brukeren må jo på et eller annet tidspunkt få tilsendt det nye passordet?

 

jeg misliker sterkt å få mitt passord tilsendt på nytt, dvs at det finnes et sted i klartekst.

Tror ikke han har noe problem med at du lager et nytt passord og sender ham dette. Bare det å lagre passordet slik at du kan finne det igjen som er fy.

 

For å gjøre dictionary attacks vanskeligere, sett at noen kommer seg inn, kan det også lønne seg å gi hver bruker en salt-verdi på 5-10 tegn, og så lagre md5(salt + passord) i databasen.

 

Fordelen her er at en angriper blir nødt til å hashe hele ordboken for hver enkelt bruker, som vil ta mye lenger tid enn å bare gjøre det en gang.

Endret av Frank2004
Lenke til kommentar
Akkurat - da misforsto jeg litt.  :blush:

 

Men har FREMDELES et ønske om å prøve AES_ENCRYPT/AES_DECRYPT - selv om det kan diskuteres hvor sikkert/usikkert det er.

 

Noen tips?

Tja. Kan vel lønne seg å finne noe annet å (de)kryptere enn akkurat brukernes passord i så fall.

 

Noe spesifikt du lurer på? Et google-søk på 'kryptering' kan sikkert gi litt mer info.

Anbefaler at du leser gjennom denne.

Endret av Frank2004
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...