Säkrare lösenord (md5 trick)

PHPportalen Forum Index » Tips och Trix
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget Gå till sida 1, 2  Nästa
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
Makkesk8



Medlem i: 2912 dagar
Från: Polen & danmark
Status: Offline



#710128
Inlägg Skrivet: 2011-07-11 13:45      Ämne: Säkrare lösenord (md5 trick) Citera

Yo pojkar och flickor tänkte jag skulle dela med mig av något jag kom på medans jag dushade.

alla vet ju hur ett login script funkar till en databas.. alla lösenord e ofast md5 hashade men jag tänkte vi skulle fucka up det för den som vill decompila lösenordet.

Här är ett vanligt exempel

PHP:
1:
  $losenord md5(mysql_real_espace_string($_POST['losenord']);
2:
 
3:
mysql_query blbalbal  


Funkar fint men det e rätt lätt att decompila.

Min metod :
PHP:
1:
  $losenord md5(mysql_real_espace_string($_POST['losenord']);
2:
 
3:
$losenord substr($losenord0, -5);
4:
 
5:
mysql_query blbalbal  


Det funkar så här att substr är en funktion som kan ta bort bokstäver så vi tog bort 5 bokstäver från hashen vilket gör den oläsbar.[/php]

Mer om substr: http://php.net/manual/en/function.substr.php

Använder just nu denna metod i min egna CMS och det funkar jätte bra.

PS. du kan ta bort hur manga bokstäver du vill men kom ihag att du måste använda substr när du skapar ditt konto också.

Mvh Marcus
 

_________________
http://kz-extreme.net/
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida AIM-adress Yahoo Messenger MSN Messenger
kanske



Medlem i: 4273 dagar

Status: Offline



#710130
Inlägg Skrivet: 2011-07-11 13:54      Ämne: Citera

Nu är jag rätt så ny på php, men mysql_real_escape_string på något som hashats känns väl jävligt onödigt?

Sen vet jag inte om det ger så mycket mer säkerhet att ta bort några tecken i en hash, går ju fortfarande enkelt att söka i en regnbågstabell, eller tänker jag fel? Salt borde vara bättre.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Makkesk8



Medlem i: 2912 dagar
Från: Polen & danmark
Status: Offline



#710131
Inlägg Skrivet: 2011-07-11 14:01      Ämne: Citera

kanske skrev:
Nu är jag rätt så ny på php, men mysql_real_escape_string på något som hashats känns väl jävligt onödigt?

Sen vet jag inte om det ger så mycket mer säkerhet att ta bort några tecken i en hash, går ju fortfarande enkelt att söka i en regnbågstabell, eller tänker jag fel? Salt borde vara bättre.


Nu e du inte på rätt spår kan jag säga dig.

Du kan läsa om mysql_real_escape_string här : http://se.php.net/manual/en/function.mysql-real-escape-string.php
 

_________________
http://kz-extreme.net/
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida AIM-adress Yahoo Messenger MSN Messenger
Wedge
Administratör



Medlem i: 6049 dagar
Från: Järfälla
Status: Offline



#710136
Inlägg Skrivet: 2011-07-11 14:46      Ämne: Citera

kanske skrev:
Nu är jag rätt så ny på php, men mysql_real_escape_string på något som hashats känns väl jävligt onödigt?
Du läser koden fel, eller råkar skriva fel.
Det är inte något som hashats, det är något som hashas.

hash(escape(input)) är inte samma som escape(hash(input)), men ingen av varianterna är vettig.

Att det fattas fem tecken i hashen är knappast något problem för en envis inkräktare. En loop som kör en miljon gånger och testar alla saknade teckenkombinationer tar inte särskilt lång tid att köra.
Använd salt istället för att hitta på osäkra konstigheter.
 

_________________
I am Groot
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
kanske



Medlem i: 4273 dagar

Status: Offline



#710137
Inlägg Skrivet: 2011-07-11 14:54      Ämne: Citera

Wedge skrev:
kanske skrev:
Nu är jag rätt så ny på php, men mysql_real_escape_string på något som hashats känns väl jävligt onödigt?
Du läser koden fel, eller råkar skriva fel.
Det är inte något som hashats, det är något som hashas.

hash(escape(input)) är inte samma som escape(hash(input)), men ingen av varianterna är vettig.

Att det fattas fem tecken i hashen är knappast något problem för en envis inkräktare. En loop som kör en miljon gånger och testar alla saknade teckenkombinationer tar inte särskilt lång tid att köra.
Använd salt istället för att hitta på osäkra konstigheter.


Jag skrev såklart tokigt. Det jag menar är att det är väl onödigt att köra mysq_real_escape_string på något som ska hashas innan det ska in i databasen.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Wedge
Administratör



Medlem i: 6049 dagar
Från: Järfälla
Status: Offline



#710139
Inlägg Skrivet: 2011-07-11 15:11      Ämne: Citera

kanske skrev:
Jag skrev såklart tokigt. Det jag menar är att det är väl onödigt att köra mysq_real_escape_string på något som ska hashas innan det ska in i databasen.
Precis.
 

_________________
I am Groot
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
EmilV
Ex-Moderator



Medlem i: 5924 dagar
Från: Lilla Edet
Status: Offline



#710167
Inlägg Skrivet: 2011-07-12 10:07      Ämne: Citera

Att ta bort tecken från hashen gör ditt system mindre säkert, inte mer. Tar du bort tecken minskar du helt enkelt målmängden och det blir lättare att gissa ett lösenord.
Istället för md5:s vanliga målmängd på 16^32 = 3.4*10^38 element har du minskat mängden till 16^27 = 3.2*10^32, det vill säga att du dividerat målmängden med cirka en miljon och därmed teoretiskt minskat tiden för en råkraftsattack (brute force) till en miljondel av det ursprungliga värdet.

Har någon en regnbågstabell och vill ta reda på vad hashen "betyder" är det ju fortfarande bara att söka på början av hashen och hitta alla alternativ som finns i tabellen så den effekt du tror att du uppnått finns helt enkelt inte.

Du har därmed inte uppnått ditt syfte, samtidigt som du minskat tiden för en råkraftsattack. Det finns bara nackdelar med din lösning.

Det du försöker med kallas security by obscurity och innebär att du försöker lura "motståndaren" genom att göra oväntade saker. Det krävs dock bara att motståndaren får tag på din kod eller lyckas gissa sig till vad du gjort så är du tillbaka på ruta ett, med ett osäkert system. Därför brukar man räkna med att alla vet hur säkerhetssystemet fungerar. Riktig säkerhet byggs då genom att man använder välbeprövade metoder som är säkra trots att motståndaren känner till vilken metod som använts. De välanvända metoderna har testats och utvecklats av matematiker och kryptologer i årtionden, och deras resultat publiceras offentligt för andra inom fältet att analysera, testa och förbättra. Det är så vetenskapen fungerar.

En säker metod är att lägga på salt (gärna både statiskt och dynamiskt) och välja en säker hashalgoritm (till exempel sha1), det vill säga precis det som vi alltid pratar om i dessa sammanhang på PHPportalen.
 

_________________
Tänk!

EmilVikström.se | Bloglovin.com
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Makkesk8



Medlem i: 2912 dagar
Från: Polen & danmark
Status: Offline



#710175
Inlägg Skrivet: 2011-07-12 13:13      Ämne: Citera

EmilV skrev:
Att ta bort tecken från hashen gör ditt system mindre säkert, inte mer. Tar du bort tecken minskar du helt enkelt målmängden och det blir lättare att gissa ett lösenord.
Istället för md5:s vanliga målmängd på 16^32 = 3.4*10^38 element har du minskat mängden till 16^27 = 3.2*10^32, det vill säga att du dividerat målmängden med cirka en miljon och därmed teoretiskt minskat tiden för en råkraftsattack (brute force) till en miljondel av det ursprungliga värdet.

Har någon en regnbågstabell och vill ta reda på vad hashen "betyder" är det ju fortfarande bara att söka på början av hashen och hitta alla alternativ som finns i tabellen så den effekt du tror att du uppnått finns helt enkelt inte.

Du har därmed inte uppnått ditt syfte, samtidigt som du minskat tiden för en råkraftsattack. Det finns bara nackdelar med din lösning.

Det du försöker med kallas security by obscurity och innebär att du försöker lura "motståndaren" genom att göra oväntade saker. Det krävs dock bara att motståndaren får tag på din kod eller lyckas gissa sig till vad du gjort så är du tillbaka på ruta ett, med ett osäkert system. Därför brukar man räkna med att alla vet hur säkerhetssystemet fungerar. Riktig säkerhet byggs då genom att man använder välbeprövade metoder som är säkra trots att motståndaren känner till vilken metod som använts. De välanvända metoderna har testats och utvecklats av matematiker och kryptologer i årtionden, och deras resultat publiceras offentligt för andra inom fältet att analysera, testa och förbättra. Det är så vetenskapen fungerar.

En säker metod är att lägga på salt (gärna både statiskt och dynamiskt) och välja en säker hashalgoritm (till exempel sha1), det vill säga precis det som vi alltid pratar om i dessa sammanhang på PHPportalen.


Mjo jag kom på detta strax efter en timme jag skrev tråden och då tänkte jag att man kunde göra det svårare istallet med användning av str_repeat(md5(mt_rand()), mt_rand(1, 5)); av något slag, Ska prova salt och sha1 aldrig haft tanke på att använda dom

Tack Smile
 

_________________
http://kz-extreme.net/
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida AIM-adress Yahoo Messenger MSN Messenger
gurragustaf



Medlem i: 4955 dagar
Från: Vänersborg
Status: Offline



#710303
Inlägg Skrivet: 2011-07-16 00:16      Ämne: Citera

Jag skulle föreslå att du även blandar in användarnamnet i lösenordsgenarationen. På så sätt blir varje lösenord unikt gentemot varje användare då säg, lösenordet "M1ttlosenord" blir två olika värden för anv1 och anv2.
 

_________________
Hur hör man en ljudlös signal?
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
intedinmamma



Medlem i: 3508 dagar
Från: Göteborg
Status: Offline



#710306
Inlägg Skrivet: 2011-07-16 01:21      Ämne: Citera

Läsvärt.

Lägger folk ner lika mycket energi på att se till så att hashen inte går att komma åt som att den inte ska gå att knäcka? Självklart är det bra om hashen kan vara publik, det är ett tecken på väldigt hög säkerhet, men vad spelar det för roll när all annan data för applikationen i det läget finns tillgänglig som klartext? Att behöva byta lösenord är inte lika illa som att veta om att ens privata meddelanden är på vift.
 

_________________
Statistiskt sett? Kanske.
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
thedragon



Medlem i: 5703 dagar

Status: Offline



#710667
Inlägg Skrivet: 2011-07-22 19:50      Ämne: Citera

Varför ska man använda MD5, när Whirlpool finns? Whirlpool har inte blivit crackad än och är därmed ett av de mest säkraste hash-metoderna som finns tillgängligt idag. MD5 har sedan länge varit crackad.

PHP:
1:
 hash('Whirlpool''S@ak3rt+70s3!n0r4'); 


Jag är dock osäker på om denna hash-metod blir säkrare, om man lägger in salt både före och efter strängen, eller enbart före/efter strängen. Whirlpool är ju säkert som det är Smile
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Sawny



Medlem i: 3135 dagar

Status: Offline



#710677
Inlägg Skrivet: 2011-07-22 21:20      Ämne: Citera

thedragon skrev:
Varför ska man använda MD5, när Whirlpool finns? Whirlpool har inte blivit crackad än och är därmed ett av de mest säkraste hash-metoderna som finns tillgängligt idag. MD5 har sedan länge varit crackad.

PHP:
1:
 hash('Whirlpool''S@ak3rt+70s3!n0r4'); 


Jag är dock osäker på om denna hash-metod blir säkrare, om man lägger in salt både före och efter strängen, eller enbart före/efter strängen. Whirlpool är ju säkert som det är Smile



Salt är alltid viktigt, skyddar jätte bra (helt?) från regnbågstabeller.
Och bruteforce tar längre tid då du först måste hitta saltet. Om saltet är "/&#/&"(&¤#"()87283"84jdjDSJ så blir det omöjligt att brute forca fram saltet.
 

_________________
HTML, CSS, PHP, JS
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
thedragon



Medlem i: 5703 dagar

Status: Offline



#710682
Inlägg Skrivet: 2011-07-22 23:25      Ämne: Citera

Sawny skrev:
Salt är alltid viktigt, skyddar jätte bra (helt?) från regnbågstabeller.
Och bruteforce tar längre tid då du först måste hitta saltet. Om saltet är "/&#/&"(&¤#"()87283"84jdjDSJ så blir det omöjligt att brute forca fram saltet.


I och för sig, så är ju det sant Smile
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Sawny



Medlem i: 3135 dagar

Status: Offline



#710711
Inlägg Skrivet: 2011-07-23 15:36      Ämne: Citera

Angående Whirlpool på wikipedia står det "Two of the first widely-used mainstream cryptographic programs that started using Whirlpool were FreeOTFE, followed by TrueCrypt in 2005."

Truecrypt krypterar och dekrypterar data, så whirlpool är ingen en gångs algoritm eller? Blir förvirrad av wikipedia artikeln.
 

_________________
HTML, CSS, PHP, JS
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Wedge
Administratör



Medlem i: 6049 dagar
Från: Järfälla
Status: Offline



#710712
Inlägg Skrivet: 2011-07-23 15:51      Ämne: Citera

Sawny skrev:
Angående Whirlpool på wikipedia står det "Two of the first widely-used mainstream cryptographic programs that started using Whirlpool were FreeOTFE, followed by TrueCrypt in 2005."

Truecrypt krypterar och dekrypterar data, så whirlpool är ingen en gångs algoritm eller? Blir förvirrad av wikipedia artikeln.
Att en hashfunktion används i en kryptering gör inte hashfunktionen till kryptering.
 

_________________
I am Groot
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget Gå till sida 1, 2  Nästa
PHPportalen Forum Index » Tips och Trix
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic