Kom ihåg mig?
Home Menu

Menu


Hash + salt av lösenord

 
Ämnesverktyg Visningsalternativ
Oläst 2008-09-29, 10:14 #41
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Citat:
Originally posted by SimonP@Sep 29 2008, 10:08
Men som jag skrev tidigare i denna tråd är SHA-512 overkill.

512 är högre än 1 Därför drar man till med overkill...
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-09-29, 10:38 #42
SimonPs avatar
SimonP SimonP är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2006
Inlägg: 832
SimonP SimonP är inte uppkopplad
Mycket flitig postare
SimonPs avatar
 
Reg.datum: May 2006
Inlägg: 832
Kör man krypteringen lokalt så minskar man även belastningen på servern. Iofs märks detta inte förrän man har en mkt välbesökt sajt.
Här är en test som jag gjorde på en server förut.
Första kurvan är SHA-1, andra är SHA-256, tredje är SHA-512, fjärde är RIPE-160 och sista är MD5.
Den enda som sticker ut är SHA-512, som belastar CPU:n ungefär dubbelt så länge som de andra.
Bifogade bilder
Filtyp: gif post-4-1222677483.gif (4.3 KB, 6 visningar)
SimonP är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-09-29, 16:24 #43
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
Citat:
Originally posted by znap@Aug 11 2008, 22:28
Tar tillfället i akt och frågar om denna funktion är en bra lösning. Själv känner jag mig hyffsat noob på det här med säker kryptering av lösenord. Med följande funktion följer jag dessa principer som jag snappat upp på lite här och där på nätet.

- Blanda md5 och sha1
- Kryptera flera gånger om
- Använd ett dynamiskt salt kopplat till användarens lösenord
- Använd även ett statiskt salt som man "gömmer" någonstans i applikationskoden

Kod:
	function generatePassword($password, $salt) {
 *$str = md5($password.$salt);
 *for($i=0; $i<5; $i++) {
 *	$str = sha1($str);
 *}	
 *return md5($salt.($str).$salt.STATIC_SALT);	
	}
Är något onödigt? Är det något annat jag bör tänka på?

// Vic
Att dubbel hasha ett lösenord är ingen bra idé.
Vad som sker är att du tar ett lösenord och skapar en sträng på exakt 32 tecken med enbart 0-9 och a-f. Hashar du detta igen ökar du chansen att man kan gissa en sträng som kommer att hasha fram samma värde.

Ännu värre blir det om du blandar sha1 och md5, t.ex. sha1(md5($pass))
Vad du då gör är att ta 128-bitars information för att skapa 256-bitar, vilket betyder att det blir 50% överflödig information.

Allt detta bidrar bara till att det är enklare att skapa en hash kollision. Alltså att två fraser kan bli samma hash.

Rätta mig om jag har fel!
grinditwp är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-09-29, 16:57 #44
SimonPs avatar
SimonP SimonP är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2006
Inlägg: 832
SimonP SimonP är inte uppkopplad
Mycket flitig postare
SimonPs avatar
 
Reg.datum: May 2006
Inlägg: 832
Citat:
Originally posted by grinditwp@Sep 29 2008, 16:24
Att dubbel hasha ett lösenord är ingen bra idé.
Vad som sker är att du tar ett lösenord och skapar en sträng på exakt 32 tecken med enbart 0-9 och a-f. Hashar du detta igen ökar du chansen att man kan gissa en sträng som kommer att hasha fram samma värde.

Ännu värre blir det om du blandar sha1 och md5, t.ex. sha1(md5($pass))
Vad du då gör är att ta 128-bitars information för att skapa 256-bitar, vilket betyder att det blir 50% överflödig information.

Allt detta bidrar bara till att det är enklare att skapa en hash kollision. Alltså att två fraser kan bli samma hash.

Rätta mig om jag har fel!
Ok, det du skriver stämmer ej, det finns inga bevis för att risken för kollisioner ökar om man hashar flera gånger.

I dagsläget finns det ingen risk att nån hittar en lösenordskollision, inte ens på MD5.
Med ordet lösenordskollision menar jag att någon hittar ett annat lösenord som genererar samma hashsumma som ett annat.
SimonP är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-09-29, 19:49 #45
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
Citat:
Originally posted by SimonP@Sep 29 2008, 16:57
I dagsläget finns det ingen risk att nån hittar en lösenordskollision, inte ens på MD5.
Med ordet lösenordskollision menar jag att någon hittar ett annat lösenord som genererar samma hashsumma som ett annat.
Ingen reell risk. Det finns enstaka lyckade försök att skapa två filer som ger samma MD5-hash, men ett lösenord är sällan speciellt långt :-) Det var dock först när man lyckades med detta som det rent allmänt började pratas om att byta till SHA-1, så möjligen är det därför MD5 anses "osäkert" idag. Så ska vi ju inte sticka under stol med att det finns en drös regnbågstabeller för MD5 numera också, och det hjälper ju till att minska säkerheten.
emilv är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-09-29, 23:58 #46
SimonPs avatar
SimonP SimonP är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2006
Inlägg: 832
SimonP SimonP är inte uppkopplad
Mycket flitig postare
SimonPs avatar
 
Reg.datum: May 2006
Inlägg: 832
Citat:
Originally posted by emilv@Sep 29 2008, 19:49
Ingen reell risk. Det finns enstaka lyckade försök att skapa två filer som ger samma MD5-hash, men ett lösenord är sällan speciellt långt :-) Det var dock först när man lyckades med detta som det rent allmänt började pratas om att byta till SHA-1, så möjligen är det därför MD5 anses "osäkert" idag. Så ska vi ju inte sticka under stol med att det finns en drös regnbågstabeller för MD5 numera också, och det hjälper ju till att minska säkerheten.
Fast det är ändå stor skillnad på att modifiera två filer som ger samma hashvärde, än att leta efter "kollisioner" till en given hash (pre-image attack).

Det tar inte många sekunder att skapa två olika texter som ger samma MD5-hashvärde, dock måste jag modifiera båda texterna för att kunna göra detta. Så som signeringsalgoritm är MD5 relativt värdelös. Men som lösenordsalgoritm där attackeraren bara kan modifiera den ena av strängarna funkar MD5 än idag, ingen har lyckats hitta den typen av "kollision" i MD5.

Jag håller med om att det finns mkt regnbågstabeller till just MD5, därav ska man inte använda en ren MD5 summa i lösenordsystem, vill man fortsätta med MD5 måste man se till att ha salt för att motverka regnbågarna + att man itererar hashen några gånger för att försvåra bruteforce.

Sen finns det ju folk som inte litar på SHA-algoritmerna över huvudtaget pga att amerikanska myndigheterna varit inblandade i framställningen av dessa, så en del föredrar t.ex den europeiska RIPEMD-160 istället.
SimonP är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 02:00.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017