Warsztat - Programowanie gier

Lipiec 30, 2010, 17:37:53 *
Witamy, Gość. Zaloguj się, lub zarejestruj proszę.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności: Warsztat, Regulamin forum, #warsztat, Wiki, FAQ, NoPaste, Mapa
 
   Strona główna   Pomoc Szukaj Zaloguj się Rejestracja  
Strony: 1 [2]
  Drukuj  
Autor Wątek: Bespieczeństwo baz danych  (Przeczytany 1082 razy)
Krzysiek K.
Member2000
*******

wiadomości: 9810



Zobacz profil
« Odpowiedz #15 : Marzec 03, 2010, 17:37:05 »

Dlatego używa się hasha, którego samo obliczenie zajmuje 0.1 s.
Nie przesadzasz? SHA-1 powinno być wystarczające do takich zastosowań.
Zapisane

Aktualne zajęcie: Szkoła DJKurs DJ
msieradzki
Jr. Member
**

wiadomości: 52


Zobacz profil
« Odpowiedz #16 : Marzec 03, 2010, 17:58:20 »

http://www.postgresql.org/docs/8.3/static/pgcrypto.html

W Postgresie masz już to wszystko zakodzone. Czas haszowania można dostroić wg potrzeb.

Porównanie szybkości haszowania:

Algorithm   Hashes/sec   For [a-z]   For [A-Za-z0-9]
crypt-bf/8   28      246 years   251322 years
crypt-bf/7   57      121 years   123457 years
crypt-bf/6   112      62 years   62831 years
crypt-bf/5   211      33 years   33351 years
crypt-md5   2681      2.6 years   2625 years
sha1      590223   4 days   12 years
Zapisane
siso
Sr. Member
****

wiadomości: 332


Zobacz profil
« Odpowiedz #17 : Marzec 04, 2010, 02:49:46 »

Jak nie idki, to co?
Hashe obiektów, czy podobne coś. Wspomniany już frejmłork powinien takie coś dostarczyć.
Powinny to być jakieś abstrakcyjne na pierwszy rzut oka wartości, trudne do skojarzenia z istniejącymi w bazie obiektami. Najważniejsze - nie będące sekwencją. I niech jeszcze zmieniają się z sesji na sesję, a co.

ID-ki i formularze do tego właśnie przecież służą, nie głośmy herezji. User wypełnia forma / klika w link i wysyła w ten sposób żądanie, skrypt je analizuje, sprawdza pod kątem poprawności (np. uprawnienia, spójność, zgodność z logiką systemu) i - jeśli potrzeba - uaktualnia model danych, czyli bazę. Tak to działa i działać powinno.
Nie głosimy herezji, próbujemy tu tylko walczyć z antypatternami Wink
Formy służą do tego, o czym napisałeś i tak to działać powinno ale - na litość - nie ma powodów do pchania w nie surowych danych z bazy, lecz tylko tych, które zostały świadomie wystawione. Jeśli zamiast ID-ków użyjesz hash-y, pierwszy z brzegu spryciarz nie będzie w stanie zniszczyć Ci zawartości celując w jakieś okoliczne wartości z sekwencji, żeby daleko przykładu nie szukać.


Przeczytałem tylko początek, dalej mi się nie chciało, bo już późno Smiley
Przedstawiony tu sposób jest tyleż naiwny, co niepraktyczny. Co najwyżej 15-to znakowe bazy do hashowania czegokiolwiek (nie tylko haseł) nie są już modne w tym sezonie Wink Wystarczy użyć dwa, trzy, niech nawet i cztery razy dłuższych i odporność na reverse eng. znacząco rośnie. Dodajmy do tego możliwość zastosowania nie jednego a kilku różnych algorytmów hashujących, możliwość preprocessingu wejścia i postprocessingu wyjścia (jeśli komuś mało) - i co, wychodzą niezłe hashcze? Wink
Zapisane

Otwarty GL / Bezpośredni X
owyn
Newbie
*

wiadomości: 36


Zobacz profil
« Odpowiedz #18 : Marzec 04, 2010, 12:08:31 »


Czyli spowalniamy nasz serwer aby lekko zwiększyć bezpieczeństwo na wypadek, gdyby ktoś odczytał dane z bazy? Z tego co zrozumiałem, autorowi wątku chodziło o jakąś grę online, a nie o obsługę konta bankowego. Poziom zabezpieczeń należy dostosować do potrzeb. Jeśli z tym przesadzisz, to w efekcie zmarnujesz zbyt dużo czasu na implementację, a serwer będzie działał zbyt wolno.
Zapisane
msieradzki
Jr. Member
**

wiadomości: 52


Zobacz profil
« Odpowiedz #19 : Marzec 04, 2010, 13:32:15 »

Uprościłem to wtedy trochę pisząc 0.1s, liczbę iteracji Blowfisha możesz dostosować (p. ten link do dokumentacji PostgreSQLa). Sprawdzanie hasła jest używane przez 1 użytkownika raz na godzinę lub rzadziej. W tym samym czasie twoja strona odpowiada na np. 100 żądań od niego. Na pewno lepsze to od SHA1, które można w tym samym czasie wykonać 10k razy częściej. Założenie jest takie, że użytkownicy mają te same hasło do innych, ważniejszych stron i niektórzy z nich mają bardzo głupie hasła (pomimo wymagań w rodzaju 20 znaków).

Jeśli nie musisz robić własnego uwierzytelniania użyj OpenID.
Zapisane
Dab
Member2000
*******

wiadomości: 2999


wiadomości: 2963


Zobacz profil WWW
« Odpowiedz #20 : Marzec 04, 2010, 13:40:58 »

Jeżeli ktoś ma te same hasło do wszystkich stron, łącznie z firmowym mailem i kontem w banku to już mu nic nie pomoże.
Zapisane

msieradzki
Jr. Member
**

wiadomości: 52


Zobacz profil
« Odpowiedz #21 : Marzec 04, 2010, 14:10:22 »

Ja mam takie same hasło do całej serii nieistotnych stronek Tongue. Do banku raczej nikt nie używa tego samego hasła.
Zapisane
Krzysiek K.
Member2000
*******

wiadomości: 9810



Zobacz profil
« Odpowiedz #22 : Marzec 04, 2010, 14:21:53 »

Cytuj
Założenie jest takie, że użytkownicy mają te same hasło do innych, ważniejszych stron i niektórzy z nich mają bardzo głupie hasła
No i co z tego wynika dla Twojego serwisu? Myślę, że niewiele, ponieważ:
- jeżeli hasło jest głupie, można je złamać metodą słownikową i nic na to nie poradzisz (poza wymaganiem złożoności hasła, ale to inna historia),
- jeżeli ktoś się włamał na inną stronę i użył tego samego hasła na Twojej, tym bardziej nic nie poradzisz,
- jeżeli ktoś się włamie na Twoją stronę i użyje uzyskanego hasła gdzieś indziej, to już jest wina użytkownika, że ma jedno hasło na wszystko


W przypadku gier online po prostu nie ma potrzeby ochrony hasła tak mocnej, żeby zamulać przez to serwer. Smiley


Inna kwestia, że użytkownik nie dość, że nie powinien przesyłać do serwera hasła plaintextem, nie powinien też przesyłać do serwera nawet hasha tego hasła, bo hash też można podsłuchać i potem próbować zalogować się do serwera tym samym hashem nawet bez znajomości hasła. W praktycznych protokołach serwer wysyła do klienta identyfikator sesji (coś niepowtarzalnego, np. losową liczbę, czy aktualną datę i godzinę), który klient łączy z hasłem i wysyła hash dopiero całości. Jeżeli do tego identyfikator sesji ustali się w sposób tajny, to system wyjdzie elegancki - są metody kryptograficzne na to, żeby klient i serwer ustalił wspólny identyfikator, a podsłuchujący nie miał szans go wywnioskować z przebiegu komunikacji.
Zapisane

Aktualne zajęcie: Szkoła DJKurs DJ
bies
Sr. Member
****

wiadomości: 383


Zobacz profil
« Odpowiedz #23 : Marzec 04, 2010, 14:29:05 »

(...) W praktycznych protokołach serwer wysyła do klienta identyfikator sesji (coś niepowtarzalnego, np. losową liczbę, czy aktualną datę i godzinę), który klient łączy z hasłem i wysyła hash dopiero całości. Jeżeli do tego identyfikator sesji ustali się w sposób tajny, to system wyjdzie elegancki - są metody kryptograficzne na to, żeby klient i serwer ustalił wspólny identyfikator, a podsłuchujący nie miał szans go wywnioskować z przebiegu komunikacji.
W praktycznych protokołach nie duplikuje się warstwy SSL/TLS.
Zapisane
Krzysiek K.
Member2000
*******

wiadomości: 9810



Zobacz profil
« Odpowiedz #24 : Marzec 04, 2010, 14:39:23 »

W praktycznych protokołach nie duplikuje się warstwy SSL/TLS.
Jak widać w takim razie POP3 nie jest praktycznym protokołem. Wink
Zapisane

Aktualne zajęcie: Szkoła DJKurs DJ
bies
Sr. Member
****

wiadomości: 383


Zobacz profil
« Odpowiedz #25 : Marzec 04, 2010, 15:31:09 »

W praktycznych protokołach nie duplikuje się warstwy SSL/TLS.
Jak widać w takim razie POP3 nie jest praktycznym protokołem. Wink
Nie jest. Używasz jeszcze gdzieś czystego POP3? Chyba wszędzie używa się POP3 owiniętego w SSL/TLS (STARTTLS albo opakowania komunikacji w SSL).
Zapisane
Krzysiek K.
Member2000
*******

wiadomości: 9810



Zobacz profil
« Odpowiedz #26 : Marzec 04, 2010, 17:54:45 »

No dobra, ale jeżeli o gamedev i gry online chodzi, to sama dyskusja ma sens, bo łatwiej znaleźć implementację SHA-1 w Action Scripcie, niż implementację całego SSL.
Zapisane

Aktualne zajęcie: Szkoła DJKurs DJ
Krolik
Full Member
***

wiadomości: 243


Karma: kitekat


Zobacz profil
« Odpowiedz #27 : Marzec 04, 2010, 18:05:48 »

Gdzie można poczytać o tym co piszecie ...  tak czytam te SSL'e SHA-1 ... i nic nie kminie Tongue. Czy znacie jakies przystepne źródło po polsku gdzie można o tym wszystkim poczytac?
Zapisane
siso
Sr. Member
****

wiadomości: 332


Zobacz profil
« Odpowiedz #28 : Marzec 04, 2010, 19:10:34 »

Internet
Zapisane

Otwarty GL / Bezpośredni X
bies
Sr. Member
****

wiadomości: 383


Zobacz profil
« Odpowiedz #29 : Marzec 05, 2010, 00:40:52 »

No dobra, ale jeżeli o gamedev i gry online chodzi, to sama dyskusja ma sens, bo łatwiej znaleźć implementację SHA-1 w Action Scripcie, niż implementację całego SSL.
Tia... HTTPS!

Królik: w skrócie strona logowania musi być serwowana tylko przez https://.
« Ostatnia zmiana: Marzec 05, 2010, 00:59:09 wysłane przez bies » Zapisane
Strony: 1 [2]
  Drukuj  
 
Skocz do:  

Hosting: Polska Strefa - Ogłoszenia
Powered by SMF 1.1.7 | SMF © 2006, Simple Machines LLC