Autor Wątek: Czy udostępnienie źródeł Warsztatu ułatwi zhakowanie haseł?  (Przeczytany 8196 razy)

Offline Xirdus

  • Redaktor

# Sierpień 01, 2014, 22:25:32
@Karol: a winrar is you. Tak więc cofam to co powiedziałem o SHA-1 - nie jest wystarczający.

Robienie hasha z hasha ma sens taki, że to obliczeniowo trwa i uodparnia na metody słownikowe i inne brute force, bo spróbuje coś w ten sposób "hakować" jak jeden test trwa 3s, a nie 0,003s.
Chyba że zoptymalizujesz algorytm n-tego hasha, o czym już wspomniałem.

Reszta to tyle razy przehashowane hasło z LOSOWĄ solą, żadnej soli w bazie, żadnej soli w kodzie.
To jak chcesz zmatchować hasło wpisane przez użytkownika z hasłem w bazie?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Karol

  • Użytkownik

# Sierpień 01, 2014, 22:39:44
To jak chcesz zmatchować hasło wpisane przez użytkownika z hasłem w bazie?
Tak jak pisałem crypt od hasła z hashem zapisanym w bazie ma dać na wyniku hash z bazy. Czyli "crypt(hasło, hash) == hash".

http://php.net//manual/pl/function.crypt.php

Offline albireo

  • Użytkownik

  • +2
# Sierpień 01, 2014, 23:05:59
Tak jak pisałem crypt od hasła z hashem zapisanym w bazie ma dać na wyniku hash z bazy. Czyli "crypt(hasło, hash) == hash".

http://php.net//manual/pl/function.crypt.php
Drugi parametr do crypt to salt a nie hash, a działa z hashem dlatego, że na początku hasha jest dopisywany salt. Tak więc salt w bazie musi być zapisany.

Offline karol57

  • Użytkownik

# Sierpień 01, 2014, 23:47:26
Hmmm... a nie wystarczy po prostu nie udostępniać źródeł funkcji nazwanej dajmy na to wapi_crypt(hasło), która będzie robiła nawet zwykłego md5 + jakieś szyfrowanie hasha? Możliwości szyfrowania jest praktycznie nieskończenie wiele, wątpię by komuś chciało by się to łamać dla strony tego typu.

P.S. W ogóle co mi po takim haśle?
P.S.2 Zawsze można dać ostrzeżenie przy rejestracji, zmianie hasła, aby używać innego hasła niż zazwyczaj, ponieważ źródła strony są otwarte.
« Ostatnia zmiana: Sierpień 02, 2014, 00:00:12 wysłana przez karol57 »

Offline bluebat

  • Użytkownik

  • +2
# Sierpień 02, 2014, 01:08:18
P.S.2 Zawsze można dać ostrzeżenie przy rejestracji, zmianie hasła, aby używać innego hasła niż zazwyczaj, ponieważ źródła strony są otwarte.

Gdybym taki tekst zobaczył na jakiejś stronie, najpierw wybuchłbym śmiechem, a potem rzeczywiście użył innego hasła, bo autor ewidentnie nie miał pojęcia o bezpieczeństwie.

Znajomość algorytmu albo soli nie może w żaden sposób ułatwiać złamania haseł. W bazie powinna być losowa sól zapisana obok każdego hasha hasła, z 2 powodów: aby nie dało się zauważyć, że 2 użytkownicy mają takie samo hasło (hashe zawsze będą różne); oraz aby nie dało się użyć rainbow tables, albo innego rodzaju bazy hashy. Taki setup to zupełny standard, wszyscy tak robią (albo powinni, z 'normalnych' stron) i przy sha-256 jest odpowiednio bezpiecznie (no jeszcze https by się przydał).

Offline karol57

  • Użytkownik

  • +1
# Sierpień 02, 2014, 01:34:28
Masz rację. Mam znikome pojęcie na temat kryptografii i bezpieczenstwa danych. Napisałem, ponieważ często najprostsze rozwiązania są najlepsze.

Znajomość algorytmu albo soli nie może w żaden sposób ułatwiać złamania haseł.

Nie rozumiem. Skoro znam algorytm i sól to mogę już bruteforcem próbować, ew. (jeżeli się da) rainbow tables? Jeżeli nie mam algorytmu najpierw muszę się dowiedzieć jak hasło jest hashowane, wiec zawsze 'jest trudniej'. (Zakładając,  że np. hash jest zaszyfrowany/niestandardowy i nie 'widać' czy jest to md5, sha256, ...). Mam rację?

(Oczywiscie pomijam tutaj wydajność bruteforce'a. Bardziej chodziło mi o to że jest już jakiś punkt zaczepienia.)
« Ostatnia zmiana: Sierpień 02, 2014, 01:37:31 wysłana przez karol57 »

Offline Rolek

  • Użytkownik

# Sierpień 02, 2014, 04:06:24
Skoro znam algorytm i sól to mogę już bruteforcem próbować
I czekać kilka lat na wynik ;P

Offline Xion

  • Redaktor
    • xion.log

  • +14
# Sierpień 02, 2014, 06:47:09


Srsly. Macie szczęście, że w pobliżu nie ma Gynvaela, bo ilość bzdur na temat web security, jaka padła w tym wątku, przekracza nawet zwyczajowe internetowe normy. Wprawdzie żaden ze mnie specjalista od bezpieczeństwa, ale nawet ja potrafię rozpoznać farmazony tego kalibru.

Zacznijmy od tego, że nikt tak naprawdę nie zastanowił się nad rozsądną oceną możliwych rodzajów ryzyka, przed którymi Warsztat powinien się bronić. Ironicznie, najbliżej tego był karol57, ale niestety na tym samym oddechu proponował on security by obscurity jako możliwe rozwiązanie. Oh well.

Nie trzeba wielkiej mądrości, żeby ocenić, iż Warsztat nie jest jakimś bardzo wartościowym celem ataków. Najlepszym na to dowodem jest fakt, iż... nigdy jeszcze nie został zhackowany (w obecnej wersji) :) Zgodnie ze wszystkimi znakami na niebie i ziemi, coś takiego powinno nastąpić już dawno. Mówimy przecież o serwisie zakodowanym:
  • przez programistów gier, którzy siłą rzeczy wiedzą mniej o webdevie w ogóle, a o web security w szczególności;
  • z użyciem języka, który nie tylko nie chroni, ale wręcz zachęca do wprowadzania nie tyle dziur, co kraterów bezpieczeństwa; oraz
  • bez wsparcia jakiegokolwiek frameworka, który by chociaż część tego ryzyka usunął
Biorąc to pod uwagę, słówko "wystarczy" w sugestii Xirdusa:
Cytuj
wystarczy żeby nie było żadnych oczywistych błędów pozwalających na łatwy SQL Injection, Cross-Site Scripting czy inny trywialny hak i już jest dość bezpiecznie
to ponury żart. Używając znacznie lepszych języków i sprawdzonych frameworków, wprowadzenie możliwości exploitu XSS jest wciąż zupełnie realne. Sugestia, że zabezpieczenie sporego kłębka spaghetti kodu przed tym najczęstszym i najbardziej niebezpiecznym rodzajem dziury jest łatwe to opary czystego absurdu.

Z następującej później, zabawnej dyskusji na temat hashowania haseł najbardziej ciekawi mnie ów magiczny algorytm miliona hashy. Bardzo chętnie zobaczę, w jaki sposób (1) wielokrotne aplikowanie zwężających surjekcji ma w rezultacie skutkować mniejszym - a nie większym - prawdopodobieństwem kolizji, oraz jak (2) wprowadzanie po drodze LOSOWYCH soli (naprawdę, nie pseudo-) pozwala na późniejszą weryfikację przychodzących haseł. Taki schemat brzmi jak wyciągnięty prostu z pudełka z napisem "Magia".

Oczywiście cała ta dyskusja na temat haseł zręcznie pomija fakt, że do podszycia się pod dowolnego użytkownika nie trzeba w ogóle znać jego danych logowania -- wystarczą ciastka. A wykradanie takowych to właśnie główne "zastosowanie" XSS, których to dziur -- można spokojnie założyć -- jest pewnie na Warsztacie przynajmniej kilka. Najwyraźniej jednak nikt póki co jednak nie zadał sobie trudu, aby je znaleźć i exploitować, pewnie dlatego że wymaga to trochę wiedzy i/lub wysiłku.
Posiadanie dostępu do kodu źródłowego pomaga przy tym zaskakująco niewiele: ów kod trzeba wciąż przejrzeć (żeby nie powiedzieć "zaudytować") pod kątem luk w bezpieczeństwie, co znów wymaga wiedzy i/lub wysiłku. Łatwiej i szybciej jest często zapuścić automatyczny skaner XSS; jedynie ułatwienie jest takie, że z kodem można to zrobić na lokalnej kopii serwisu. Czy fakt, że znalezienie exploita zajmie wtedy minuty zamiast godzin ma jakieś praktyczne znaczenie? :)

Offline Kos

  • Użytkownik
    • kos.gd

  • +3
# Sierpień 27, 2014, 22:31:20
Olaboga, tak się ucieszyłem że znalazłem fajny wątek, już mi się post układał w głowie, a tu na końcu przyszedł Xion i napisał wszystko co chciałem i jeszcze trochę. :D

Dorzucę tylko swoje dwa niezbyt odkrywcze grosze:

- Generalnie dobrze jest zakładać że atakujący jest geniuszem. Nie ma czegoś takiego, że "to jest bezpieczne bo liczę nie wpadniesz jak jest zabezpieczone". Bezpieczeństwo wygląda tak, że "możesz wiedzieć o naszych zabezpieczeniach wszystko i nic ci to nie da". Jest nawet na to szumne określenie.

- Aplikowanie hasha do hasła więcej niż raz generalnie ma sens i jest całkiem powszechnie stosowanie, jeśli hash jest względnie szybki (np. rodzina SHA). Konkretny schemat przydatny do tego (dobrze przestudiowany) nazywa się PBKDF2 i jest odrobinę bardziej złożony od aplikowania hasha w kółko.

Offline rastabaddon

  • Użytkownik

# Lipiec 20, 2015, 21:55:00
Ta? To teraz takie małe ćwiczenie: SHA-1 mojego hasła to D0F8D96EF806C440D4D2BCE0BB56244540FD292F. Jakie jest moje hasło?

http://ecotorrents.com/download/never+gonna+give+you+up.html

;-)

-------
Edited.

to zanim doszedlem do posta nizej, ha,ha

Offline Xender

  • Użytkownik

# Lipiec 20, 2015, 22:43:17
jak (2) wprowadzanie po drodze LOSOWYCH soli (naprawdę, nie pseudo-) pozwala na późniejszą weryfikację przychodzących haseł. Taki schemat brzmi jak wyciągnięty prostu z pudełka z napisem "Magia".

Ano tak, że wartość soli zapisuje się obok hasha.

Sporo bibliotek stosuje UNIX-owy modularny format, w wyniku którego w bazie danych ląduje takie coś:
'$5$rounds=80000$zvpXD3gCkrt7tw.1$QqeTSolNHEfgryc5oMgiq1o8qCEAcmye3FoMSuvgToC'

Offline topik92

  • Użytkownik

# Sierpień 09, 2015, 22:00:07
Jako ciekawostka, dlaczego nie opłaca się hakować warsztatu.

https://www.youtube.com/watch?v=U4oB28ksiIo

Offline Kos

  • Użytkownik
    • kos.gd

# Sierpień 10, 2015, 02:09:12
Jako ciekawostka, dlaczego nie opłaca się hakować warsztatu.

?

Offline topik92

  • Użytkownik

# Sierpień 12, 2015, 23:06:54
XD skrót myślowy. Na haku tej strony raczej nikt nie zarobi, więc pewnie byłby to amator robiący to "dla jaj". Jest cień szansa że coś spieprzy i cień cienia że ktoś z forum "dla jaj" zhakował by mu np. fb. Zagranicą już taka sytuacja była:P. Niby mrzonka, ale na pewno działa na psychikę.

Offline Avaj

  • Użytkownik

# Sierpień 12, 2015, 23:50:42
Security by obscurity