Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Szyfrowanie danych w bazie
Forum PHP.pl > Forum > PHP
abort
Właśnie zacząłem się zastanawiać nad trzymaniem w bazie pewnej ilości ZASZYFROWANYCH (ale relatywnie krótkich) informacji. Przez stwierdzenie "zaszyfrowana" informacja rozumiem taką informację, którą można będzie odczytać, podając poprawne hasło do szyfrowania. Myślałem także nad taką funkcjonalnością, która pozwoliłaby zarówno na trzymanie osobnych haseł do danych pól/tablic, jak i takich, które byłyby szyfrowane jakimś wspólnym kluczem. I zastanawiam się, jak to wszystko rozegrać. Bo z jednej strony mogę sobie wyobrazić, jak zrobić trzymanie danych zaszyfrowanych, jak je zaszyfrować i odszyfrować, ale z drugiej strony staję przed problemem zmiany hasła do już zaszyfrowanych danych. I normalnie wyglądałoby to w taki sposób, że przy zmianie hasła muszę znaleźć wszystkie dane szyfrowane starym hasłem i "przeszyfrować" je w dwóch krokach: najpierw odszyfrować starym, a potem zaszyfrować nowym hasłem. Jednak z drugiej strony przykładowy TrueCrypt (którego także używam) przy zmianie hasła dla woluminu rzędu gigabajtów jest w stanie uporać się z operacją "w mgnieniu oka" w porównaniu z tym, co opisałem wyżej. Nie wiem jak TrueCrypt to robi, ale na pewno nie "przeszyfrowywuje" wszystkich plików na wolumenie (tak szybkiego dysku na pewno jeszcze nie ma). W związku z tym myślałem, czy nie byłoby sensowne zaadaptowanie tego sposobu do zmiany hasła do zaszyfrowanych danych znajdujących się w bazie...

Bardzo byłbym wdzięczny, gdyby wypowiedziały się w tym temacie osoby bardziej doświadczone.
erix
Pytania najważniejsze:
  1. po co?
  2. co w sytuacji, gdy kiedyś dojdzie do konieczności wyszukiwania po danym polu?
abort
W kwestii "po co": załóżmy, że piszę sobie webowy interface dla trzymania haseł do pewnych routerów, stron, kont bankowych - czegokolwiek w tym stylu.
Jest to zarazem negatywna odpowiedź na pytanie "czy dojdzie do wyszukiwania informacji po tym polu".
erix
To szyfrujesz kluczem użytkownika. Jedno zdobyte hasło nie ujawnia innych.
irmidjusz
Jak to TrueCrypt robi, jest dokładnie opisane w jego manualu smile.gif Z tego co mniej więcej pamiętam, TC używa pary kluczy publiczny-prywatny do szyfrowania, a hasło jest używane jedynie do zaszyfrowania tego klucza, trzymanego w początkowym fragmencie zaszyfrowanego woluminu. Ten klucz szyfrujący się nie nie zmienia, możesz zmienić tylko hasło, którym ten klucz jest zaszyfrowany, dlatego to takie błyskawiczne.
darko
I to można nazwać cyfrowym podpisem, polecam:
cz. 1
klucz publiczny
http://www.data-processing.hk/glossaries/p...-key-encryption
I tutaj
abort
@irmidjusz: dzięki. Do takich samych wniosków doszedłem rozmyślając przed snem. Aczkolwiek prościej zapytać na forum niż przegrzebywać się przez dokumentację - zawsze ktoś coś może dodać coś od siebie, w przypadku dokumentacji to niemożliwe smile.gif

@darko: tak, znam ideę szyfrowania kluczem publicznym i odszyfrowywania kluczem prywatnym; rozwiązanie stosowane od dość dawna w PGP (poprzednika GPG), a obecnie można je spotkać wszędzie - nawet w czymś takim jak ssh smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.