Challenge/Response hoe?

Pagina: 1
Acties:

  • josvane
  • Registratie: Oktober 2002
  • Laatst online: 07:28
Onderstaand stuk staat in P&W FAQ - Hoe beveilig ik een website?

Stel: user heeft password Piet en username Karel:

Client zegt tegen server: "hoi Karel wil inloggen".
Server zegt tegen client: "da's mooi, je challenge is 14-08-2003-00:51:14:249"
Client trekt MD5 van bijv. "C:14-08-2003-00:51:14:249 U:Piet" en stuurt die over
Server trekt serverside diezelfde hash (hij heeft challenge en PW tenslotte).
Indien de hash serverside dezelfde is als de hash die de client opstuurt: admitted

Mijn vraag alleen hoe moet ik het mij programmeer technisch voorstellen.

Bij het opvragen van het login formulier wordt er gelijk een challenge gegeven
De gebruiker logt in en zijn gebruikersnaam wordt door gegeven naar de server,
zijn password wordt gehashed met de challenge.
Dit wordt op de server gecontroleerd en de sessie wordt gestart.

Klopt dit of zie ik het totaal verkeerd. Ik snap anders niet hoe je het bij een formulier houdt.
8)7

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:29
Dat zie je goed.

Essentieel is dat je client-side moet hashen, en dus iets als Javascript uit de kast moet trekken (met alleen een HTML-formulier kan het niet).

Overigens moet je de gestuurde challenge op de server onthouden en die dus ook al ergens in een sessie opslaan, voor de authenticatie compleet is. Omdat je de gebruikte challenge toch al meestuurt lijkt het slim om die als hidden field ofzoiets mee te sturen, maar daarmee doe je de beveiliging teniet. Het is essentieel dat de client de challenge niet kan kiezen.

[ Voor 53% gewijzigd door Soultaker op 11-10-2006 17:11 ]