Avatar billede radiohead Nybegynder
07. oktober 2006 - 01:45 Der er 11 kommentarer og
2 løsninger

md5 kryptering og glemt password

Det her er sikkert et dumt spm.

Ærlig talt har jeg ikke lige gidet sætte mig ind i det..
Derfor benytter jeg den hurtige og nemme måde... At spørge her :)

Jeg går lynhurtigt ud fra at alle "større" sites benytter sig af en eller anden form for kryptering.

En md5 kryptering eksempelvis er jo oneway og kan ikke decryptes, så jeg undrer mig over hvordan man så kan retrieve glemte passwords. Det kan man måske slet ikke med md5?

Ligeledes undrer jeg mig over hvad forskellige "penge"-sites bruger... Dem kan man jo ofte ringe til og få dem til at udlevere ens password telefonisk. Betyder det at de ikke benytter kryptering overhovedet?

Hvordan hænger det hele sammen? :)
Avatar billede ducks Nybegynder
07. oktober 2006 - 02:04 #1
Jeg ved ikke hvad banker bruger, men jeg vil tro at det er noget mere avanceret end md5, selvom md5 er en god kryptering.

Hvis vi tager udgangspunkt i ASP kode og du har kaldt din MD5 funktion for md5(), kan du prøve at se mit eksempel + forklaringer, på hvordan jeg gør:


'Oprettelse af password:

  'Først hentes det ønskede password fra brugeroprettelsen
  password = Request.Form("password")
  'passwordet krypteres 1. gang
  password_encrypted = md5(password)
  'en tilfældig variabel genereres, forklaring nedenfor
  swordfish = 'her genereres et random tal, der sættes ind i databasen ud for brugeren
  'passwordet bliver gemt ekstra sikkert
  password_secure = md5(swordfish & password_encrypted)

'Nu er passwordet gemt med dobbelt kryptering samt en variabel som er unik for, hver bruger, jeg er ikke sikker på at dette giver en væsentlig større sikkerhed, men jeg gør det alligevel for at være 110% sikker ;)


'login med md5 kryptering

  'Først hentes det password brugeren skrev
  password = Request.Form("password")
  'Det krypteres så 1 gang med md5
  password_encrypted = md5(password)
  'Derefter hentes swordfish-variablen fra databasen ud fra brugernavnet som blev skrevet ved login
  rs = blabla 'igen er jeg doven, men jeg går ud fra du ved hvordan man gør
  'Passwordet dobbeltsikres
  password_secure = md5(rs("swordfish") & password_encrypted)
  'Det sammenlignes med det der er gemt i databasen
  if (password_secure = rs("password")) then
    Response.Write("Login: OK")
  else
    Response.Write("Login: FEJL")
  end if


Som du kan se krypteres det hele igen, når man logger ind for så at tjekke om det matcher det der blev gemt i databasen. Begge rutiner skal selvfølgelig være ens.
Avatar billede ducks Nybegynder
07. oktober 2006 - 02:06 #2
Grunden til at jeg kalder det swordfish er inspiration fra scriptet PHPMyAdmin (mener jeg), de er nok blevet inspireret fra http://en.wikipedia.org/wiki/Swordfish_%28password%29 - bare så du ikke er i tvivl om mit valg ;)
Avatar billede radiohead Nybegynder
07. oktober 2006 - 02:09 #3
Det er jeg med på.

Jeg tænker bare på om man ikke kan få fat i sit password igen, hvis man skulle have glemt det.

Eller så skal man måske ud i en anden krypteringsform?

Det er ikke fordi jeg skal bruge det til noget... Jeg er bare nysgerrig.
Avatar billede radiohead Nybegynder
07. oktober 2006 - 02:10 #4
For at dobbeltencrypte det, kunne man vel også bare skrive

password_encrypted = md5(md5(password))

eller triple

password_encrypted = md5(md5(md5(password)))
Avatar billede ducks Nybegynder
07. oktober 2006 - 02:17 #5
Ja, men for overskuelighedens skyld i større scripts kan det være en fordel at dele det lidt op ;)

Jeg tror dog ikke triple kryptering har den store effekt, så tror jeg mere på min metode med swordfish
Avatar billede arne_v Ekspert
07. oktober 2006 - 03:24 #6
MD5 er oneway

eller mere korrekt: er tiltænkt oneway (der er fundet muligheder for at finde
validt input)

hvis de kan oplyse det gamle password, så kan du godt regne med at de ikke
bruger MD5 eller andre (og bedre) one way algoritmer

hvis de kun kan give dig et nyt, så kan du godt regne med at bruger
MD5 eller andre (og bedre) one way algoritmer

sikkerheden ved at MD5 hashe passwords er stærkt overvurderet

det gør at folk med fuld adgang til databasen ikke kan se dit klar tekst
password

og hvis de har fuld adgang til databasen, hvad skal de så bruge det til ?

nu er der folk som bruger samme password til mange forskellige ting, så
en lille fordel er der

men det er altså ikke super løsningen på sikkerhed
Avatar billede ducks Nybegynder
07. oktober 2006 - 03:27 #7
arne_v, hvad vil du så anbefale? Der vil jo altid være en med adgang til databasen, så jeg forstår ikke helt, hvad du mener der.
Avatar billede arne_v Ekspert
07. oktober 2006 - 04:35 #8
hvis du mener MD5 algoritmen så er der nogen som er bedre end MD5

hvis du mener one way tilgangen, så er der ikke noget galt med ideen, den
er god nok

man skal bare gøre sig klart at det er en meget lille forbedring af sikkerheden,
da den primært beskytter mod svigagtige database administratorers muligheder
for at hacke sig ind på brugernes konti på andre sites hvis de bruger samme
password der - og har man ikke tillid til sin database administrator, så bør man
nok finde en anden
Avatar billede radiohead Nybegynder
07. oktober 2006 - 10:55 #9
Det var lige det jeg gerne ville vide, arne.

Ved i tilfældigvis hvad f.eks eksperten bruger?

Læg et svar arne, så du kan få nogle point
Avatar billede bondester Nybegynder
07. oktober 2006 - 18:19 #10
Der er jo også den mulighed at du har et større community med masser af brugere, og så bliver hele sitet hacked. Altså en ekstern person opnår adgang til din database.

Så vil jeg være meget glad for at kunne fortælle mine brugere at deres passwords (som de sikkert bruger andre steder) ikke er gået vi til tredje mands eje.
Avatar billede arne_v Ekspert
08. oktober 2006 - 00:16 #11
ja - hvis hackere får fuld adgang til databasen, så gælder det samme
Avatar billede arne_v Ekspert
08. oktober 2006 - 00:24 #12
jeg ved ikke hvad eksperten bruger

MD5 var ikke noget dårligt bud

den er meget ofte anvendt i PHP/MySQL sammenhæng

og den er som sagt helle rikke dårlig - man skal bare ikke overvurdere effekten af den
Avatar billede arne_v Ekspert
08. oktober 2006 - 00:24 #13
og et svar fra mig
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester