Memahami enkripsi dan cadangan MS SQL Server

13

Jadi saya bertanya dalam obrolan tentang seberapa aman file cadangan SQL Server.

Saya diberitahu bahwa jika seorang penyerang memiliki akses ke file .bak tidak terenkripsi, mereka dapat memiliki akses ke data.

Jadi mari kita lihat skenario ini:

OPEN SYMMETRIC KEY MySymetricKey DECRYPTION
BY CERTIFICATE MyCertificate

perhatikan - tidak ada kata sandi di sini.

dan kemudian kami mengenkripsi tabel kami dengan:

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

Sekarang katakanlah seorang hacker mendapatkan bakfile saya . Yang harus dia lakukan untuk melihat data (di komputernya sendiri & sql-server) adalah:

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

Apakah dia masih dapat mengakses data?

Royi Namir
sumber

Jawaban:

9
OPEN SYMMETRIC KEY MySymetricKey DECRYPTION`  
 BY CERTIFICATE MyCertificate`

perhatikan - tidak ada kata sandi di sini.

Ya ada. Anda membuka sertifikat MyCertificate entah bagaimana , bukan? Mungkin ada beberapa kasus, tetapi salah satunya berakhir dengan kata sandi:

  • Anda membuka sertifikat menggunakan kata sandi (jelas, ada kata sandi dalam hal ini)
  • sertifikat dienkripsi dengan kunci master basis data dan Anda membuka kunci induk basis data menggunakan kata sandi DBMK -> itulah kata sandi
  • sertifikat dienkripsi dengan kunci master basis data dan DBMK dienkripsi dengan kunci induk layanan. Kunci master layanan pada gilirannya dibuka menggunakan kunci penyimpanan DPAPI akun layanan, yang dienkripsi dengan kata sandi akun -> dan itu adalah kata sandi

Pada kunci terakhir sepertinya tidak ada kata sandi, tetapi ada satu: kata sandi akun layanan. Cadangan, ketika dipulihkan pada host yang berbeda, itu akan kekurangan enkripsi kunci layanan master kunci database dan ini akan membuat data tidak dapat diakses.

Lihat Enkripsi Hiearchy

Remus Rusanu
sumber
HI, ya ada kata sandi tetapi pada tahap sebelumnya. ketika saya dibuat oleh: CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'DB Master key password!' GO- Saya membuatnya dengan kata sandi. tetapi yang aneh adalah bahwa ketika saya membukanya - saya tidak perlu kata sandi ini selain kode yang telah Anda tempel. Ini adalah hal yang saya tidak mengerti. Jika saya seorang hacker - saya tidak peduli dengan kata sandi yang digunakan untuk membuatnya. yang perlu saya lakukan adalah OPEN SYMMETRIC KEY MySymetricKey DECRYPTION DENGAN SERTIFIKAT Sertifikat Saya dan tidak ada kata sandi di sini. tolong perbaiki saya
Royi Namir
3
@RoyiNamir Lihat poin terakhir Remus. Anda tidak menentukan kata sandi tetapi sertifikat dilindungi, pada akhirnya dalam hal ini oleh kata sandi akun layanan.
Mark Storey-Smith
@Remus dapatkah Anda melihat pertanyaan baru saya (sangat terkait) dba.stackexchange.com/questions/29287/…
Royi Namir