Kunci Enkripsi SQL Server dan Database (Mesin Database)

Berlaku untuk:SQL Server

SQL Server menggunakan kunci enkripsi untuk membantu mengamankan data, kredensial, dan informasi koneksi yang disimpan dalam database server. SQL Server memiliki dua jenis kunci: simetris dan asimetris. Kunci konten menggunakan kata sandi yang sama untuk mengenkripsi dan mendekripsi data. Kunci asimetris menggunakan satu kata sandi untuk mengenkripsi data (disebut kunci publik ) dan yang lain untuk mendekripsi data (disebut kunci privat ).

Di SQL Server, kunci enkripsi menyertakan kombinasi kunci publik, privat, dan konten yang digunakan untuk melindungi data sensitif. Kunci konten dibuat selama inisialisasi SQL Server saat Anda pertama kali memulai instans SQL Server. Kunci digunakan oleh SQL Server untuk mengenkripsi data sensitif yang disimpan di SQL Server. Kunci publik dan privat dibuat oleh sistem operasi dan digunakan untuk melindungi kunci konten. Pasangan kunci publik dan privat dibuat untuk setiap instans SQL Server yang menyimpan data sensitif dalam database.

Aplikasi untuk SQL Server dan Kunci Database

SQL Server memiliki dua aplikasi utama untuk kunci: kunci master layanan (SMK) yang dihasilkan di dan untuk instans SQL Server, dan kunci master database (DMK) yang digunakan untuk database.

Kunci master layanan

Kunci Master Layanan adalah akar hierarki enkripsi SQL Server. SMK secara otomatis dihasilkan saat pertama kali instans SQL Server dimulai dan digunakan untuk mengenkripsi kata sandi server tertaut, kredensial, dan kunci master database di setiap database. SMK dienkripsi dengan menggunakan kunci komputer lokal menggunakan Windows Data Protection API (DPAPI). DPAPI menggunakan kunci yang berasal dari kredensial Windows dari akun layanan SQL Server dan kredensial komputer. Kunci master layanan hanya dapat didekripsi oleh akun layanan tempat kunci tersebut dibuat atau oleh perwakilan yang memiliki akses ke kredensial komputer.

Kunci Master Layanan hanya dapat dibuka oleh akun layanan Windows tempat kunci tersebut dibuat atau oleh perwakilan dengan akses ke nama akun layanan dan kata sandinya.

SQL Server menggunakan algoritma enkripsi AES untuk melindungi kunci master layanan (SMK) dan kunci master database (DMK). AES adalah algoritma enkripsi yang lebih baru dari 3DES yang digunakan dalam versi sebelumnya. Setelah meningkatkan instans Mesin Database ke SQL Server, SMK dan DMK harus diregenerasi untuk meningkatkan kunci master ke AES. Untuk informasi selengkapnya tentang meregenerasi SMK, lihat ALTER SERVICE MASTER KEY (Transact-SQL) dan ALTER MASTER KEY (Transact-SQL).

Kunci master database

Kunci master database adalah kunci konten yang digunakan untuk melindungi kunci privat sertifikat dan kunci asimetris yang ada dalam database. Ini juga dapat digunakan untuk mengenkripsi data, tetapi memiliki batasan panjang yang membuatnya kurang praktis untuk data daripada menggunakan kunci asimetris. Untuk mengaktifkan dekripsi otomatis kunci master database, salinan kunci dienkripsi dengan menggunakan SMK. Ini disimpan dalam database tempat database digunakan dan dalam database sistem master .

Salinan DMK yang disimpan dalam database sistem master diperbarui secara senyap setiap kali DMK diubah. Namun, default ini dapat diubah dengan menggunakan opsi DROP ENCRYPTION BY SERVICE MASTER KEY dari pernyataan ALTER MASTER KEY . DMK yang tidak dienkripsi oleh kunci master layanan harus dibuka dengan menggunakan pernyataan OPEN MASTER KEY dan kata sandi.

Mengelola SQL Server dan Kunci Database

Mengelola kunci enkripsi terdiri dari membuat kunci database baru, membuat cadangan server dan kunci database, dan mengetahui kapan dan cara memulihkan, menghapus, atau mengubah kunci.

Untuk mengelola kunci konten, Anda dapat menggunakan alat yang disertakan dalam SQL Server untuk melakukan hal berikut:

  • Cadangkan salinan server dan kunci database sehingga Anda dapat menggunakannya untuk memulihkan penginstalan server, atau sebagai bagian dari migrasi yang direncanakan.

  • Pulihkan kunci yang disimpan sebelumnya ke database. Ini memungkinkan instans server baru untuk mengakses data yang ada yang awalnya tidak dienkripsi.

  • Hapus data terenkripsi dalam database jika Anda tidak dapat lagi mengakses data terenkripsi.

  • Buat ulang kunci dan enkripsi ulang data jika kunci disusupi. Sebagai praktik terbaik keamanan, Anda harus membuat ulang kunci secara berkala (misalnya, setiap beberapa bulan) untuk melindungi server dari serangan yang mencoba menguraikan kunci.

  • Menambahkan atau menghapus instans server dari penyebaran peluasan skala server di mana beberapa server berbagi database tunggal dan kunci yang menyediakan enkripsi yang dapat dibalik untuk database tersebut.

Informasi Keamanan Penting

Mengakses objek yang diamankan oleh kunci master layanan memerlukan akun Layanan SQL Server yang digunakan untuk membuat kunci atau akun komputer (komputer). Artinya, akun komputer yang terkait dengan sistem tempat kunci dibuat. Anda dapat mengubah akun Layanan SQL Server atau akun komputer tanpa kehilangan akses ke kunci. Namun, jika Anda mengubah keduanya, Anda akan kehilangan akses ke kunci master layanan. Jika Anda kehilangan akses ke kunci master layanan tanpa salah satu dari dua elemen ini, Anda tidak dapat mendekripsi data dan objek yang dienkripsi dengan menggunakan kunci asli.

Koneksi yang diamankan dengan kunci master layanan tidak dapat dipulihkan tanpa kunci master layanan.

Akses ke objek dan data yang diamankan dengan kunci master database hanya memerlukan kata sandi yang digunakan untuk membantu mengamankan kunci.

Perhatian

Jika Anda kehilangan semua akses ke kunci yang dijelaskan sebelumnya, Anda akan kehilangan akses ke objek, koneksi, dan data yang diamankan oleh kunci tersebut. Anda dapat memulihkan kunci master layanan, seperti yang dijelaskan dalam tautan yang ditampilkan di sini, atau Anda dapat kembali ke sistem enkripsi asli untuk memulihkan akses. Tidak ada "pintu belakang" untuk memulihkan akses.

Di Bagian Ini

Kunci Master Layanan
Memberikan penjelasan singkat untuk kunci master layanan dan praktik terbaiknya.

Extensible Key Management (EKM)
Menjelaskan cara menggunakan sistem manajemen kunci pihak ketiga dengan SQL Server.

Mencadangkan Kunci Master Layanan

Memulihkan Kunci Master Layanan

Membuat Kunci Master Database

Mencadangkan Kunci Master Database

Memulihkan Kunci Master Database

Membuat Kunci Simetris Identik di Dua Server

Mengaktifkan TDE di SQL Server Menggunakan EKM

Manajemen Kunci yang Dapat Diperluas Menggunakan Azure Key Vault (SQL Server)

Mengenkripsi Kolom Data

BUAT KUNCI MASTER (Transact-SQL)

ALTER SERVICE MASTER KEY (Transact-SQL)

Memulihkan Kunci Master Database

Lihat Juga

Cadangkan dan Pulihkan Kunci Enkripsi Layanan Pelaporan
Menghapus dan Membuat Ulang Kunci Enkripsi (SSRS Configuration Manager)
Menambahkan dan Menghapus Kunci Enkripsi untuk Penyebaran Peluasan Skala (SSRS Configuration Manager)
Transparent Data Encryption (TDE)