Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] Przetrzymywanie haseł w bazie., co nowego? :)
luis2luis
post 10.08.2019, 14:28:21
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 25.11.2015

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


Witam.

Potrzebuje przetrzymywać w bazie danych hasła, które muszę odczytywać w dowolnej chwili. Są to hasła do zewnętrznych serwisów, poczty i muszę je dekodować w dowolnej chwili.

Jakie są nowe mechanizmy kodowania tak, żeby w przypadku wypłynięcia bazy lub włamania do mysql byle dzieciak nie miał podanych gotowych haseł.


W google znalazłem bardzo dużo tutoriali, nie wiem który najlepszy.

Czy jakiś doświadczony programista może podpowiedzieć jak robi takie rzeczy u siebie? Docelowo skrypt działać będzie na php 7.2

Ten post edytował luis2luis 10.08.2019, 14:37:52
Go to the top of the page
+Quote Post
dublinka
post 11.08.2019, 07:27:15
Post #2





Grupa: Zarejestrowani
Postów: 200
Pomógł: 24
Dołączył: 22.02.2008

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


Najbezpieczniej jest chaszowac za pomoca https://www.php.net/manual/en/function.password-hash.php
Go to the top of the page
+Quote Post
Tomplus
post 11.08.2019, 08:29:44
Post #3





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 170
Dołączył: 20.03.2005
Skąd: Będzin

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


@Dublinka,

hashować, a nie chashować.


Dwa... wyraźnie powiedział że potrzebuje mieć możliwość haseł surowych, bo takie hasła potrzebne są do połączenia z innymi serwisami (jeżeli nie mają odpowiedniego API), a password-hash to kodowanie jednostronne.

Ja polecę:
https://stackoverflow.com/questions/1660070...pt-a-php-string
Go to the top of the page
+Quote Post
dublinka
post 11.08.2019, 08:43:59
Post #4





Grupa: Zarejestrowani
Postów: 200
Pomógł: 24
Dołączył: 22.02.2008

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


Cytat(Tomplus @ 11.08.2019, 08:29:44 ) *
@Dublinka,

hashować, a nie chashować.

W tym momencie nie jest to tak istotne.
Cytat(Tomplus @ 11.08.2019, 08:29:44 ) *
Dwa... wyraźnie powiedział.

Raczej napisal.
A ja nie polecam.
Hasla powinno sie CHaszowac.
Go to the top of the page
+Quote Post
viking
post 11.08.2019, 09:24:06
Post #5





Grupa: Zarejestrowani
Postów: 5 279
Pomógł: 889
Dołączył: 30.08.2006

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


Najgorsze co możesz zrobić to zabierać się za to samemu.
https://github.com/phpseclib/phpseclib


--------------------
Go to the top of the page
+Quote Post
batman
post 11.08.2019, 11:00:20
Post #6





Grupa: Moderatorzy
Postów: 2 904
Pomógł: 266
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(viking @ 11.08.2019, 09:24:06 ) *
Najgorsze co możesz zrobić to zabierać się za to samemu.


Zgadzam się z przedmówcą, przy czym ja bym polecił https://www.vaultproject.io


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
--------------------
blog
Kuchnia Kopytka
www.wykangurzeni.pl
Go to the top of the page
+Quote Post
Tomplus
post 11.08.2019, 11:10:01
Post #7





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 170
Dołączył: 20.03.2005
Skąd: Będzin

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


@Dublinka
Ale hashowanie haseł jest jednostronne.
Go to the top of the page
+Quote Post
dublinka
post 11.08.2019, 13:18:48
Post #8





Grupa: Zarejestrowani
Postów: 200
Pomógł: 24
Dołączył: 22.02.2008

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


Cytat(Tomplus @ 11.08.2019, 11:10:01 ) *
@Dublinka
Ale hashowanie haseł jest jednostronne.

Doskonale o tym wiem.
Wiem tez co napisal autor ale dalej twierdze (zreszta osoby w tym Twoim poscie rowniez) ze kodowanie i odkodowywanie danych zwlaszcza hasel jest zlym rozwiazaniem.
Go to the top of the page
+Quote Post
Tomplus
post 12.08.2019, 04:23:28
Post #9





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 170
Dołączył: 20.03.2005
Skąd: Będzin

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


Mnie zastanawia co innego. Jakie a raczej do czego hasła chce szyfrować?
Trzymanie haseł do poczty czy jakiś serwisów gdzie można prowadzić zmiany to zły pomysł.

Ja miałem przypadek gdzie serwis oferował specjalne hasło do logowania w trybie TYLKO DO ODCZYTU. Brak dostępu do danych osobowych, jedynie dawał wgląd do statystyk konta.
W takim przypadku proste szyfrowanie może wystarczyć.
Go to the top of the page
+Quote Post
luis2luis
post 13.08.2019, 09:34:56
Post #10





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 25.11.2015

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


Cytat(dublinka @ 11.08.2019, 14:18:48 ) *
Doskonale o tym wiem.
Wiem tez co napisal autor ale dalej twierdze (zreszta osoby w tym Twoim poscie rowniez) ze kodowanie i odkodowywanie danych zwlaszcza hasel jest zlym rozwiazaniem.



To jak się połączysz z pocztą IMAP z takim hashowanym hasłem?
Jak się połaczysz z Allegro, albo TPAY.com?

Niestety hasła muszą być surowe, nie chce jedynie, żeby były podane na tacy każdemu dzieciakowi który przez przypadek wpadnie w posiadanie haseł.

P.S. Poprzeglądam Wasze propozycje, jest jednam mętlik, dosyć dużo propozycji.
Go to the top of the page
+Quote Post
Tomplus
post 13.08.2019, 10:23:11
Post #11





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 170
Dołączył: 20.03.2005
Skąd: Będzin

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


Ja np. trzymam hasła do usług poczta, baza danych czy klucze dostępu w folderze po za główny katalog strony. Tak aby np. z poziomu FTP nie można było skopiować plików ustawień. Tylko główny admin z uprawnieniami roota ma dostęp.
Go to the top of the page
+Quote Post
kapslokk
post 13.08.2019, 10:47:52
Post #12





Grupa: Zarejestrowani
Postów: 949
Pomógł: 282
Dołączył: 19.06.2015
Skąd: Warszawa

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


Cytat(dublinka @ 11.08.2019, 14:18:48 ) *
Doskonale o tym wiem.
Wiem tez co napisal autor ale dalej twierdze (zreszta osoby w tym Twoim poscie rowniez) ze kodowanie i odkodowywanie danych zwlaszcza hasel jest zlym rozwiazaniem.

To jest dość zabawne, jak upierasz się przy swoim zdaniu, pomimo tego, że @Tomplus, cały czas podaje Ci argumenty, które obalają Twoją teorię. Jak chcesz wykonać request do np. zewnętrznego API, które wymaga jakiegoś hasła/klucza, jeżeli zahaszujesz sobie ten klucz password_hash'em? W takich przypadkach musisz mieć możliwość odszyfrowania hasła.
Go to the top of the page
+Quote Post
dublinka
post 13.08.2019, 18:43:38
Post #13





Grupa: Zarejestrowani
Postów: 200
Pomógł: 24
Dołączył: 22.02.2008

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


Cytat(kapslokk @ 13.08.2019, 10:47:52 ) *
To jest dość zabawne, jak upierasz się przy swoim zdaniu, pomimo tego, że @Tomplus, cały czas podaje Ci argumenty, które obalają Twoją teorię.

w takim raie idz na ten temat i obalaj teroie kazdego smile.gif
Go to the top of the page
+Quote Post
batman
post 14.08.2019, 23:35:48
Post #14





Grupa: Moderatorzy
Postów: 2 904
Pomógł: 266
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
P.S. Poprzeglądam Wasze propozycje, jest jednam mętlik, dosyć dużo propozycji.

Zamiast wymyślać koło na nowo, użyj gotowego rozwiązania, które jest przetestowane i bezpieczne - https://www.vaultproject.io/ Dane dostępowe do Vault (nazwa użytkownika, hasło, token, itp. - ich ilość oraz rodzaj zależy od backendu użytego to logowania) trzymasz jako zmienne środowiskowe. W ten sposób żadne hasła nie są przechowywane w bazie i nawet jeśli ktoś dostanie się do bazy, nie wykradnie haseł do zewnętrznych serwisów.

Jeśli nie chcesz korzystać z Vault masz kilka innych możliwości - AWS Secrets Manager, Ansible Vault, Docker secrets (tylko w trybie swarm), Kubernetes secrets. Podejrzewam, że dałoby się znaleźć jeszcze kilka godnych zaufania usług.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
--------------------
blog
Kuchnia Kopytka
www.wykangurzeni.pl
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 20.08.2019 - 13:25