Bagikan melalui


Transparent Data Encryption (TDE)

Enkripsi Data Transparan (TDE) mengenkripsi file data SQL Server dan Azure SQL Database, yang dikenal sebagai mengenkripsi data tidak aktif. Anda dapat mengambil beberapa tindakan pencegahan untuk membantu mengamankan database seperti merancang sistem yang aman, mengenkripsi aset rahasia, dan membangun firewall di sekitar server database. Namun, dalam skenario di mana media fisik (seperti drive atau kaset cadangan) dicuri, pihak berbahaya hanya dapat memulihkan atau melampirkan database dan menelusuri data. Salah satu solusinya adalah mengenkripsi data sensitif dalam database dan melindungi kunci yang digunakan untuk mengenkripsi data dengan sertifikat. Ini mencegah siapa pun tanpa kunci menggunakan data, tetapi perlindungan semacam ini harus direncanakan terlebih dahulu.

TDE melakukan enkripsi I/O real-time dan dekripsi data dan file log. Enkripsi menggunakan kunci enkripsi database (DEK), yang disimpan dalam catatan boot database untuk ketersediaan selama pemulihan. DEK adalah kunci konten yang diamankan dengan menggunakan sertifikat yang disimpan dalam database master server atau kunci asimetris yang dilindungi oleh modul EKM. TDE melindungi data "tidak aktif", yang berarti data dan file log. Ini memberikan kemampuan untuk mematuhi banyak undang-undang, peraturan, dan pedoman yang ditetapkan di berbagai industri. Ini memungkinkan pengembang perangkat lunak untuk mengenkripsi data dengan menggunakan algoritma enkripsi AES dan 3DES tanpa mengubah aplikasi yang ada.

Penting

TDE tidak menyediakan enkripsi di seluruh saluran komunikasi. Untuk informasi selengkapnya tentang cara mengenkripsi data di seluruh saluran komunikasi, lihat Mengaktifkan Koneksi Terenkripsi ke Mesin Database (Pengelola Konfigurasi SQL Server).

Topik terkait:

Tentang TDE

Enkripsi file database dilakukan di tingkat halaman. Halaman dalam database terenkripsi dienkripsi sebelum ditulis ke disk dan didekripsi saat dibaca ke dalam memori. TDE tidak meningkatkan ukuran database terenkripsi.

Informasi yang berlaku untuk SQL Database

Saat menggunakan TDE dengan SQL Database V12 V12 (Pratinjau di beberapa wilayah) sertifikat tingkat server yang disimpan dalam database master secara otomatis dibuat untuk Anda dengan SQL Database. Untuk memindahkan database TDE di SQL Database Anda harus mendekripsi database, memindahkan database, lalu mengaktifkan kembali TDE di SQL Database tujuan. Untuk instruksi langkah demi langkah untuk TDE di SQL Database, lihat Enkripsi Data Transparan dengan database Azure SQL.

Pratinjau status TDE berlaku bahkan di subset wilayah geografis di mana keluarga versi V12 dari SQL Database diumumkan sekarang berada dalam status ketersediaan umum. TDE untuk SQL Database tidak dimaksudkan untuk digunakan dalam database produksi sampai Microsoft mengumumkan bahwa TDE dipromosikan dari pratinjau ke GA. Untuk informasi selengkapnya tentang SQL Database V12, lihat Apa yang baru dalam Azure SQL Database.

Informasi yang berlaku untuk SQL Server

Setelah diamankan, database dapat dipulihkan dengan menggunakan sertifikat yang benar. Untuk informasi selengkapnya tentang sertifikat, lihat Sertifikat SQL Server dan Kunci Asimetris.

Saat mengaktifkan TDE, Anda harus segera mencadangkan sertifikat dan kunci privat yang terkait dengan sertifikat. Jika sertifikat menjadi tidak tersedia atau jika Anda harus memulihkan atau melampirkan database di server lain, Anda harus memiliki cadangan sertifikat dan kunci privat atau Anda tidak akan dapat membuka database. Sertifikat enkripsi harus dipertahankan meskipun TDE tidak lagi diaktifkan pada database. Meskipun database tidak dienkripsi, bagian dari log transaksi mungkin masih tetap dilindungi, dan sertifikat mungkin diperlukan untuk beberapa operasi hingga pencadangan penuh database dilakukan. Sertifikat yang telah melebihi tanggal kedaluwarsanya masih dapat digunakan untuk mengenkripsi dan mendekripsi data dengan TDE.

Hierarki Enkripsi

Ilustrasi berikut menunjukkan arsitektur enkripsi TDE. Hanya item tingkat database (kunci enkripsi database dan bagian ALTER DATABASE yang dapat dikonfigurasi pengguna saat menggunakan TDE pada SQL Database.

Menampilkan hierarki yang dijelaskan dalam topik.

Menggunakan Enkripsi Data Transparan

Untuk menggunakan TDE, ikuti langkah-langkah ini.

Berlaku untuk: SQL Server.
  • Membuat kunci master

  • Membuat atau mendapatkan sertifikat yang dilindungi oleh kunci master

  • Membuat kunci enkripsi database dan melindunginya dengan sertifikat

  • Mengatur database untuk menggunakan enkripsi

Contoh berikut mengilustrasikan mengenkripsi dan mendekripsi AdventureWorks2012 database menggunakan sertifikat yang diinstal pada server bernama MyServerCert.

USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>';
go
CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate';
go
USE AdventureWorks2012;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
ALTER DATABASE AdventureWorks2012
SET ENCRYPTION ON;
GO

Operasi enkripsi dan dekripsi dijadwalkan pada utas latar belakang dengan SQL Server. Anda dapat melihat status operasi ini menggunakan tampilan katalog dan tampilan manajemen dinamis dalam daftar yang muncul nanti dalam topik ini.

Perhatian

File cadangan database yang mengaktifkan TDE juga dienkripsi dengan menggunakan kunci enkripsi database. Akibatnya, ketika Anda memulihkan cadangan ini, sertifikat yang melindungi kunci enkripsi database harus tersedia. Ini berarti bahwa selain mencadangkan database, Anda harus memastikan bahwa Anda mempertahankan cadangan sertifikat server untuk mencegah kehilangan data. Kehilangan data akan mengakibatkan sertifikat tidak lagi tersedia. Untuk informasi selengkapnya, lihat Sertifikat SQL Server dan Kunci Asimetris.

Perintah dan Fungsi

Sertifikat TDE harus dienkripsi oleh kunci master database agar diterima oleh pernyataan berikut. Jika hanya dienkripsi dengan kata sandi, pernyataan akan menolaknya sebagai enkripsi.

Penting

Mengubah sertifikat yang akan dilindungi kata sandi setelah digunakan oleh TDE akan menyebabkan database menjadi tidak dapat diakses setelah hidupkan ulang.

Tabel berikut ini menyediakan tautan dan penjelasan tentang perintah dan fungsi TDE.

Perintah atau fungsi Tujuan
MEMBUAT KUNCI ENKRIPSI DATABASE (Transact-SQL) Membuat kunci yang digunakan untuk mengenkripsi database.
MENGUBAH KUNCI ENKRIPSI DATABASE (Transact-SQL) Mengubah kunci yang digunakan untuk mengenkripsi database.
HILANGKAN KUNCI ENKRIPSI DATABASE (Transact-SQL) Menghapus kunci yang digunakan untuk mengenkripsi database.
UBAH Opsi SET DATABASE (Transact-SQL) Menjelaskan ALTER DATABASE opsi yang digunakan untuk mengaktifkan TDE.

Tampilan Katalog dan Tampilan Manajemen Dinamis

Tabel berikut ini memperlihatkan tampilan katalog TDE dan tampilan manajemen dinamis.

Tampilan katalog atau tampilan manajemen dinamis Tujuan
sys.databases (T-SQL) Tampilan katalog yang menampilkan informasi database.
sys.certificates (Transact-SQL) Tampilan katalog yang memperlihatkan sertifikat dalam database.
sys.dm_database_encryption_keys (T-SQL) Tampilan manajemen dinamis yang menyediakan informasi tentang kunci enkripsi yang digunakan dalam database, dan status enkripsi database.

Izin

Setiap fitur dan perintah TDE memiliki persyaratan izin individual, yang dijelaskan dalam tabel yang ditunjukkan sebelumnya.

Melihat metadata yang terlibat dengan TDE memerlukan izin LIHAT DEFINISI pada sertifikat.

Pertimbangan

Saat pemindaian enkripsi ulang untuk operasi enkripsi database sedang berlangsung, operasi pemeliharaan ke database dinonaktifkan. Anda dapat menggunakan pengaturan mode pengguna tunggal untuk database untuk melakukan operasi pemeliharaan. Untuk informasi selengkapnya, lihat Mengatur Database ke Mode Pengguna tunggal.

Anda dapat menemukan status enkripsi database menggunakan tampilan manajemen dinamis sys.dm_database_encryption_keys. Untuk informasi selengkapnya, lihat bagian "Tampilan Katalog dan Tampilan Manajemen Dinamis"sebelumnya dalam topik ini).

Di TDE, semua file dan grup file dalam database dienkripsi. Jika ada grup file dalam database yang ditandai BACA SAJA, operasi enkripsi database akan gagal.

Jika database sedang digunakan dalam pencerminan database atau pengiriman log, kedua database akan dienkripsi. Transaksi log akan dienkripsi saat dikirim di antaranya.

Penting

Indeks teks lengkap baru akan dienkripsi saat database diatur untuk enkripsi. Indeks teks lengkap yang dibuat sebelumnya akan diimpor selama peningkatan dan mereka akan berada di TDE setelah data dimuat ke dalam SQL Server. Mengaktifkan indeks teks lengkap pada kolom dapat menyebabkan data kolom ditulis dalam teks biasa ke disk selama pemindaian pengindeksan teks lengkap. Kami menyarankan agar Anda tidak membuat indeks teks lengkap pada data terenkripsi sensitif.

Data terenkripsi mengompresi data yang secara signifikan kurang dari data yang tidak terenkripsi yang setara. Jika TDE digunakan untuk mengenkripsi database, kompresi cadangan tidak akan dapat mengompresi penyimpanan cadangan secara signifikan. Oleh karena itu, menggunakan TDE dan kompresi cadangan bersama-sama tidak disarankan.

Batasan

Operasi berikut ini tidak diizinkan selama enkripsi database awal, perubahan kunci, atau dekripsi database:

  • Menjatuhkan file dari grup file di database

  • Menghilangkan database

  • Mengambil database offline

  • Mencopot database

  • Transisi database atau grup file ke status BACA SAJA

Operasi berikut ini tidak diizinkan selama CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY, atau ALTER DATABASE... ATUR pernyataan ENKRIPSI.

  • Menjatuhkan file dari grup file di database.

  • Menghilangkan database.

  • Mengambil database offline.

  • Mencopot database.

  • Transisi database atau grup file ke status BACA SAJA.

  • Menggunakan perintah ALTER DATABASE.

  • Memulai pencadangan file database atau database.

  • Memulai pemulihan file database atau database.

  • Membuat rekam jepret.

Operasi atau kondisi berikut akan mencegah CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY, atau ALTER DATABASE... ATUR pernyataan ENKRIPSI.

  • Database bersifat baca-saja atau memiliki grup file baca-saja.

  • Perintah ALTER DATABASE sedang dijalankan.

  • Pencadangan data apa pun sedang berjalan.

  • Database dalam kondisi offline atau pemulihan.

  • Rekam jepret sedang berlangsung.

  • Tugas pemeliharaan database.

Saat membuat file database, inisialisasi file instan tidak tersedia saat TDE diaktifkan.

Untuk mengenkripsi kunci enkripsi database dengan kunci asimetris, kunci asimetris harus berada di penyedia manajemen kunci yang dapat diperluas.

Enkripsi Data Transparan dan Log Transaksi

Mengaktifkan database untuk menggunakan TDE memiliki efek "nol keluar" bagian yang tersisa dari log transaksi virtual untuk memaksa log transaksi virtual berikutnya. Ini menjamin bahwa tidak ada teks yang jelas yang tersisa dalam log transaksi setelah database diatur untuk enkripsi. Anda dapat menemukan status enkripsi file log dengan menampilkan encryption_state kolom dalam sys.dm_database_encryption_keys tampilan, seperti dalam contoh ini:

USE AdventureWorks2012;
GO
/* The value 3 represents an encrypted state 
   on the database and transaction logs. */
SELECT *
FROM sys.dm_database_encryption_keys
WHERE encryption_state = 3;
GO

Untuk informasi selengkapnya tentang arsitektur file log SQL Server, lihat Log Transaksi (SQL Server).

Semua data yang ditulis ke log transaksi sebelum perubahan kunci enkripsi database akan dienkripsi dengan menggunakan kunci enkripsi database sebelumnya.

Setelah kunci enkripsi database dimodifikasi dua kali, pencadangan log harus dilakukan sebelum kunci enkripsi database dapat dimodifikasi lagi.

Enkripsi Data Transparan dan Database Sistem tempdb

Database sistem tempdb akan dienkripsi jika ada database lain pada instans SQL Server dienkripsi dengan menggunakan TDE. Ini mungkin memiliki efek performa untuk database yang tidak terenkripsi pada instans SQL Server yang sama. Untuk informasi selengkapnya tentang database sistem tempdb, lihat Database tempdb.

Enkripsi dan Replikasi Data Transparan

Replikasi tidak secara otomatis mereplikasi data dari database berkemampuan TDE dalam bentuk terenkripsi. Anda harus mengaktifkan TDE secara terpisah jika Ingin melindungi database distribusi dan pelanggan. Replikasi rekam jepret, serta distribusi awal data untuk replikasi transaksional dan penggabungan, dapat menyimpan data dalam file perantara yang tidak terenkripsi; misalnya, file bcp. Selama replikasi transaksional atau penggabungan, enkripsi dapat diaktifkan untuk melindungi saluran komunikasi. Untuk informasi selengkapnya, lihat Mengaktifkan Koneksi Terenkripsi ke Mesin Database (Pengelola Konfigurasi SQL Server).

Enkripsi Data Transparan dan DATA ALIRAN FILE

Data FILESTREAM tidak dienkripsi bahkan ketika TDE diaktifkan.

Enkripsi Data Transparan dan Ekstensi Kumpulan Buffer

File yang terkait dengan ekstensi kumpulan buffer (BPE) tidak dienkripsi saat database dienkripsi menggunakan TDE. Anda harus menggunakan alat enkripsi tingkat sistem file seperti Bitlocker atau EFS untuk file terkait BPE.

Enkripsi Data Transparan dan In-Memory OLTP

TDE dapat diaktifkan pada database yang memiliki In-Memory objek OLTP. In-Memory catatan log OLTP dienkripsi jika TDE diaktifkan. Data dalam grup file MEMORY_OPTIMIZED_DATA tidak dienkripsi jika TDE diaktifkan.

Lihat juga

Memindahkan Database yang Dilindungi TDE ke TDE Lain SQL ServerAktivasi MenggunakanEnkripsi Data Transparan EKM dengan Database Azure SQLSQL Server Enkripsi SQL Serverdan Kunci Enkripsi Database (Mesin Database)Pusat Keamanan untuk Database SQL Server Mesin dan Azure SQL DatabaseFILESTREAM (SQL Server)