Casper Bang wrote:
> På min hjemmeside har jeg en logon-form.
> Jeg vil gerne forhindre at kodeordet kan "sniffes" af andre på
> netværket, og tænkte derfor på at "kryptere" kodeordet inden det
> sendes - for eksempel ved at lave en hashkode af det eller lignende.
> For at forhindre at selve "hashkoden" (ved ikke om det staves haskode
> egentligt) bliver sniffet, og brugt til at logge ind, skal kodeordet
> flettes sammen med en random string (for eksempel SessionID).
>
> Fra klienten skal dette gøres med javascript, på det indtastede
> kodeord. På serveren skal det samme gøres med kodeordet fra databasen
> (i vb). Derefter sammenlignes de to "hashkoder" med hinanden, hvorved
> jeg kan verificere at det er det rigtige kodeord...
>
> Hvad synes i om den plan? Lyder det som en god sikkerhed imod
> packetsniffing?
Tjoeh, men spørgsmålet er imo mere, om problemet er reelt eller en
akademisk øvelse. Hvis netværket er "sat rigtigt op", så vil det næsten
være umuligt at sniffe andres data.
Hvis du vil hashe password på klientsiden, så er det korrekt, at man så
ikke kan aflæse brugerid via pakkesnifning, men det bibringer ikke reelt
noget sikkerhed.
Forestil dig følgende:
Scenarium 1:
Bruger A indtaster sit password og sender det ukrypteret til din server.
Du hasher nu det modtagne password på din server og sammenligner den
hashede værdi med data i din database. Undervejs opsnappes det af bruger
B, der nu kan logge ind som bruger A.
Scenarium 2:
Bruger A indtaster sit password og noget javascript [1] udregner
hashværdien og denne sendes til din server. Du sammenligner nu den
modtagne hashværdi med data i din database. Undervejs opsnappes
hashværdien af bruger B og han kan nu logge ind som bruger A.
At flette hashværdien sammen med et sessionid gør det ikke mere sikkert,
da denne værdi skal sendes med i klartekst over netværket før du kan
bruge den serverside - og så kan den også opsnappes.
Den eneste måde du kan sikre dig imod packetsnifning er SSL eller
lignende (alternativt klientside Java eller ActiveX)
[1]
http://www.frez.co.uk/freecode.htm#md5
--
Jesper Stocholm
http://stocholm.dk
Programmer's code comment:
//It probably makes more sense when you're stoned.