[PHP/MySQL] Szyfrowanie danych w bazie

0

Witam, tworzę pewną stronkę w PHP, na której będzie można zapisywać dużo poufnych informacji. I teraz chcę chciałbym to zrobić tak by tylko zalogowany użytkownik mógł dostać się do danych informacji. Tzn, żeby odpalenie np phpMyAdmina przez administratora pokazało tylko zaszyfrowane krzaczki i żeby nie mógł tego odkodować.

Myślałem o tym by tylko MD5 hasła logowania użytkownika było trzymane w bazie. Użytkownikowi po poprawnym zalogowaniu zapisuje się w sesji jawne, odszyfrowane hasło logowania. I teraz wg tego jawnego hasła byłyby kodowane wszelkie informacje na stronie które użytkownik poda. Czy ten sposób jest skuteczny? Jakiej funkcji użyć by zakodować tekst według klucza?

0
  1. Trochę fakt istnienia jawnego hasła wszystko kiepści. Jak coś jest w sesji przechowywane, to administrator też się dostanie.
  2. Taka metoda szyfrowania spowoduje, że gdy zapomnisz hasła wszystkie Twoje dane są tracone.
  3. Administrator jak chce, to i tak się do tego wszystkiego dobierze. Wystarczy, że włączy logowanie wszystkich danych wysyłanych przez serwer i już. Wszystko opiera się na zaufaniu do administratora, inaczej chyba nie da rady.

//Hmm... Jeśli administrator ma dostęp tylko do mysql'a, to faktycznie, może da się to przed nim zabezpieczyć. Napisałeś, że nie ma możliwości EDYTOWANIA plików PHP. Czy to oznacza, że może je podejrzeć? Jeśli nie, to wystarczy jakiś stały, ale wystarczająco długi i skomplikowany klucz zapisać w pliku PHP i zawsze nim odkodowywać. Wtedy dwie rzeczy od razu się upraszcza - przypomnienie hasła (wystarczy wygenerować nowe) i edycję hasła (nie trzeba wszystkiego ponownie kodować, tyle że innym hasłem). Jeśli może zaglądać do plików PHP, to może takie zabezpieczenie jakie zasugerowałeś zadziała.
Czy jest lepsza metoda? Być może, ale w chwili obecnej mi nie przychodzi do głowy. Nie przechowuję danych aż tak tajnych przez poufne, by musieć zabezpieczać się przed administratorem serwera, więc nie jestem specjalistą w tej dziedzinie.

0
Adam.Pilorz napisał(a)
  1. Taka metoda szyfrowania spowoduje, że gdy zapomnisz hasła wszystkie Twoje dane są tracone.

Hmm zdaje sie ze znalazlem sposob na ominiecie tego pytając jeszcze o pytanie i odpowiedź (służącą do ewentualnego przypomnienia hasła). Później to już jest nakomplikowane ale dałoby się odzyskać hasło.

Jedna z wad rozwiązania z szyfrowaniem danych: W celu zmiany hasła trzeba będzie edytować wszystkie wiersze w MySQL danego użytkownika po kolei.

  1. Administrator jak chce, to i tak się do tego wszystkiego dobierze. Wystarczy, że włączy logowanie wszystkich danych wysyłanych przez serwer i już. Wszystko opiera się na zaufaniu do administratora, inaczej chyba nie da rady.</quote>

Nie sprecyzowałem do końca: Administrator ma dostęp tylko do mysql-a. Nie ma możliwości edycji plików php i oglądania logów serwera. Tak więc chodzi mi mniej więcej o to by mając "zrzut" całej bazy nie móc odkodować zawartości.

Nie wiem tylko czy takie rozwiązania stosuje się w praktyce... Można to zrobić w jakiś lepszy sposób?

1 użytkowników online, w tym zalogowanych: 0, gości: 1