Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Bezpieczeństwo danych w bazie, Implementacja zewnętrznego serwera haseł
pablo2
post 24.08.2017, 10:08:23
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 18.11.2007

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


Jestem na etapie planowania systemu do przechowywania danych wrażliwych. Najważniejszym kryterium jest możliwie wysoki poziom bezpieczeństwa (nawet kosztem szybkości działania). Ze względu, na fakt, ze nie ma możliwości wdrożenia projektu na serwerze, który będę w stanie w pełni skonfigurować, zakładam zwiększone ryzyko penetracji. Dlatego planuje zaszyfrować wszystkie wrażliwe dane w bazie, a klucz przechowywać na zewnętrznym serwerze (uruchomionym tylko w tym celu i nad którym będę miał kontrolę).

Wiem, że warunki są DALEKIE od idealnych, ale jest szereg powodów, które nie pozwalają na implementację lepszego rozwiązania (konieczność przechowywania danych na konkretnym serwerze klienta, etc.), dlatego proszę nie pytajcie czemu, skoro klient chce bezpieczeństwa, nie chce zrobić tego porządnie sad.gif Natomiast, bardzo proszę o Wasze uwagi i sugestie do poniższego planu:

1. Salt generowany indywidualnie dla każdego użytkownika - jak długi i jaką funkcję polecacie?
2. Hasła użytkowników - mocny hash + salt - jaką funkcję hashowania polecacie?
3. Szyfrowanie danych za pomocą enkrypcji dwukierunkowej - jaką metodę polecacie?
4. Klucz do enkrypcji danych z bazy przechowywane na serwerze zewnętrznym - tutaj najbardziej liczę na Wasze uwagi. Myślałem o wywołaniach curl, dostęp ograniczony jedynie do IP serwera głównego. Jakie dodatkowe zabezpieczenia polecacie? Może SRP?
5. Zapytania w PDO (pełna parametryzacja + rygorystyczna walidacja)

Coś jeszcze? A może w ogóle warto rozważyć inny scenariusz?

Ten post edytował pablo2 24.08.2017, 11:41:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Pyton_000
post 24.08.2017, 10:37:55
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


A przepraszam jak masz zamiar pracować na zaszyfrowanych danych? Będziesz budował zapytania z zaszyfrowanymi danymi a po odebraniu odszyfrowywał?
Go to the top of the page
+Quote Post
pablo2
post 24.08.2017, 11:45:00
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 18.11.2007

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


Tak. System ma służyć głównie do zapytań i miałby początkowo pobierać całą tabelę, odkodowywać i parsować dane z odpowiedniego rekordu. Rekordów będzie <500, więc PHP powinno pociągnąć w miarę płynnie.

Ten post edytował pablo2 24.08.2017, 12:04:25
Go to the top of the page
+Quote Post
Pyton_000
post 24.08.2017, 11:55:13
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Równie dobrze możesz zaszyfrować sobie dane w pliku zamiast BD.
Go to the top of the page
+Quote Post
pablo2
post 24.08.2017, 12:03:34
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 18.11.2007

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


Zgadza się. Tyle tylko, że zakodowane będą tylko kolumny varchar/text zawierające dane wrażliwe. Część kolumn (typu integer) nie będzie kodowana, żeby umożliwić ewentualne bardziej specyficzne zapytania, bo pewnie w przyszłości będzie taka potrzeba. W przypadku nieautoryzowanego przejęcia danych z bazy, kolumny tę będą na tyle nieznaczące, żeby nie zdradzić istotniejszych informacji o charakterze poszczególnych rekordów.

Ten post edytował pablo2 24.08.2017, 12:06:34
Go to the top of the page
+Quote Post
Pyton_000
post 24.08.2017, 12:06:23
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Przeglądałeś już to?
https://serverfault.com/questions/538715/wh...-is-it-worth-it
https://stackoverflow.com/questions/9265877...mpanys-mysql-db
Go to the top of the page
+Quote Post
pablo2
post 24.08.2017, 12:08:56
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 18.11.2007

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


Dzięki! A jak z tym kluczem do enkrypcji na zewnętrznym serwerze. Warto implementować takie rozwiązanie, skoro nie mam kontroli nad konfiguracją serwera baz danych ani serwera głównego łączącego się z bazą?

Ten post edytował pablo2 24.08.2017, 12:11:10
Go to the top of the page
+Quote Post
Pyton_000
post 24.08.2017, 13:05:21
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Co do klucza to nie wiem, Nawet jeśli weźmiesz klucz na inny serwer to i tak musisz się jakoś do niego dobrać. Więc wystarczy w samej aplikacji zostawić klucz, i mieć mechanizm do jej szybkiej zmiany.
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: 14.08.2025 - 02:24