• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SHA1 odkodowanie haseł

Object Storage Arubacloud
0 głosów
1,855 wizyt
pytanie zadane 2 września 2017 w PHP przez ThePatrykOOO Dyskutant (8,400 p.)
witam, mam sporą bazę userów w której hasła są zakodowane w sha1 i teraz mam pytanie jak pozmieniać algorytmy kodowania znaków. Najlepiej byłoby stworzyć skrypt który podmieni hashe haseł w bazie. Tylko w tym jest problem że sha1 działa w jedną stronę. Istnieją sha1 decrypt online, lecz one niezbyt się sprawdzą bo trzeba wpisywać kod captcha. Istnieją jakieś gotowe skrypty które pozwolą to przepisać??? Jeśli nie to czy macie jakieś fajne pomysły rozwiązania tego problemu
komentarz 2 września 2017 przez Mariusz08 Maniak (62,300 p.)

2 odpowiedzi

+3 głosów
odpowiedź 2 września 2017 przez Comandeer Guru (601,110 p.)

Sposób podmiany algorytmu jest dość prosty i można to przeprowadzić w czasie logowania usera:

  • User próbuje się zalogować.
  • Sprawdzasz, czy jego hasło jest zahashowane nowym algorytmem (w przypadku PHP to sprowadza się do sprawdzenia, czy hash nie zaczyna się od $2 i czy ma 40 znaków – jeśli tak, to jest to SHA1).
  • Sprawdzasz poprawność hasła z hashem przy użyciu wykrytego algorytmu.
  • Jeśli algorytm to SHA-1 i hasło jest poprawne, tworzysz nowy hash nowym algorytmem i podmieniasz hash w bazie.
–2 głosów
odpowiedź 2 września 2017 przez CzikaCarry Szeryf (75,340 p.)
Eeeeeem, nope, algorytmy hashujące działają w jedną stronę, nie odwrócisz tego procesu. Poza tym po co chcesz zmieniać algorytm hashujacy? Jeśli nir odwalisz żadnej Albertowizny i nie zostawisz komuś furtki do wykradniecia bazy to i tak bez różnicy jakiego agorytmu użyjesz (bez urazy dla żadnego Alberta).
4
komentarz 2 września 2017 przez Comandeer Guru (601,110 p.)

Jeśli nir odwalisz żadnej Albertowizny i nie zostawisz komuś furtki do wykradniecia bazy to i tak bez różnicy jakiego agorytmu użyjesz (bez urazy dla żadnego Alberta).

Rozumiem, że zamykasz dom słomianymi drzwiami, bo przecież go zabezpieczyłeś, więc nie ma różnicy, jakie drzwi będziesz mieć? 

komentarz 2 września 2017 przez CzikaCarry Szeryf (75,340 p.)
edycja 2 września 2017 przez CzikaCarry
Właśnie te słomiane drzwi są Albertowizną, a zawartość jest hashem. (Zauważ, że najpierw musimy się dostać do bazy aby uzyskać hash, tak samo jak najpierw musimy przejść przez drzwi domu aby dostać się do zawartości). Jeśli zabezpieczysz swój dom wystarczająco dobrze (pancerne drzwi), to nie ma większej różnicy czy użyjesz SHA-1 czy SHA-2. I nie mówimy tutaj o np. Kolizjach bo są to przecież już istniejące hasła...

Nietrafne porównanie.
2
komentarz 2 września 2017 przez Comandeer Guru (601,110 p.)
OK, to inne: masz pancerne drzwi, a ktoś wybije okno i wejdzie, a tam w sypialni otwarty sejf, bo przecież masz pancerne drzwi. No to zmieniasz szyby na pancerne, to ktoś po prostu wykuje dziurę w ścianie tuż obok pancernych drzwi i okien i znów dobierze się do otwartego sejfu.

Twierdzenie, że da się w pełni zabezpieczyć bazę danych tak, by nikt się nie włamał, jest mrzonką. Dlatego też kolejną linią obrony jest jak najmocniejszy algorytm, żeby wykradzione hashe nie dały się złamać w sensownym czasie (czyli w tym tysiącleciu). SHA-1 można złamać relatywnie bardzo szybko (bo to szybki algorytm + istnieją tablice tęczowe). Polecanie go czy nawet sugerowanie, że jest wystarczająco dobry, jest po prostu szkodliwe.
komentarz 2 września 2017 przez CzikaCarry Szeryf (75,340 p.)

Nie sugeruję tu, że stosowanie SHA-1 jest dobre czy złe, mówię po prostu, że to, że ktoś wykradnie Ci bazę danych to wina:

  • Albo Twoja (twojego kodu, większość przypadków )
  • Albo Twoja (dane do bazy danych i hasła typu "qwerty")
  • Albo niczyja (napad na serwerownię i wykradnięcie nośników danych, co jest też mało prawdopodobne).

Podaj choć jeden przykład kodu którego nie da się zabezpieczyć...

komentarz 2 września 2017 przez Comandeer Guru (601,110 p.)

Kod software'u, na którym stoi baza danych/serwer, a akurat pojawił się 0-day, o którym mało kto wie. Tego nie zabezpieczysz.

No i żadnego kodu nie da się zabezpieczyć w 100%, bo żaden kod nie jest wolny od błędów (ok, może "Hello world!" jest).

Poza tym nie jest istotne, kto wykradnie i z jakiego powodu. Istotne jest to, że zawsze jest więcej niż 0% szans, że to się stanie. A jak się stanie, to możesz a) świecić oczami przed użytkownikami, bo obrobiono im konta bankowe, gdyż mieli takie same hasło u Ciebie i w banku, a Ty stwierdziłeś, że SHA-1 jest wystarczające b) spokojnie rozesłać userom maile, ze hasła wyciekły, ale są zabezpieczone algorytmem na tyle dobrym, że mają sporo czasu, by pozmieniać swoje hasła wszędzie.

komentarz 2 września 2017 przez CzikaCarry Szeryf (75,340 p.)
Ale my tutaj nie mówimy i zabezpieczeniu calutkiego kodu tak, aby nie miał błędów. Wystarczy zabezpieczyć moduł logowania, rejestracji co nie jest jakieś super uber trudne, przecież to tylko filtrowanie stringów, matchowanie regexów i zabezpieczenie przed bruteforce (np. reCaptcha, cooldown, sztuczne wydłużenie wykonania skryptu). Do tego zabezpieczenie przed XSS i CSRF na całej domenie i nikt Ci nie ukradnie bazy danych z poziomu tego kodu.
komentarz 2 września 2017 przez Comandeer Guru (601,110 p.)

Czyli jak ktoś po prostu przełamie zabezpieczenia serwera i wykradnie bazę, to spoko – ważne, żeby to nie było z poziomu naszego kodu?

Poza tym jaką masz pewność, że zabezpieczenia, które wprowadzisz, są nieprzełamywalne?

Nie po to są tworzone nowe algorytmy i dobre praktyki, które zalecają co najmniej bcrypt, żeby ktoś używał SHA-1 w myśl "i tak jest bezpiecznie". Taka praktyka jest szkodliwa, żeby nie powiedzieć – skrajnie głupia.

Podobne pytania

0 głosów
1 odpowiedź 395 wizyt
pytanie zadane 25 października 2016 w PHP przez Ditrix Mądrala (5,650 p.)
+1 głos
1 odpowiedź 292 wizyt
pytanie zadane 2 grudnia 2021 w Bezpieczeństwo, hacking przez KILLUMINATI Nowicjusz (130 p.)
0 głosów
1 odpowiedź 355 wizyt

92,568 zapytań

141,421 odpowiedzi

319,626 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...