Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Bezpieczeństwo haseł przy użyciu soli
nexis
post
Post #1





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


Zwykle, dla bezpieczeństwa, trzymamy w bazie danych skrót hasła, utworzony za pomocą md5() bądź sha1(). Z myślą o tęczowych tablicach dopisujemy zwykle dodatkowo tzw. sól, która jest trzymana poza bazą danych, zwykle na serwerze.

Chciałbym jednak zwiększyć bezpieczeństwo również po stronie użytkownika i zastosować mechanizm znany z banków internetowych, czyli odpytywanie użytkownika o wybrane znaki hasła. Aby zastosować taki mechanizm jestem jednak zmuszony zapamiętać każdy znak hasła osobno. Powiedzmy, że w tym celu narzucę maksymalną długość hasła na 16 znaków i stworzę w tabeli bazy danych 16 dodatkowych pól (po 1 dla każdego znaku). Jak ma się jednak w/w sposób do tej sytuacji? Sam skrót to praktycznie żadne zabezpieczenie. Zastosowanie soli już bardziej, ale jest to wciąż bardzo słaby mechanizm. Co zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Cytat
Podstaw sobie dowolne hasło pod podany przeze mnie, w poprzednim poście, wzór i znałbyś odpowiedź na swoje pytanie. Zakładam, że każdy użytkownik ma unikalną sól dla każdego pojedynczego znaku hasła.
No właśnie problem w tym, że tego się nie da z Twoich wzorów określić jednoznacznie bo nie określasz nigdzie czy owa dodatkowa sól jest uzależniona od pozycji:

sha1(6R$fr2Ga + CRu6$wRu + a)
sha1(6R$fr2Ga + cuthA3=R + a)
sha1(6R$fr2Ga + th$PhE3u + a)
sha1(6R$fr2Ga + +RUt*uF2 + a)
sha1(6R$fr2Ga + =r9cH6!u + a)
sha1(6R$fr2Ga + F7ecR-ph + a)
sha1(6R$fr2Ga + _EKa73@w + a)
sha1(6R$fr2Ga + p@$VE96u + a)

czy od znaku:
sha1(6R$fr2Ga + CRu6$wRu + a)
sha1(6R$fr2Ga + CRu6$wRu + a)
sha1(6R$fr2Ga + CRu6$wRu + a)
sha1(6R$fr2Ga + CRu6$wRu + a)
sha1(6R$fr2Ga + CRu6$wRu + a)
sha1(6R$fr2Ga + CRu6$wRu + a)
sha1(6R$fr2Ga + CRu6$wRu + a)
sha1(6R$fr2Ga + CRu6$wRu + a)

Teraz przeczytaj jeszcze raz zdanie swoje jakie zacytowałem powyżej i powiedz czy osoba logicznie myśląca uzna wariant 1 czy 2 za prawidłowy. Bo myślę, że oprócz mnie wiele osób pomyśli, iż jednak piszesz cały czas o wariancie 2. Ciągle bowiem przewija się fragment o unikalności dla każdego pojedynczego znaku hasła, a dla wielu może to oznaczać równoważność między dowolnym znakiem a odpowiadającym mu skrótem (tak jak to widać w wariancie 2 powyżej). Może po prostu źle to odbieram i nie myślę już przy weekendzie. Myślę, że powinniśmy się przespać chyba już dziś bo pewnie nie kontaktujemy oboje :D Ale myślę, że rozumiesz teraz na przykladzie o co mi chodzi i od następnego posta będziemy bardziej precyzyjni w doborze słów. Myślę, że zwrot: "każdy użytkownik ma unikalną sól dla każdej pozycji w swoim haśle jest łatwiejsze w odbiorze.
A jeśli już przy tym jesteśmy to może powinniśmy się zastanowić, czy te sole miały by być generowane losowo co jakiś czas na podstawie innego pola bazy, czy może generowane co jakiś czas i na sztywno wrzucane do bazy, czy może wyrzucić je poza katalog główny serwera (imho chyba najbezpieczniejsza metoda), czy też może jakiś plik na serwerze, którego nie można by było podejrzeć z poziomu przeglądarki ( na przykład próba wejścia wywoływała by jego interpretację).

Ten post edytował thek 5.09.2009, 00:09:07
Go to the top of the page
+Quote Post
nexis
post
Post #3





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


Cytat(thek @ 5.09.2009, 01:05:41 ) *
Teraz przeczytaj jeszcze raz zdanie swoje jakie zacytowałem powyżej i powiedz czy osoba logicznie myśląca uzna wariant 1 czy 2 za prawidłowy.

Chodzi oczywiście cały czas o wariant 1.

Cytat(thek @ 5.09.2009, 01:05:41 ) *
czy te sole miały by być generowane losowo co jakiś czas na podstawie innego pola bazy, czy może generowane co jakiś czas i na sztywno wrzucane do bazy

Pamiętaj, że hasło znasz tylko w momencie, kiedy użytkownik je poda i porównasz jego prawidłowość ze skrótami. Wtedy ewentualnie masz możliwość zmiany soli i wpisanie nowego skrótu. Być może jest to słuszna uwaga odnośnie podwyższenia bezpieczeństwa. Proponuję zatem, żeby ktoś to potwierdził i wspólnie zaakceptowane rozwiązania wrzucę do pierwszego postu dla przyszłych czytelników, którym prawdopodobnie nie będzie się chciało czytać całych naszych dialogów.

Cytat(thek @ 5.09.2009, 01:05:41 ) *
wrzucane do bazy, czy może wyrzucić je poza katalog główny serwera (imho chyba najbezpieczniejsza metoda), czy też może jakiś plik na serwerze, którego nie można by było podejrzeć z poziomu przeglądarki ( na przykład próba wejścia wywoływała by jego interpretację).

Plik oczywiście musi leżeć poza strukturą dostępną z poziomu przeglądarki, ale to chyba kwestia oczywista. Podobne założenie trzeba oczywiście też przyjąć dla soli głównej i całego pliku konfiguracyjnego. Zdaje się, że niezależna baza danych jest w tym przypadku lepszym rozwiązaniem.
Go to the top of the page
+Quote Post

Posty w temacie
- nexis   Bezpieczeństwo haseł przy użyciu soli   3.09.2009, 15:36:42
- - thek   Osobiście nigdy tak nie podchodziłem do sprawy bez...   3.09.2009, 16:16:21
- - sztosz   Akurat dwukierunkowość szyfrowania to nie jest dob...   3.09.2009, 19:17:52
- - blooregard   CytatAkurat dwukierunkowość szyfrowania to nie jes...   3.09.2009, 19:41:13
|- - phpion   Cytat(blooregard @ 3.09.2009, 20:41:1...   3.09.2009, 20:43:13
- - sztosz   Masz hasło x znaków, haszujesz każdy znak, hasz m...   3.09.2009, 20:48:40
- - nexis   Póki co przyszło mi na myśl stosowanie bardzo złoż...   3.09.2009, 20:57:38
- - blooregard   CytatRównie dobrze można trzymać hashe poszczególn...   3.09.2009, 21:04:11
|- - nexis   Cytat(blooregard @ 3.09.2009, 22:04:1...   3.09.2009, 21:08:24
- - blooregard   CytatChodzi o to, żeby sposób był bezpieczny nawet...   3.09.2009, 21:22:00
|- - nexis   Cytat(blooregard @ 3.09.2009, 22:22:0...   3.09.2009, 21:26:31
- - blooregard   CytatEfekt ma być taki, że po przejęciu kontroli n...   3.09.2009, 21:32:38
|- - nexis   Cytat(blooregard @ 3.09.2009, 22:32:3...   3.09.2009, 21:42:52
- - blooregard   CytatWidzi ktoś wady takiego rozwiązania? No nie, ...   3.09.2009, 21:57:03
- - thek   Zastanawiałem się Nexis nad algorytmem, który dawa...   4.09.2009, 09:34:43
|- - nexis   Cytat(thek @ 4.09.2009, 10:34:43 ) Dl...   4.09.2009, 10:40:56
- - thek   Może i tak, ale indywidualna sól dla każdego użytk...   4.09.2009, 12:22:43
- - nexis   Wciąż nie widzę w czym zaprezentowana przez ciebie...   4.09.2009, 12:40:32
- - thek   To przemyśl co da hasło abababab skoro dla każdej ...   4.09.2009, 13:21:41
|- - nexis   Cytat(thek @ 4.09.2009, 14:21:41 ) Tw...   4.09.2009, 21:31:05
- - blooregard   CytatBo jeśli dobrze zrozumiałem Twoje rozumowanie...   4.09.2009, 13:34:11
- - thek   Po przeczytaniu posta odnosi się wrażenie, że nie ...   4.09.2009, 14:02:30
- - thek   Ok... Pomińmy więc w dalszych rozważaniach sól sys...   4.09.2009, 22:07:25
|- - nexis   Cytat(thek @ 4.09.2009, 23:07:25 ) st...   4.09.2009, 22:38:16
- - thek   CytatPodstaw sobie dowolne hasło pod podany przeze...   5.09.2009, 00:05:41
|- - nexis   Cytat(thek @ 5.09.2009, 01:05:41 ) Te...   5.09.2009, 05:51:09
- - thek   Wczoraj w chwili przerwy przejrzałem nasze wypowie...   6.09.2009, 09:45:29
|- - nexis   Cytat(thek @ 6.09.2009, 10:45:29 ) Wc...   7.09.2009, 23:14:48
- - thek   Wersja skrócona: Problem: Algorytm się minimalnie ...   8.09.2009, 21:59:11
- - nexis   Ale po co miałbym kiedykolwiek zmieniać sól dla uż...   8.09.2009, 22:48:50
- - thek   Chodzi mi o sytuacje gdy, przykładowo, zauważyłeś ...   9.09.2009, 09:23:47
- - nexis   Algorytm opracowuje się raz i dobrze. Cała jego id...   9.09.2009, 09:26:42
- - thek   Wiem, że algorytm powinien być napisany raz a dobr...   9.09.2009, 13:04:35


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 16:59