PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Przechowywanie zaszyfrowanych danych w Postgres

najlepsze sposobem jest wykonanie krypto na kliencie lub serwerze aplikacji, dzięki czemu baza danych nie ma pojęcia, jakie są klucze i nie może odszyfrować danych. Jeśli klient/serwer aplikacji są na innym hoście, tym lepiej.

Jeśli Twoja baza danych szyfruje i odszyfrowuje dane za Ciebie, jest podatna na kradzież kluczy wraz z bazą danych.

Jeśli używasz funkcji kryptograficznych pgcrypto w bazie danych, możesz poprosić aplikację o przesłanie klucza wraz z danymi, co jest przynajmniej w pewnym stopniu pomocne. Nadal jednak istnieje ryzyko ujawnienia kluczy w dziennikach, jeśli pomocny administrator systemu włączy agresywne rejestrowanie instrukcji lub automatyczne zrzucanie planu, a na koniec, jeśli klucze trafiają do maszyny bazodanowej, są bardziej narażone niż gdyby nie . Atakujący, który przejmuje kontrolę nad maszyną bazy danych, może również zmienić ustawienia dziennika, zastąpić pliki binarne postgresql lub sniffować ruch, aby w ten sposób przechwycić klucze i dane.

Jeśli serwer aplikacji i baza danych znajdują się na tej samej maszynie i są zarządzane przez te same role, nie ma sensu martwić się ich izolowaniem i rozsądne może być użycie pgcrypto.

Tak czy inaczej, pamiętaj o soli!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zadeklarować zmienną w PostgreSQL

  2. Dynamiczne przekazywanie nazw kolumn dla zmiennej rekordu w PostgreSQL

  3. Kolejka zadań jako tabela SQL z wieloma konsumentami (PostgreSQL)

  4. Te cholerne duże obiekty

  5. Jak zainstalować PostgreSQL na macOS