The man is niet dom en ook een client
...the man in the middle heeft ook een browser en kan naar phphulp.nl surfen om te zien wat ze met het inlog formulier gedaan hebben!
En wat ziet ie daar!! Die rotzakken hebben een encryptie progje (JAVASCRIPT!!!) om data te sleutelen en dan over te sturen.
Het leuke van javascript is dat je de bron kan zien. Dus alles wat de browser kan met javascript op het moment dat Henk op de account van Henk inlogt, kan Mr H. Acker ook, op het moment dat hij op de account van Henk inlogt. De browser, server of website weet namelijk niet wie de gebruikers is voordat ie is ingelogd. Iedereen moet de kans krijgen om in te loggen op zijn/haar account, dus doet Javascript voor iedereen zn ding.
Het probleem? Het is vast duidelijk... Mr H. Acker heeft nog steeds de data die nodig is om in te loggen! Hoe het gemaakt wordt staat namelijk open&bloot op de website!!
Zoals ik al zei is de oplossing geweldig gemakkelijk...
The man-in-the-middle heeft geen idee wat er ingevuld wordt op de computer van de client. Hij weet wel wat er over de lijn gaat (dus ontvangen wordt door de server). Hij weet ook hoe data versleuteld wordt aan de client kant (door software op de website: JS).
We moeten dus iets maken dat iets doet met de inlogdata (username + wachtwoord) zodat het random wordt... Zie daar het magische woord: random!
Als je de ene keer A over de lijn stuurt om in te loggen op de account van Henk, en de andere keer B om in te loggen op de account van Henk, en de andere keer C... Nja het spreekt voor zich: structuur is ver te zoeken.
En dat is de bedoeling. Wat er over de lijn gaat moet onzin zijn. Wat er over de lijn gaat moet steeds iets anders zijn. En willekeurig. Het moet kloppen als het inlogproces 1 sec duurt, maar ook als het 3 sec duurt (dus stuur aub geen timestamp oid mee!!).
Wat we mee gaan sturen is een stukje random data! En heel belangrijk: GEEN wachtwoord! Een stukje random data kan namelijk iedereen maken! OOK Mr H. Acker met zn webbrowser.
De oplossing: