Gå til innhold

Ny metode for passordlagring uten å kreve sikker pass fra brukere?


peace2

Anbefalte innlegg

Jeg programmerer en webside som ikke er på nett enda. nå er jeg på sikkerhetsbiten.. vi vet jo alle hvor lang tid det tar å knekke (bruteforce) et passord som "1234" (eller md() versjon av den via md5 ordlistea) .

 

Derfor prøvde jeg å finne en metode for å la brukerene taste inn det passordet de liker best. feks "123" eller "1234" som kan være VELDIG sårbar!

 

Metoden er å la brukeren taste inn et passord som han/hun liker. så brukes det en "Sikker passord generator" som gjerne lager et passord som "D@d54?j+5jK?". det passordet vil da være en "prefix" til passordet som brukeren taster inn. det vil si "1234D@d54?j+5jK?" (1234 passordet kan krypteres her også men du har iden min der...) deretter blir hele kryptert med md5() til noe som => "1579f207e982ea024a7c621cd3b3766f" (som er nesten umulig å gjette seg frem verken ved ordliste eller bruteforce. )

 

For at det skal være mulig å logge inn må databasen lagre prefixet, samt username og et komplett md5() kryptert pass.

 

Etter min mening så vil dette være ganske sikker løsning som ser ut til å være umulig å gjette seg frem, men det hender at man alene ikke kan se ulemper med dette så derfor spør jeg om det er

noen som kan se svakheter med dette?

Lenke til kommentar
Videoannonse
Annonse

Dette kalles "salt", og er en vanlig måte å gjøre dette på. Da har hver bruker sin egen "prefix", og om noen får tak i databasen, må de bruteforce hvert enkelt passord. Ofte bruker man også "pepper", som er hardkodet i applikasjonen: "QwqeQe233213#¤"!|31234D@d54?j+5jK?". Dermed må de ha både tilgang til databaseserveren og webseveren for å klare å bruteforce.

 

MEN, det blir ikke noe sikkert med et passord på 4 sifre. Man kan jo bruteforce innholdet i databasen, men man kan også bruteforce innloggingsvinduet. Da hjelper det ikke hva som ligger i bakgrunnen, angriper kan da bruke 1234 og komme inn. Anbefaler å ha et lengre passord, det er jo noe man er vandt med å ha på de fleste sider i dag. Du bør også legge til en grense for hvor mange ganger man kan skrive feil passord, og dermed blokkere brukeren.

 

Edit: Bør også vurdere å bruke sha isteden for md5.

Endret av Hole
  • Liker 1
Lenke til kommentar

Dette kalles "salt", og er en vanlig måte å gjøre dette på. Da har hver bruker sin egen "prefix", og om noen får tak i databasen, må de bruteforce hvert enkelt passord. Ofte bruker man også "pepper", som er hardkodet i applikasjonen: "QwqeQe233213#¤"!|31234D@d54?j+5jK?". Dermed må de ha både tilgang til databaseserveren og webseveren for å klare å bruteforce.

 

MEN, det blir ikke noe sikkert med et passord på 4 sifre. Man kan jo bruteforce innholdet i databasen, men man kan også bruteforce innloggingsvinduet. Da hjelper det ikke hva som ligger i bakgrunnen, angriper kan da bruke 1234 og komme inn. Anbefaler å ha et lengre passord, det er jo noe man er vandt med å ha på de fleste sider i dag. Du bør også legge til en grense for hvor mange ganger man kan skrive feil passord, og dermed blokkere brukeren.

 

Edit: Bør også vurdere å bruke sha isteden for md5.

Ja stemmer! inlogginsvinduet ville vært ubeskyttet ja. kan jo ta å sperre så hvis man skriver feil pass 3 ganger blir man utelukket i en times tid. ellers så kan man bli utelukket for alltid og heller få e-post lenke for å reaktivere kontoen på nytt.. eller en kombinasjon av begge deler ?;P

Takk på forhånd! , skal undersøke "sha" også! :)

Lenke til kommentar

Dette kalles "salt", og er en vanlig måte å gjøre dette på. Da har hver bruker sin egen "prefix", og om noen får tak i databasen, må de bruteforce hvert enkelt passord. Ofte bruker man også "pepper", som er hardkodet i applikasjonen: "QwqeQe233213#¤"!|31234D@d54?j+5jK?". Dermed må de ha både tilgang til databaseserveren og webseveren for å klare å bruteforce.

 

MEN, det blir ikke noe sikkert med et passord på 4 sifre. Man kan jo bruteforce innholdet i databasen, men man kan også bruteforce innloggingsvinduet. Da hjelper det ikke hva som ligger i bakgrunnen, angriper kan da bruke 1234 og komme inn. Anbefaler å ha et lengre passord, det er jo noe man er vandt med å ha på de fleste sider i dag. Du bør også legge til en grense for hvor mange ganger man kan skrive feil passord, og dermed blokkere brukeren.

 

Edit: Bør også vurdere å bruke sha isteden for md5.

Ja stemmer! inlogginsvinduet ville vært ubeskyttet ja. kan jo ta å sperre så hvis man skriver feil pass 3 ganger blir man utelukket i en times tid. ellers så kan man bli utelukket for alltid og heller få e-post lenke for å reaktivere kontoen på nytt.. eller en kombinasjon av begge deler ?;P

Et spørsmål jeg hadde var:

Er det mulig for bruteforce hackere å unngå en slik sperre og la programmet jobbe i "fred"?

 

sperren ville vært noe som:

if($count==3)
{
sperrkonto();
echo "blocked";
}
else
{
if($pass=="bad")
{
$count++;
$echo "Feil passord. (maksimalt 3 forsøk)";
}
}

 

Takk på forhånd! , skal undersøke "sha" også! :)

Endret av peace2
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...