[php] bezpieczeństwo bazy danych

0

Witam dzentelmens i womas itd.
OK. Konkrety teraz.
Chce zrobic zabezpieczenie do bazy dancyh, akurat mam taki pomysl i prosze Was o pomoc , co byscie mogli doradzic, sugestio , jakie sa wady takiego rozwiazania itd.
Mam sobie baze danych, ktora ma pola:

id,imie,telefon,kod

Teraz chce aby zapisane dane byly zakodowane czyms takim:

string: michal
haslo: ala

teraz chce zeby system bral pierwsza litere ze stringu i XOROWAL z pierwsza litera hasla potem druga litera ze stringu i XOR druga litera z hasla jak sie konczy haslo to bierze od poczatku znowu litery hasla az do ostatniej litery stringu.
Nie wiem jak to sie nazywa ale po zakodowaniu ma byc tak:

m i c h a l
a l a a l a

i potem jak to odkodowac? czy brac te litery jako kody asciii, jak sie nazywa takie kodowanie a moze jest gdziess goowy skrypt w PHP ?

Druga sprawa to mam sobie w bazie te smieci a na stronie jak wysweitlam to skrypt odkodowuje i jest cacy. Teraz co jakis czas co dzien o 1 w nocy CRON odpala skrypt ktory:

  1. losuje nowe haslo
  2. starym haslem odkodowuje baze i zakodowuje nowym haslem
  3. nowy zakodowany rekord oznacza na koncu w polu KOD nowy kod
  4. skrypt wypisuje raport ile bylo danych sprzed zakodowania a ile po
  5. jesli klikne OK z raportu stare haslo jest kasowane
  6. teraz w przypadku bazy z tysiacami rekordow np kiedy przy przepisywaniu zabraknie pradu moze nie zmienic wszytskich rekordow
  7. sprawdzam na koncu czy w polu KOD jest nowy kod a jesli jest stary to zmieniamy wszystkie rekordy gdzie stary KOD wyynosil jakas tam wartosc.

Czy to dobry pomysl? czy ma sens czo proponujecie jeszcze w kwestii zabezpieczenia. prosze o porady.

0

Najpierw w kwestii braku pradu - uzyj transakcji w bazie. Z tego co wiem najnowszy MySQL (bo pewnie tego uzywasz) juz je obsluguje. W przypadku braku pradu transakcja, ktora nie zakonczyla sie sukcesem jest wycofywana.

Odkodowanie czegos zakodowanego XORem robi sie XORujac zakodowany ciag z haslem, czyli :
zakodowane = tekst XOR haslo
tekst = zakodowane XOR haslo

Nie rozumiem tylko po co chcesz kodowac dane w bazie. Do niej dostep ma przeciez malo kto. Chyba, ze i tym osobom nie ufasz :P, ale wtedy XOR jest prostym do odszyfrowania szyfrowaniem.

pozdrawiam
johny

0

Tak chodzi o to ze moze i osoba byc zaufana ale do niej do serwa moze sie ktos wkrasc itd generalnie zeby dostac jakies zezwolenie musimy udokumentowac jakies maxymalne zabezpieczenie nie 100% bo takich nie ma ale lepiej wyglada takie cos niz "gole" dane. kazdy algorytm dukeirunkowy jest chyba w jakims stopniu do odszyfrowania.

co do transakji atomowych to faktycznie przed commitem moze byc wycofane musze to sprawdzic ? ale ogolnie czy to dobry pomysl jest ?

0

A gdzie trzymasz to nowe haslo? Bo z tego co zrozumialem to w jakism innym polu? Wtedy kazdy, kto ma dostep do bazy moze je odszyfrowac, oczywiscie jak sie domysli co i z czym i jak zrobic. Jesli chcesz, zeby dane wygladaly po prostu dziwnie, to tak pewnie bedzie.
Jesli z kolei skrypt odkodowujacy i baza to ten sam serwer, to... nie bardzo.

Chwilowo nie mam pomyslu jak to inaczej zrobic, jak na cos wpadne, to sie odezwe.

pozdrawiam
johny

0

IMHO jeśli ktoś miałby mieć dostęp do bazy i do skryptu, to NIE DA się tego tak zaszyfrować, żeby skrypt sam (bez podania klucza przez użytkownika w momencie próby odczytania) mógł odszyfrować dane, a żeby ktoś z dostępem do serwera nie mógł dostać się do danych.

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