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 Föregående  1, 2
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
Peppe L-G



Medlem i: 4340 dagar
Från: Mullsjö
Status: Offline



#710714
Inlägg Skrivet: 2011-07-23 16:09      Ämne: Citera

Sawny, man krypterar ju för att kunna skicka information mellan två olika parter utan att någon står i mitten och kan läsa den. Men OM den i mitten kan dekryptera informationen kan han säkert även kryptera egen information och skicka vidare till mottagaren, så det hela slutar med att han kan läsa all information som skickas mellan de båda parterna samt bestämma vilken information de ska kunna läsa.

Detta är ju inte så bra, men om man även skickar med en hashning av informationen kan de två som skriver till varandra med hjälp av denna avgöra om informationen blivit ändrad på vägen eller ej. Observera att hashningen måste ha skickats och tagits emot innan den krypterade informationen skickas.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
Sawny



Medlem i: 3077 dagar

Status: Offline



#710716
Inlägg Skrivet: 2011-07-23 16:13      Ämne: Citera

Aha, börjar bli ot nu, men hur gör man om en hasfunktion till en envägs kryptering OCH till en krypterings metod?
 

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



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



#710718
Inlägg Skrivet: 2011-07-23 16:25      Ämne: Citera

Sawny skrev:
Aha, börjar bli ot nu, men hur gör man om en hasfunktion till en envägs kryptering OCH till en krypterings metod?
Det gör man inte. Vem har sagt nåt sånt?
 

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



Medlem i: 3077 dagar

Status: Offline



#710720
Inlägg Skrivet: 2011-07-23 16:38      Ämne: Citera

Peppe L-G skrev:
Sawny, man krypterar ju för att kunna skicka information mellan två olika parter utan att någon står i mitten och kan läsa den. Men OM den i mitten kan dekryptera informationen kan han säkert även kryptera egen information och skicka vidare till mottagaren, så det hela slutar med att han kan läsa all information som skickas mellan de båda parterna samt bestämma vilken information de ska kunna läsa.

Detta är ju inte så bra, men om man även skickar med en hashning av informationen kan de två som skriver till varandra med hjälp av denna avgöra om informationen blivit ändrad på vägen eller ej. Observera att hashningen måste ha skickats och tagits emot innan den krypterade informationen skickas.


Tack förstår nu Smile

---------------
Citat:
Att en hashfunktion används i en kryptering gör inte hashfunktionen till kryptering.

Otydligt >.<
 

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



Medlem i: 4923 dagar

Status: Offline



#711192
Inlägg Skrivet: 2011-08-03 11:39      Ämne: Citera

Förstår fortfarande inte varför alla ska göra "säkerhets trådar" räcker det inte med

sha1($losenord.$anvandarnamn.$salt)

sen sätta stop på bruteforce genom att endast tillåta 5 försök per 15 min ?!
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
rikards1234



Medlem i: 3157 dagar

Status: Offline



#711212
Inlägg Skrivet: 2011-08-03 17:46      Ämne: Citera

Eller så använder man bcrypt, extremt bra Razz

$salt = "usesomesillystringforsalt";
$wf = "07";

$pass = crypt($_POST['pass'], '$2a$'.$wf.'$'.$salt.'$');
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Tarre



Medlem i: 4923 dagar

Status: Offline



#711432
Inlägg Skrivet: 2011-08-08 18:19      Ämne: Citera

Varför är det så mycket bättre än sha1 med lösenord och användarnamn ?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
marabou
Administratör



Medlem i: 5221 dagar
Från: Sveriges framsida
Status: Offline



#711459
Inlägg Skrivet: 2011-08-09 09:23      Ämne: Citera

MD5, SHA1 m.fl är snabba hash-algoritmer, så om någon kommer över databasen kan de knäcka alla lösenord på några timmar.
Bcrypt är en långsam hash-metod (långsam=tar längre tid att köra brute force=bättre)

Varför?
http://codahale.com/how-to-safely-store-a-password/
 

_________________
"Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Sawny



Medlem i: 3077 dagar

Status: Offline



#711463
Inlägg Skrivet: 2011-08-09 09:54      Ämne: Citera

marabou skrev:
MD5, SHA1 m.fl är snabba hash-algoritmer, så om någon kommer över databasen kan de knäcka alla lösenord på några timmar...
... om du inte har saltat lösenorden starkt.
 

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



Medlem i: 5221 dagar
Från: Sveriges framsida
Status: Offline



#711468
Inlägg Skrivet: 2011-08-09 10:42      Ämne: Citera

Sawny skrev:
marabou skrev:
MD5, SHA1 m.fl är snabba hash-algoritmer, så om någon kommer över databasen kan de knäcka alla lösenord på några timmar...
... om du inte har saltat lösenorden starkt.


Om dynamiskt salt används och sparas i databasen hjälper det inte om hackaren skulle komma över databasen. Då har han ju saltet där, och kan behöver inte brute-forca saltet, endast lösenordet.
Används dynamiskt salt (lagrat i db) tillsammans med statiskt salt (lagrad någon annan stans, t.ex. i konfig-fil eller liknande) så tar det något längre tid (från 40 sekunder som nämns i ovanstående länk, till kanske några dagar max).
Kommer hackaren åt servern via ftp har han förmodligen tillgång till det statiska saltet (i en fil) och så finns det dynamiska saltet i databasen så är det bara att köra på, och som sagt, md5 och sha1 är snabba algoritmer så det tar inte lång tid att knäcka om man har salten.
Har man bra salt (dynamisk + statisk) så kanske det försvårar med faktor * 10 eller nåt, men tänk att ett lösenord utan salt kan knäckas på en minut så knäcks lösenord med bra salt på 1 * 10 = 10 min.
Används bcrypt som är en långsam algoritm går du från 10 min med md5 till 10 år med bcrypt. Då börjar vi snacka! Smile
 

_________________
"Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
hallis



Medlem i: 5760 dagar
Från: Stockholm
Status: Offline



#711473
Inlägg Skrivet: 2011-08-09 12:04      Ämne: Citera

Enkelhet är ofta svaret. Jag brukar använda varianter av följande, som är ganska beprövat:

PHP:
1:
 $password 'lösenord';
2:
$salt_dynamic uniqid(rand(), true);
3:
$salt_static 'Text-och-tecken';
4:
$hash sha1($password $salt_static $salt_dynamic); 


Sen är det ganska smart att med t ex ett JavaScript visa hur "säkert" ett lösenord är för att förbättra kvaliteten på lösenorden från första början. Man kan t ex kräva att lösenordet ska innehålla versaler och gemener, siffror och specieltecken.

Ett problem som kan dyka upp om man kräver mycket, t ex om man tvingar användare att ha långa lösenord (t ex 12+ tecken), då tenderar lösenorden att blir "förnamn_efternamn_1973" vilket inte är speciellt "säkert" om man redan sparar denna information i klartext i databasen.

En ganska bra artikel om hur ett lösenord skrivs för att vara säkert:
http://www.baekdal.com/tips/password-security-usability
 

_________________
Utvecklingsbloggen
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget Gå till sida Föregående  1, 2
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