| Visa föregående ämne :: Visa nästa ämne |
| Startad av: |
Meddelande |
Peppe L-G

Medlem i: 2266 dagar Från: Linköping
Status: Offline
#710714
|
Skrivet: 2011-07-23 16:09
Ämne:
|
|
|
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. |
|
|
_________________ Första spelet på Robuni kan nu laddas ner. |
| Till toppen på sidan |
|
Sawny
Medlem i: 1003 dagar
Status: Offline
#710716
|
Skrivet: 2011-07-23 16:13
Ämne:
|
|
|
| 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 |
|
Wedge


Medlem i: 3917 dagar Från: Järfälla
Status: Offline
#710718
|
Skrivet: 2011-07-23 16:25
Ämne:
|
|
|
| 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? |
|
|
_________________ Qualitum Webbhotell | Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber |
| Till toppen på sidan |
|
Sawny
Medlem i: 1003 dagar
Status: Offline
#710720
|
Skrivet: 2011-07-23 16:38
Ämne:
|
|
|
| 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
---------------
| Citat: |
| Att en hashfunktion används i en kryptering gör inte hashfunktionen till kryptering. |
Otydligt >.< |
|
|
_________________ HTML, CSS, PHP, JS |
| Till toppen på sidan |
|
Tarre
Medlem i: 2849 dagar Från: Gotland
Status: Offline
#711192
|
Skrivet: 2011-08-03 11:39
Ämne:
|
|
|
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 ?! |
|
|
_________________ Php Rules Everything Around Me - P.R.E.A.M run the code! h t t p yaal |
| Till toppen på sidan |
|
rikards1234
Medlem i: 1083 dagar
Status: Offline
#711212
|
Skrivet: 2011-08-03 17:46
Ämne:
|
|
|
Eller så använder man bcrypt, extremt bra
$salt = "usesomesillystringforsalt";
$wf = "07";
$pass = crypt($_POST['pass'], '$2a$'.$wf.'$'.$salt.'$'); |
|
|
|
| Till toppen på sidan |
|
Tarre
Medlem i: 2849 dagar Från: Gotland
Status: Offline
#711432
|
Skrivet: 2011-08-08 18:19
Ämne:
|
|
|
| Varför är det så mycket bättre än sha1 med lösenord och användarnamn ? |
|
|
_________________ Php Rules Everything Around Me - P.R.E.A.M run the code! h t t p yaal |
| Till toppen på sidan |
|
marabou


Medlem i: 3147 dagar Från: Sveriges framsida
Status: Offline
#711459
|
Skrivet: 2011-08-09 09:23
Ämne:
|
|
|
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 |
|
Sawny
Medlem i: 1003 dagar
Status: Offline
#711463
|
Skrivet: 2011-08-09 09:54
Ämne:
|
|
|
| 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 |
|
marabou


Medlem i: 3147 dagar Från: Sveriges framsida
Status: Offline
#711468
|
Skrivet: 2011-08-09 10:42
Ämne:
|
|
|
| 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!  |
|
|
_________________ "Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain |
| Till toppen på sidan |
|
hallis

Medlem i: 3686 dagar Från: Stockholm
Status: Offline
#711473
|
Skrivet: 2011-08-09 12:04
Ämne:
|
|
|
Enkelhet är ofta svaret. Jag brukar använda varianter av följande, som är ganska beprövat:
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 |
|
|