Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: md5 + salt
Forum PHP.pl > Forum > PHP
permanent
Robię skrypt tworzący konta do vBulletin'a. Mam praktycznie już wszystko ale brakuje mi 2 ostatnich pól w tabeli.
Mianowicie chodzi o password oraz salt.


vBulletin ma hasła typu md5 + salt

Przykładowe hasło: "pass", wygląda tak:

pole password: 525f8d091823e8db9fa3a43d30ca518f
pole salt (wcześniej już utworzony, przy tworzeniu użytkownika?): 1[;


Na czym to polega? Chciałbym wygenerować takiego salta, ale jak później to złączyć, żeby wyszło md5 + salt? Mógłby mi ktoś wytłumaczyć działanie tego?
ayeo
Witaj!

Polega to na tym, że robisz md5( $password.$salt ); nawet jeśli ktoś złamie md5 to nie ma poprawnego hasła.

Pozdrawiam!
permanent
A jak mogę wygenerować jakiś salt?

Zauważyłem, że w vBulletin'ie wszystkie salty są 3 znakowe i w każdym z nich znajdują się nietypowe znaki.
ayeo
Witam!

Ten cały salt to może być cokolwiek, jedna cyfra chociaż i dodana niekoniecznie na końcu. Chodzi tylko o to, że jeśli ktoś złamie md5 i tak nie ma hasła. Im bardziej nietypowe znaki tym trudniej wygenerować tęczowe tablice.

Pozdrawiam!
rzymek01
ja jeszcze bym proponował wrzucanie soli w różne miejsca zaleznie od długości hasła (albo wręcz inna sól), co już stanowi duże wyzwanie dla włamywacza, bo nawet jak zdobędzie sól, to cały czas nie zna długości hasła i nie bedzie wiedział w którym miejscu została doklejona tongue.gif

PS. tylko nie klikaj pomógł, bo mój post nie jest tego wart
.radex
Cytat(rzymek01 @ 22.02.2009, 12:03:17 ) *
ja jeszcze bym proponował wrzucanie soli w różne miejsca zaleznie od długości hasła (albo wręcz inna sól), co już stanowi duże wyzwanie dla włamywacza, bo nawet jak zdobędzie sól, to cały czas nie zna długości hasła i nie bedzie wiedział w którym miejscu została doklejona tongue.gif

PS. tylko nie klikaj pomógł, bo mój post nie jest tego wart


nie ma sensu. Bruteforcem to i tak bez znaczenia, a poprzez rainbow tables kto by się fatygował robić taką tablicę dla jednego usera. No i jeszcze jedno - jak w jakiś sposób dostał się do bazy danych to czemu miałby się nie dostać do FTP i mieć na tacy jak hash jest solony?
pyro
Cytat(ayeo @ 21.02.2009, 23:03:00 ) *
Ten cały salt to może być cokolwiek, jedna cyfra chociaż i dodana niekoniecznie na końcu. Chodzi tylko o to, że jeśli ktoś złamie md5 i tak nie ma hasła.


  1. <?php
  2.  
  3. $haslo = 'haselko';
  4. $salt = '_123';
  5. $hashed = md5($haslo.$salt);
  6.  
  7. // Według Ciebie jak ktoś złamie ten hash to nie będzie miał hasełka :)?
  8.  
  9. ?>


// ADD

Cytat(.radex @ 22.02.2009, 12:11:15 ) *
No i jeszcze jedno - jak w jakiś sposób dostał się do bazy danych to czemu miałby się nie dostać do FTP i mieć na tacy jak hash jest solony?


Dostać się do SQL'a a do FTP to dwie różne zupełnie oddzielne drogi ;]
rzymek01
Cytat(pyro)
Dostać się do SQL'a a do FTP to dwie różne zupełnie oddzielne drogi ;]


dokładnie, zresztą @permanent lepiej skorzystaj z innej funkcji niż md5, chociażby sha1, crypt, bo z nich nie ma tak duzych rainbow tables jak z md5

@.radex, co do BF masz rację, jednak mi chodziło właśnie o zrobienie na potrzeby tego skryptu tęczowych tablic biggrin.gif

//co do pobrania haseł z sql
wystarczy jedno zapytanie w całym skrypcie podatne na sql injection, odpowiedni union etc.
.radex
Cytat
Dostać się do SQL'a a do FTP to dwie różne zupełnie oddzielne drogi ;]


Prawda, ale skoro skrypt jest marnie zabezpieczony, to bardziej prawdopodobne, że i komputer autora skryptu jest marnie zabezpieczony tongue.gif Może i przesadzam, ale sami widzicie ile jest na forum postów, że "dokleiło do skryptu jakiś dziwny kod i nie mogę go usunąć"

Cytat(rzymek01 @ 22.02.2009, 12:40:03 ) *
co do BF masz rację, jednak mi chodziło właśnie o zrobienie na potrzeby tego skryptu tęczowych tablic biggrin.gif


Jasne, tylko, że jeśli to jest porządnie zrobione, to każdy użytkownik ma swoją sól. A kto będzie generował tęczowe tablice dla jednego usera? No właśnie. Dlatego z tym przestawianiem soli jest IMHO bez sensu - tylko obciążasz serwer.

A co do generowania soli to zainteresuj się funkcją uniqid(). Wynik jej działania możesz jeszcze zahashować i skrócić do kilku znaków, żeby nie było zbyt długie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.