Dalam SQL Server 2016, apa perbedaan antara Selalu Enkripsi dan Enkripsi Data Transparan?

40

Saat saya menulis ini saya masih menunggu rilis resmi SQL Server 2016 sehingga kita dapat menjelajahi kegunaan fitur "Selalu Terenkripsi" nya.

Saya hanya ingin tahu perbedaan spesifik apa yang akan terjadi antara Selalu Dienkripsi & Enkripsi Data Transparan yang saat ini tersedia di SQL Server 2016 sehingga kami dapat membuat keputusan yang tepat untuk proyek masa depan.

RoastBeast
sumber
Dengan Selalu Terenkripsi, driver klien mengenkripsi / mendekripsi data sebelum hits SQL Server sementara TDE berjalan pada SQL Server itu sendiri. IMHO TDE sebagian besar tidak berguna dalam skenario cloud / secure datacenter (gulir ke "TDE tidak terlalu berguna di cloud"). Jika Anda tertarik dengan keamanan data tingkat lanjut, periksa juga Crypteron . Pengungkapan penuh: Saya bekerja di sana
DeepSpace101

Jawaban:

48

Kelemahan dari Enkripsi Data Transparan dibandingkan dengan Selalu Terenkripsi:

  • Hanya melindungi data saat istirahat - cadangan dan file data "aman" tetapi data bergerak atau dalam memori rentan
  • Hanya seluruh database
  • Semua data dienkripsi dengan cara yang sama
  • Kompresi cadangan dapat memakan waktu lebih lama dan menjadi kontra-produktif

    • Sebenarnya, ada beberapa perbaikan di sini di SQL Server 2016 yang menentang apa yang biasanya kita ketahui tentang mencoba mengompresi data terenkripsi - ini jauh lebih baik daripada versi sebelumnya, tetapi mungkin masih lebih buruk daripada hanya mengenkripsi beberapa kolom (belum teruji)
  • tempdb juga mewarisi enkripsi - tetap bahkan setelah menonaktifkan TDE
  • Membutuhkan Edisi Perusahaan
  • Data selalu dapat diakses oleh sysadmin

Selalu Terenkripsi menangani semua masalah ini sebagian atau seluruhnya:

  • Data dilindungi saat istirahat, bergerak, dan dalam memori - kontrol lebih besar atas sertifikat, kunci, dan siapa yang dapat mendekripsi data
  • Bisa jadi hanya satu kolom
  • Jenis enkripsi adalah pilihan:
    • Dapat menggunakan enkripsi deterministik untuk mendukung indeks dan pencarian titik (katakanlah, SSN)
    • Dapat menggunakan enkripsi acak untuk perlindungan yang lebih tinggi (misalnya, nomor kartu kredit)
  • Karena ini bukan basis data, kompresi cadangan tidak selalu terpengaruh - tentu saja semakin banyak kolom yang Anda enkripsi, semakin buruk nasib Anda
  • tempdb tidak terlibat
  • Pada SQL Server 2016 Paket Layanan 1, Selalu Terenkripsi sekarang berfungsi di semua edisi
  • Data dapat dilindungi dari sysadmin (tetapi bukan sysadmin DAN admin keamanan / sertifikat / kunci Windows, dengan kata lain Anda dapat memisahkan tanggung jawab selama kedua kelompok tidak berkolusi)

Ada batasan, dan itu adalah bahwa tidak semua driver dan aplikasi dapat menangani data yang dienkripsi secara langsung, sehingga dalam beberapa kasus ini akan memerlukan pembaruan / perubahan driver dan / atau modifikasi kode.

Aaron Bertrand
sumber
Bisakah Anda jelaskan kepada saya, bagaimana Selalu Mengenkripsi data dalam memori? Saya sudah mencoba untuk menemukan informasi ini di MSDN, tetapi hanya mengatakan tentang data saat istirahat dan enkripsi data dalam gerakan. Terima kasih :)
Victoria Malaya
1
@Victoria data dienkripsi oleh penyedia sebelum SQL Server melihatnya. Jadi SQL Server menerima nilai terenkripsi, menempatkan nilai terenkripsi pada disk, dan memuat nilai terenkripsi ke dalam memori ketika halaman itu ada di memori. Enkripsi tidak terjadi dalam memori seperti yang Anda pikirkan, dan dekripsi hanya terjadi ketika klien memiliki sertifikat dengan kemampuan untuk mendekripsi ...
Aaron Bertrand
2
Sejauh yang saya tahu, salah satu perbedaan terbesar adalah ketika menanyakan data. Dengan TDE Anda dapat menjalankan kueri apa pun seperti biasanya, dengan AE Anda sangat dibatasi dalam hal kueri kolom terenkripsi, yaitu Anda hanya dapat melakukan perbandingan kesetaraan (dan yang memerlukan memilih enkripsi deterministik). Tidak ada rentang tanggal pengecekan, tidak ada permintaan LIKE, dll.
musefan
3

Sederhananya, TDE adalah data yang dienkripsi saat istirahat (pada disk) dan AE adalah data yang dienkripsi pada kabel sebagai tambahan.

Chad Mattox
sumber
Saya pikir Anda mungkin memiliki itu ke belakang, bukan?
zwerdlds
Bukankah seharusnya: TDE adalah data dienkripsi saat istirahat sementara AE adalah data dienkripsi pada kabel, saat istirahat & dalam memori?
RoastBeast
AFAIK: Anda dapat menggabungkan TDE dan Force Enkripsi Protokol pada server MS SQL untuk memilikinya pada kawat yang dienkripsi juga.
TiloBunt