Als een soort van "webservice" kan een gebruiker bij ons data in onze database stoppen door zich te authoriseren en een form te posten met wat data erin. Ik zit me af te vragen hoe het (buiten https om) het veiliger zou kunnen maken, zodat dictionary / replay attacks (veel!) moeilijker zo niet onmogelijk worden.
Op het moment wordt een http request naar deze "webservice" geauhtoriseerd aan de hand van een username, sha-1(password+rand(salt)) en random salt in de form variabelen. Vervolgens haal ik het password op uit de DB en kijk of sha-1(password+rand(salt)) overeenkomt met diegene die ik bereken.
Nu is het dus mogelijk om met een dictionary attack uit te gaan vogelen hoe de hash wordt gemaakt bijv door
"$dictionary_word+password" en "password+$dictionary_word" te gaan bruteforcen.
Verder is een replay-attack ook nog gewoon mogelijk. Eigenlijk zou ik dan alle salts bij moeten houden en het request moeten rejecten als de salt al een keer gebruikt is.
Heeft iemand tips hoe ik de authorisatie kan verbeteren? Ik heb de bel al wel horen luiden, maar ik ben nog op zoek naar de klepel geloof ik.
De kans dat iemand dit wil gaan misbruiken is naar mijn inschatting niet zo heel groot, maar beter safe than sorry.
Op het moment wordt een http request naar deze "webservice" geauhtoriseerd aan de hand van een username, sha-1(password+rand(salt)) en random salt in de form variabelen. Vervolgens haal ik het password op uit de DB en kijk of sha-1(password+rand(salt)) overeenkomt met diegene die ik bereken.
Nu is het dus mogelijk om met een dictionary attack uit te gaan vogelen hoe de hash wordt gemaakt bijv door
"$dictionary_word+password" en "password+$dictionary_word" te gaan bruteforcen.
Verder is een replay-attack ook nog gewoon mogelijk. Eigenlijk zou ik dan alle salts bij moeten houden en het request moeten rejecten als de salt al een keer gebruikt is.
Heeft iemand tips hoe ik de authorisatie kan verbeteren? Ik heb de bel al wel horen luiden, maar ik ben nog op zoek naar de klepel geloof ik.
De kans dat iemand dit wil gaan misbruiken is naar mijn inschatting niet zo heel groot, maar beter safe than sorry.
[ Voor 14% gewijzigd door Standeman op 12-02-2009 15:28 ]
The ships hung in the sky in much the same way that bricks don’t.