Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Bezpieczny skrypt logowania
-Gość-
post
Post #1





Goście







Czy logowanie zaimplementowane w ten sposób:

  1. $login = $_REQUEST[ 'login' ] ;
  2. $password = $_REQUEST[ 'password' ] ;
  3.  
  4. if ( $login == "Admin" && sha1( $password ) == "799aaee3f11318ec2803cdd4d7260076ac6a5f95" ) {
  5. $_SESSION[ 'zalogowano' ] = 'yes';
  6. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  7. }
  8.  
  9. if($_SESSION['ip'] != $_SERVER['REMOTE_ADDR'])
  10. {
  11. die('Proba przejecia sesji udaremniona!');
  12. }


można uznać za bezpieczne?

Czego tu jeszcze brakuje lub co zrobiłem źle?
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


To zalezy co kto rozumie przez bezpieczne.
Na pewno można to zrobić lepiej.

1. Dodać sół.
2. Uzyć bardziej zasobożernego algorytmu hashującego.
3. Korzystanie z natywnycj sesji nie jest nalepszym pomysłem. Istnieje kilka dobrych bibliotek implementujących mechamizm sesji przy użyciu cookie i bazy danych.
Go to the top of the page
+Quote Post
-Gość-
post
Post #3





Goście







1. Co to jest sół? (IMG:style_emoticons/default/smile.gif)
2. Np. jakiego?
3. Jaką bibliotekę mógłbyś polecić?
Go to the top of the page
+Quote Post
Niktoś
post
Post #4





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


1.Unikalny token doklejany do każdego zahashowanego stringa.
2.Np. Sha 512
3.Można zapisywać sesje w jakiejś niedostępnej przestrzeni dyskowej (server mode), lub w bazie danych(sql mode).Implementacje znajdziesz na www.google.pl.

Nie korzystaj z soli wystarczy użyć sha256-jeśli już ma być super bezpieczne to skorzystaj z sha 512.

Ten post edytował Niktoś 1.08.2012, 12:13:56
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #5





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


1. Sól to dodatowy ciąg znaków dopisywany do hasła przed hashowaniem. To utrudnia tworzenie tęczowych tablic i uniemożliwa korzystanie z już istniejących. Innymi słowy odpada jedyna sensowna forma ataku na złamanie hasha. Koniecznie używaj soli.
2. Nie wiem jakiego :-] Spytaj tutaj: Temat: Ciag zaburzajacy w haslach osobny czy wspolny
3. http://codeigniter.com/user_guide/libraries/sessions.html
Go to the top of the page
+Quote Post
Niktoś
post
Post #6





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Tablice tęczowe na 32 bitowy(Sha256) lub 64 bitowy(Sha512) ciąg znaków-no życzę powodzenia.

Sole raczej stosuje się przy prostych algorytmach hashujących jak md5 lub sha1.

Ten post edytował Niktoś 1.08.2012, 12:41:45
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #7





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Cytat(Niktoś @ 1.08.2012, 13:38:51 ) *
Tablice tęczowe na 32 bitowy(Sha256) lub 64 bitowy(Sha512) ciąg znaków-no życzę powodzenia.

Do tęczowej tablicy zapisujesz tylko częśc np. pierwsze 32 bity.
W drugiej rundzie kodujesz każde znalezione powtórzenie aby ustalić które z nich jest prawidłowe... Mozliwe że żadne.
Ja tak robie i jest OK. Myślenie nie boli.

Ten post edytował wNogachSpisz 1.08.2012, 21:09:25
Go to the top of the page
+Quote Post
Niktoś
post
Post #8





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Popatrz jak generowany jest ciąg znaków dla Sha256 i dla 512:
http://pl.wikipedia.org/wiki/SHA-2
W przypadku md5 lub sha1 aby wygenerować taki ciąg znaków musisz użyć soli-więc po co używać ich w przypadku silnych algorytmów-no chyba żeby utrudnić sobie życie.

Ten post edytował Niktoś 1.08.2012, 12:53:43
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #9





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Cytat(Niktoś @ 1.08.2012, 13:53:27 ) *
Popatrz jak generowany jest ciąg znaków dla Sha256 i dla 512:
http://pl.wikipedia.org/wiki/SHA-2
W przypadku md5 lub sha1 aby wygenerować taki ciąg znaków musisz użyć soli-więc po co używać ich w przypadku silnych algorytmów-no chyba żeby utrudnić sobie życie.

Na prawde nie kumam. Nie ma różnicy między md5 a sha512 z perspektywy ataku tęczowych tablic. No chyba że czas generowania. Sól jest w obu przypkadkach dokładnie tak samo niezbędna.
Go to the top of the page
+Quote Post
-Gość-
post
Post #10





Goście







Cytat(wNogachSpisz @ 1.08.2012, 11:26:21 ) *
3. Korzystanie z natywnycj sesji nie jest nalepszym pomysłem.


Dlaczego?
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #11





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


1. Wspólny katalog na pliki tymczasowe w prawie każdym low-end'owym współdzielonym hostingu (w tej sytuacji przejęcie sesji to banał).
2. Bujna historia BUGów natywnego mechanizmu sesji w PHP.
Go to the top of the page
+Quote Post
Niktoś
post
Post #12





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
Na prawde nie kumam. Nie ma różnicy między md5 a sha512 z perspektywy ataku tęczowych tablic. No chyba że czas generowania. Sól jest w obu przypkadkach dokładnie tak samo niezbędna.


Nie twierdzę ,że nie jest możliwe wygenerować tablicę tęczową dla silniejszych algorytmów hashujących, ale potrzebna by była bardzo duża moc obliczeniowa, czyli generowanie tak długiego ciągu za pomocą tablic tęczowych musiałaby być przeprowadzana przez kilka-kilkanaście komputerów.Proces tworzenia takiej tablicy przeprowadzany by musiał być przez grupę hakerów, a i to w przypadku Sha-512 byłoby naprawdę trudne.
Po drugie ktoś by musiał najpierw poznać technikę kryptograficzną którą serwis stosuje, czyli musiałby wpierw wbić się do naszej bazy danych i wykraść hashe dla poszczególnych użytkowników.Jak widzisz nie jest to proste.

Ten post edytował Niktoś 2.08.2012, 09:11:24
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #13





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Cytat(Niktoś @ 2.08.2012, 10:10:39 ) *
Nie twierdzę ,że nie jest możliwe wygenerować tablicę tęczową dla silniejszych algorytmów hashujących, ale potrzebna by była bardzo duża moc obliczeniowa,

O ile większa niż w przypadku md5?

Cytat(Niktoś @ 2.08.2012, 10:10:39 ) *
generowanie tak długiego ciągu za pomocą tablic tęczowych musiałaby być przeprowadzana przez kilka-kilkanaście komputerów.Proces tworzenia takiej tablicy przeprowadzany by musiał być przez grupę hakerów, a i to w przypadku Sha-512 byłoby naprawdę trudne.

Tak samo trudne vel proste jak w przypadku MD5.

Cytat(Niktoś @ 2.08.2012, 10:10:39 ) *
Po drugie ktoś by musiał najpierw poznać technikę kryptograficzną którą serwis stosuje, czyli musiałby wpierw wbić się do naszej bazy danych i wykraść hashe dla poszczególnych użytkowników.

Tak samo jak w przypadku każdego innego algorytmu hashującego

Cytat(Niktoś @ 2.08.2012, 10:10:39 ) *
Jak widzisz nie jest to proste.

Tak samo proste jak w przypadku MD5
Go to the top of the page
+Quote Post
Niktoś
post
Post #14





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


To po co używać mocniejszych algorytmów jak według Ciebie nie ma różnicy między md5 a Sha-512. Ty używaj sobie md5+sol ja sha 512 bez soli-ciekawe co będzie bezpieczniejsze.

Ten post edytował Niktoś 2.08.2012, 13:42:14
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #15





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Wydaje mi się że md5 + sól będzie bezpieczniejsze.
Nawet na pewno o ile sól będzie inna dla każdego usera.

Ten post edytował wNogachSpisz 2.08.2012, 13:51:37
Go to the top of the page
+Quote Post
-Gość-
post
Post #16





Goście







Cytat(wNogachSpisz @ 1.08.2012, 11:26:21 ) *
To zalezy co kto rozumie przez bezpieczne.
Na pewno można to zrobić lepiej.

1. Dodać sół.
2. Uzyć bardziej zasobożernego algorytmu hashującego.
3. Korzystanie z natywnycj sesji nie jest nalepszym pomysłem. Istnieje kilka dobrych bibliotek implementujących mechamizm sesji przy użyciu cookie i bazy danych.


Czy zakładając, że te wszystkie warunki zostaną spełnione, warto jeszcze zabezpieczać skrypt przed Session Fixation i Session Hijacking w sposób jaki opisane tutaj? Czy te może nie trzeba, bo te trzy powyższe sposoby, już same w sobie chronią przed Session Fixation i Session Hijacking?
Go to the top of the page
+Quote Post
!*!
post
Post #17





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Niach... Znowu temat o tym jak "robić bezpieczne logowanie", to już się nudne robi. Użyjcie wyszukiwarki.

Btw. Te przepychanki nie mają sensu. "złamcie" cokolwiek gdzie użyta jest sól, czas start.

Ten post edytował !*! 3.08.2012, 12:43:38
Go to the top of the page
+Quote Post
Niktoś
post
Post #18





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
Te przepychanki nie mają sensu. "złamcie" cokolwiek przy użyciu soli, czas start.

Złamcie Sha256 bez soli (IMG:style_emoticons/default/aarambo.gif) .

PS.Hashowanie haseł i dodawanie soli nie zabezpieczą cię przed xss, session fixation czy atakami typu injection.Nad tym trzeba dodatkowo popracować.

Ten post edytował Niktoś 3.08.2012, 12:46:48
Go to the top of the page
+Quote Post
!*!
post
Post #19





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(Niktoś @ 3.08.2012, 13:44:24 ) *
Złamcie Sha256 bez soli (IMG:style_emoticons/default/aarambo.gif)


Jakby tak zlutować kilka PS3 lub spiąć je na krótko, to może (IMG:style_emoticons/default/biggrin.gif) SHA256 nadal jest "nie złamane"? Bo tak na szybkiego wyczytałem tylko newsy z 2011
Go to the top of the page
+Quote Post
Niktoś
post
Post #20





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
SHA256 nadal jest "nie złamane"? Bo tak na szybkiego wyczytałem tylko newsy z 2011

Wszystko jest do złamania, ale będzie to wymagało więcej wysiłku potencjalnym hakerom(patrz l.mnoga), jeden nie da rady, chyba że będzie miał "superkomputer" w pokoju.

Ten post edytował Niktoś 3.08.2012, 12:56:13
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.12.2025 - 01:46