Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak kontrolować, którzy użytkownicy mogą odszyfrowywać szyfrowanie klucza symetrycznego SQL Server?

Masz dwie alternatywy:

  1. Kontrola kryptograficzna. Dzięki temu tylko użytkownicy znający hasło mogą odszyfrować dane. Minusem jest to, że użytkownik musi wejść hasło deszyfrujące za każdym razem, gdy uzyskują dostęp do danych. Raport musiałby zawierać parametr Hasło, który użytkownik uruchamiający raport wypełnia hasłem dostępu do danych. Aplikacja musi zażądać hasła od użytkownika. Strony internetowe muszą żądać hasła od odwiedzającego. I tak dalej i tak dalej

  2. Kontrola dostępu. Dane są szyfrowane za pomocą klucza, do którego dostęp ma sam SQL Server (ostatecznie łańcuch szyfrowania sięga aż do Service Master Key i jest szyfrowany za pomocą DPAPI). Nie zapewnia to lepszej ochrony niż przyznawanie i odmawianie SELECT:to dostęp kontroli, a nie kontroli kryptograficznej. Taki schemat chroni wyłącznie przed przypadkową utratą nośnika (ktoś znajdzie dysk z Twoją bazą danych, lub Ty zgubisz laptopa z bazą danych). Możesz osiągnąć to samo, używając Przejrzyste szyfrowanie danych lub szyfrowanie na poziomie pliku (BitLocker ).

Typowym scenariuszem szyfrowania danych jest zaszyfrowanie danych kluczem symetrycznym, a następnie zaszyfrowanie klucza symetrycznego kluczem asymetrycznym (zwykle kluczem prywatnym certyfikatu). Klucz asymetryczny jest wtedy z kolei szyfrowany hasłem, które należy podać podczas próby uzyskania dostępu do danych. Głównym powodem tego dwupoziomowego pośrednictwa jest zmiana hasła:w przypadku naruszenia hasła lub klucza prywatnego klucz symetryczny jest ponownie szyfrowany innym kluczem asymetrycznym lub klucz asymetryczny jest ponownie szyfrowany innym hasłem. W ten sposób zmieniło się hasło dostępu bez konieczności ponownego szyfrowania wszystkich danych . Jeśli dostęp byłby przyznany bezpośrednio do klucza symetrycznego, złamanie hasła prawdopodobnie wymagałoby ponownego zaszyfrowania wszystkich danych , możliwe terabajty danych.

Dwa przedstawione przeze mnie scenariusze różnią się między sobą tym, czy klucz asymetryczny jest również zaszyfrowany za pomocą klucza głównego bazy danych, czy nie. Przypadek 1) nie jest, przypadek 2) jest. Wszystko to wyjaśniono w Hierarchii szyfrowania .




  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 wybrać dane z 30 dni?

  2. Wstawianie wyników procedury przechowywanej z połączonego serwera

  3. Jaki jest najdłuższy możliwy numer telefonu na świecie, który powinienem wziąć pod uwagę w SQL varchar (długość) dla telefonu?

  4. Wyrażenie ścieżki XML zawierające znaki specjalne

  5. Problemy z synchronizacją bazy danych SQL Server