RSD schreef op 28 september 2002 @ 16:01:
Onlangs had ik het ook over beveiligen van websites. Nu stond in dat topic dat als mensen gaan sniffen aan je poort , ze makkelijk het sessie id etc kunnen achterhalen... is hier nu niks tegen te doen en heb zijn er ervaringen mee dat dit gebeurt is in de praktijk...? Ik ben hier wel heel erg benieuwd na.
Je stuurt je sessie id elke keer mee, als iemand dus je verkeer kan afluisteren kunnen ze ook je sessie ID te zien krijgen en die dan zel intikken. Dit heet "sessies kapen" of "session hijacking". Veel mensen denken dat het raden van je ID het probleem is, maar dat is niet zo. Het gaat erom dat je het ID afluistert.
Voor de rest vroeg ik me af of het veilig is als het volgende gebeurt:
-mensen loggen in.
Mensen zijn altijd een onveilige factor

(wel waar!) Het bekende Post-itje met je wachtwoord op het scherm geplakt...
-md5 van hun paswoord wordt opgeslagen in een cookie.
-md5 van hun paswoord wordt opgeslagen in de sessie.
MD5 klinkt allemaal heel leuk en veilig, maar is dat niet. Stel je gebruiker typed een wachtwoord in, je md5-ed dat, en stuurt het naar de server die het daar vergelijkt met de md5 hash in de database. Wachtwoord gaat nu niet over het net en kan niet worden afgeluisterd...veilig. toch? Niet dus. Ik luister gewoon je md5 hash af, en die stuur ik daarna rechtsreeks zonder met javascript te md5-en. Je server accepteert het wachtwoord vrolijk en zonder klagen. Dit heet "replay attack". een oplossing hiervoor is om steeds een random waarde naar de client te sturen, en de client moet die waarde dan meenemen in de md5 hash. De server doet hetzelfde en vergelijkt de twee hashen dan. Replay attack is dan niet meer mogelijk. Dit is een redleijk veilige manier om in te loggen. Het enige probleem nu zou zijn als iemand je verkeer aan kan passen/veranderen, of als "middle man" kan optreden, bv iemand met root access op een tussen liggende router. (zou de CIA toegang hebben tot alle grote routers? zeer waarschijnlijk...) Je kan dan relay
edit:
dit is geen type-fout voor replay, er staat echt relay zonder p
attacks doen...
-ip adres wordt opgeslagen in sessie.
Ja dat helpt tegen session hijacking, omdat je server nu weet welk IP by welk session ID hoort. Dit moet je eigenlijk altijd doen als voorzorg, helemaal omdat het zo simpel is. Problemen: mensen achter dezelfde proxy, IP spoofing. Je kan nu nog bv browser/OS versie er bij opslaan. Maar echt nut heeft het niet. Als je al aan neemt dat iemand je verkeer kan afluisteren, en je IP kunnen spoofen, dan kunnen ze natuurlijk ook je browser versie etc die jij naar de server stuurt afluisteren. Oplossing: stuur al je data encrypted...ofwel SSL.
-vervolgens wordt op elke beveiligde site een check gemaakt tussen sessie paswoord en cookie wachtwoord en tussen ip adres in sessie en ip van degene die het opvraagt.
Wat gebeurt er nuu als mensen geen cookies aan hebben staan. Dan werkt dit dus niet. Wat kan er nu gedaan worden, dat overeenkomt met bovenstaande.
Is het ook noodzakelijk dat als je zonder cookies werkt, je aan elke url het SID moet meegeven of gebeurt dat automatisch bij PHP?
Misschien moet ik een nieuw topic openen ik weet het niet!
Zoals je ziet is "goede" beveiliging erg lastig. Je moet je dan ook altijd af vragen "hoe veilig moet het eigenlijk zijn, en wat zijn de consequenties (sp?) als iemand m'n beveiliging kan omzeilen?" Is het een levensbedrijgende situatie als iemand hier op GoT onder een andere naam kan posten? Hmm...niet echt. Als ze moderator status kunnen verkrijgen? Best wel vervelend, maar niet al te erg. Als ze rechtsreeks in de databases kunnen schrijven? JA das wel naar... Zou het erg zijn als een terroristen groep toegang kan krijgen tot de coordinaten van kern onderzeeers? Behoorlijk.