Mereka mengatakan tidak ada yang namanya "pertanyaan bodoh", jadi begini:
Saya mengerti bahwa SQL Server Transparent Data Encryption (TDE) mengenkripsi data saat istirahat, sehingga file database Anda (.mdf) dan file cadangan Anda (.bak) dienkripsi jika seseorang membobol penyimpanan Anda dan mencuri file-file itu. Saya juga mengerti bahwa data didekripsi ketika dibaca dari disk sehingga tidak dienkripsi dalam memori (bergerak). Oleh karena itu data yang diminta oleh pengguna yang menjalankan kueri jarak jauh (pilih * dari SensitiveData) tidak akan dienkripsi saat bepergian melalui jaringan dan karenanya rentan disadap.
Jadi, dengan anggapan semua hal di atas sudah benar, berikut adalah pertanyaan bodoh saya: Jika instance SQL Server saya ada di komputer A dan cadangan basis data TDE saya dihapus ke penyimpanan di komputer jarak jauh B, apakah data operasi pencadangan dienkripsi saat bepergian dari komputer A akan ditulis ke disk di komputer B? Saya menganggap itu pasti (karena saya kira operasi enkripsi terjadi pada komputer A pertama), tetapi saya tidak dapat menemukan konfirmasi ini di salah satu dokumentasi Microsoft atau di blog. Dan juga, selama operasi pemulihan - apakah ada orang yang mencegat data yang ditransfer dari disk di komputer B untuk memulihkan database di komputer A - akankah mereka menemukan bahwa data yang bergerak dienkripsi?
sumber
Jawaban:
Ya, cadangan dienkripsi saat bergerak melalui jaringan karena data TDE dienkripsi pada disk, dan operasi pencadangan tidak pernah mendekripsi .
Mitos Cadangan Paul Randal :
Jika halaman dimuat ke buffer pool (ruang memori "normal" yang digunakan SQL untuk me-cache tabel database dan data indeks), mereka harus didekripsi. Tetapi cadangan tidak melakukan itu, mereka hanya membuang "luasan" terenkripsi mentah (potongan 8-halaman yang berdekatan) ke tujuan cadangan Anda.
Saya dapat memperoleh konfirmasi dari Paul Randal bahwa komentarnya di atas masih relevan untuk TDE :
Dengan kata lain, jika Anda telah mengaktifkan CHECKSUM pada database, itu ditambahkan (selama operasi penulisan SQL normal) setelah enkripsi terjadi. Ini berarti bahwa proses pencadangan dapat membaca tingkat mentah (terenkripsi), memvalidasi checksum, dan menulis cadangan, semua tanpa mendekripsi data.
Ini hampir pasti alasannya (sebelum SQL 2016), mengaktifkan kompresi cadangan pada basis data dengan TDE tidak melakukan apa-apa, karena data terenkripsi tidak terlalu kompresibel :
Untuk operasi pemulihan, prinsip yang sama berlaku. Cadangan terenkripsi tetap terenkripsi di seluruh jaringan, dan ditulis ke disk server yang memulihkan dalam keadaan terenkripsi. Mereka hanya didekripsi ketika database dimuat dalam memori setelah pemulihan selesai.
sumber
Ya, itu didekripsi ketika memasuki kolam penyangga dan dienkripsi ketika ia pergi. Dalam situasi ini karena kita menulis ke disk, ia dienkripsi terlebih dahulu dan kemudian ditulis. Karena tulisan akan melintasi jaringan, data itu sendiri dienkripsi tetapi bagian lain dari lalu lintas jaringan tidak.
Ya, karena sama seperti di atas berlaku tetapi dalam urutan terbalik. Data dienkripsi pada disk, sedang dibaca dan ditransfer dalam keadaan terenkripsi. Kemudian ia sampai ke instance dan dimuat ke dalam buffer pool di mana ia tidak terenkripsi sebagai langkah di jalan.
sumber