Zrozumienie szyfrowania i kopii zapasowych MS SQL Server

13

Zapytałem więc na czacie, jak bezpieczne są pliki kopii zapasowych programu SQL Server.

Powiedziano mi, że jeśli osoba atakująca ma niezaszyfrowany dostęp do pliku .bak, może mieć dostęp do danych.

Spójrzmy więc na ten scenariusz:

OPEN SYMMETRIC KEY MySymetricKey DECRYPTION
BY CERTIFICATE MyCertificate

Uwaga - tutaj nie ma hasła.

a następnie szyfrujemy nasze tabele poprzez:

UPDATE tbl1
 SET namePAss = ENCRYPTBYKEY(KEY_GUID('MySymetricKey'),name)
GO

Powiedzmy teraz, że haker ma mój bakplik. Wszystko, co musi zrobić, aby wyświetlić dane (na swoim komputerze i serwerze SQL) to:

SELECT  
       convert( NVARCHAR(max), decryptbykey(namePAss)) 
FROM tbl1

Czy nadal będzie mógł uzyskać dostęp do danych?

Royi Namir
źródło

Odpowiedzi:

9
OPEN SYMMETRIC KEY MySymetricKey DECRYPTION`  
 BY CERTIFICATE MyCertificate`

Uwaga - tutaj nie ma hasła.

Tak jest. MyCertificate Jakoś otworzyłeś certyfikat , prawda? Może być kilka przypadków, ale każda z nich kończy się hasłem:

  • otworzyłeś certyfikat za pomocą hasła (oczywiście w tym przypadku jest hasło)
  • certyfikat jest zaszyfrowany za pomocą klucza głównego bazy danych, a klucz główny bazy danych został otwarty przy użyciu hasła DBMK -> to hasło
  • certyfikat jest szyfrowany za pomocą klucza głównego bazy danych, a DBMK jest szyfrowany za pomocą klucza głównego usługi. Klucz główny usługi został z kolei otwarty przy użyciu klucza magazynu DPAPI konta usługi, który jest szyfrowany hasłem konta -> i to jest hasło

W ostatnim kluczu wydaje się, że nie ma hasła, ale jest jedno: hasło do konta usługi. Kopia zapasowa po przywróceniu na innym hoście nie będzie miała szyfrowanego klucza głównego usługi głównego klucza bazy danych, co uniemożliwi dostęp do danych.

Zobacz hierarchię szyfrowania

Remus Rusanu
źródło
Cześć, tak, istnieje hasło, ale w poprzednim etapie. kiedy stworzyłem: CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'DB Master key password!' GO- Stworzyłem to z hasłem. ale dziwne jest to, że kiedy go otwieram - nie potrzebuję hasła, to jest kod, który wkleiłeś. Tego nie rozumiem. Jeśli jestem hakerem - nie dbam o hasło użyte do jego utworzenia. wszystko, co muszę zrobić, to OPEN SYMMETRIC KEY MySymetricKey DECRYPTION BYĆ CERTYFIKATEM MójCertyfikat` i tutaj nie ma hasła. proszę mnie poprawić
Royi Namir,
3
@RoyiNamir Zobacz ostatni punkt Remusa. Nie podajesz hasła, ale certyfikat jest chroniony, w tym przypadku ostatecznie przez hasło do konta usługi.
Mark Storey-Smith
@Remus, czy możesz spojrzeć na moje nowe pytanie (bardzo powiązane) dba.stackexchange.com/questions/29287/...
Royi Namir