Manajemen Kunci Ekstensibel (EKM)

Berlaku untuk:SQL Server

SQL Server menyediakan kemampuan enkripsi data bersama dengan Extensible Key Management (EKM), menggunakan penyedia Microsoft Cryptographic API (MSCAPI) untuk enkripsi dan pembuatan kunci. Kunci enkripsi untuk enkripsi data dan enkripsi kunci dibuat dalam kontainer kunci sementara, dan Anda harus mengekspornya dari penyedia sebelum menyimpannya di database. Pendekatan ini memungkinkan SQL Server menangani manajemen kunci, termasuk hierarki kunci enkripsi dan cadangan kunci.

Dengan meningkatnya permintaan akan kepatuhan regulasi dan kepedulian terhadap privasi data, organisasi memanfaatkan enkripsi sebagai cara untuk menyediakan solusi pertahanan berlapis. Pendekatan ini sering kali tidak praktis hanya menggunakan alat manajemen enkripsi database. Vendor perangkat keras menyediakan produk yang menangani manajemen kunci enterprise dengan menggunakan modul keamanan perangkat keras (HSM). Perangkat HSM menyimpan kunci enkripsi pada modul perangkat keras atau perangkat lunak. Pendekatan ini lebih aman karena kunci enkripsi tidak berada bersama data yang terenkripsi.

Beberapa vendor menawarkan HSM untuk baik manajemen kunci maupun percepatan enkripsi. Perangkat HSM menggunakan antarmuka perangkat keras dengan proses server sebagai perantara antara aplikasi dan HSM. Vendor juga menerapkan penyedia MSCAPI melalui modul mereka, yang mungkin berupa perangkat keras atau perangkat lunak. MSCAPI sering kali hanya menawarkan sebagian dari fungsi yang ditawarkan HSM. Vendor juga dapat menyediakan perangkat lunak manajemen untuk HSM, konfigurasi kunci, dan akses kunci.

Implementasi HSM berbeda-beda di setiap vendor, dan menggunakannya dengan SQL Server membutuhkan antarmuka umum. Meskipun MSCAPI menyediakan antarmuka ini, ia hanya mendukung sebagian fitur HSM. Hal ini juga memiliki keterbatasan lain, seperti ketidakmampuan untuk menyimpan kunci simetris secara native, serta kurangnya dukungan yang berorientasi pada sesi.

SQL Server Extensible Key Management memungkinkan vendor EKM dan HSM pihak ketiga mendaftarkan modul mereka di SQL Server. Setelah modul terdaftar, pengguna SQL Server dapat menggunakan kunci enkripsi yang disimpan di modul tersebut. SQL Server kemudian dapat mengakses fitur enkripsi lanjutan yang didukung modul-modul ini, seperti enkripsi dan dekripsi massal, serta fungsi manajemen kunci seperti penuaan kunci dan rotasi kunci.

Saat Anda menjalankan SQL Server di Azure VM, SQL Server dapat menggunakan kunci yang disimpan di Azure Key Vault. Untuk informasi lebih lanjut, lihat Extensible Key Management using Azure Key Vault (SQL Server).

Konfigurasi EKM

Extensible Key Management tidak tersedia di setiap edisi SQL Server. Untuk daftar fitur yang didukung oleh edisi di SQL Server, lihat Edisi dan fitur yang didukung dari SQL Server 2025.

Secara default, Extensible Key Management nonaktif. Untuk mengaktifkan fitur ini, gunakan prosedur tersimpan sp_configure (Transact-SQL) dengan opsi dan nilai berikut:

sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO

Catatan

Jika Anda menggunakan sp_configure opsi ini pada edisi SQL Server yang tidak mendukung EKM, Anda akan menerima kesalahan.

Untuk menonaktifkan fitur ini, atur nilainya ke 0. Untuk informasi selengkapnya tentang cara mengatur opsi server, lihat sp_configure (Transact-SQL).

Cara menggunakan EKM

SQL Server Extensible Key Management memungkinkan Anda menyimpan kunci enkripsi yang melindungi file database di perangkat off-box seperti kartu pintar, perangkat USB, atau modul EKM/HSM. Ini juga melindungi data dari administrator basis data, kecuali anggota peran server tetap sysadmin. Anda dapat mengenkripsi data dengan menggunakan kunci enkripsi yang hanya dapat diakses oleh pengguna database pada modul EKM/HSM eksternal.

Extensible Key Management juga memberikan manfaat berikut:

  • Pemeriksaan otorisasi tambahan, yang memungkinkan pemisahan tugas.
  • Kinerja lebih tinggi untuk enkripsi dan dekripsi berbasis perangkat keras.
  • Pembuatan kunci enkripsi eksternal.
  • Penyimpanan kunci enkripsi eksternal, yang secara fisik memisahkan data dan kunci.
  • Pengambilan kunci enkripsi.
  • Retensi kunci enkripsi eksternal, yang memungkinkan rotasi kunci enkripsi.
  • Pemulihan kunci enkripsi yang lebih mudah.
  • Distribusi kunci enkripsi yang dapat dikelola.
  • Pembuangan kunci enkripsi aman.

Anda dapat menggunakan Extensible Key Management untuk kombinasi nama pengguna dan kata sandi atau metode lain yang ditentukan oleh driver EKM.

Perhatian

Untuk pemecahan masalah, dukungan teknis Microsoft mungkin memerlukan kunci enkripsi dari penyedia EKM. Anda mungkin juga perlu mengakses alat atau proses vendor untuk membantu menyelesaikan masalah.

Autentikasi dengan perangkat EKM

Modul EKM dapat mendukung lebih dari satu jenis autentikasi. Setiap penyedia hanya mengeksposkan satu jenis autentikasi ke SQL Server. Artinya, jika modul mendukung baik tipe otentikasi dasar maupun lainnya, modul akan menampilkan salah satu dari keduanya, tetapi tidak keduanya.

Autentikasi dasar khusus perangkat EKM dengan menggunakan nama pengguna dan kata sandi

Untuk modul EKM yang mendukung autentikasi dasar dengan menggunakan pasangan nama pengguna dan kata sandi, SQL Server menyediakan autentikasi transparan dengan menggunakan kredensial. Untuk informasi selengkapnya tentang kredensial, lihat Kredensial (Mesin Database).

Anda dapat membuat kredensial untuk penyedia EKM dan memetakannya ke login, baik akun Windows maupun SQL Server, untuk mengakses modul EKM secara per login. Kolom identitas pada kredensial berisi nama pengguna, dan kolom rahasia berisi kata sandi untuk terhubung ke modul EKM.

Jika tidak ada kredensial login-mapped untuk penyedia EKM, SQL Server menggunakan kredensial yang dipetakan ke akun layanan.

Sebuah login dapat memiliki beberapa kredensial yang dipetakan ke dalamnya, selama masing-masing digunakan untuk setiap penyedia EKM yang berbeda. Hanya boleh ada satu kredensial yang dipetakan per penyedia EKM per login. Anda dapat memetakan kredensial yang sama ke login lain.

Jenis autentikasi spesifik perangkat EKM lainnya

Untuk modul EKM yang menggunakan autentikasi selain Windows atau kombinasi nama pengguna dan kata sandi, Anda harus melakukan autentikasi secara independen dari SQL Server.

Enkripsi dan dekripsi oleh perangkat EKM

Gunakan fungsi dan fitur berikut untuk mengenkripsi dan mendekripsi data dengan menggunakan kunci simetris dan asimetris:

Fungsi atau fitur Referensi
Enkripsi kunci simetris CREATE SYMMETRIC KEY (Transact-SQL)
Enkripsi kunci asimetris CREATE ASYMMETRIC KEY (Transact-SQL)
EncryptByKey(key_guid, 'cleartext', ...) ENCRYPTBYKEY (Transact-SQL)
DecryptByKey(ciphertext, ...) DECRYPTBYKEY (Transact-SQL)
EncryptByAsmKey(key_guid, 'cleartext') ENCRYPTBYASYMKEY (Transact-SQL)
DecryptByAsmKey(ciphertext) DECRYPTBYASYMKEY (Transact-SQL)

Enkripsi kunci basis data dengan kunci EKM

SQL Server dapat menggunakan kunci EKM untuk mengenkripsi kunci lain dalam database. Anda dapat membuat dan menggunakan kunci simetris dan asimetris pada perangkat EKM. Anda dapat mengenkripsi kunci simetris native (non-EKM) dengan kunci asimetris EKM.

Contoh berikut membuat kunci simetris basis data dan mengenkripsikannya menggunakan kunci pada modul EKM.

CREATE SYMMETRIC KEY Key1
WITH ALGORITHM = AES_256
ENCRYPTION BY EKM_AKey1;
GO

-- Open the database key.
OPEN SYMMETRIC KEY Key1
DECRYPTION BY EKM_AKey1;

Untuk informasi lebih lanjut tentang kunci database dan server di SQL Server, lihat Kunci enkripsi SQL Server dan database (Database Engine).

Catatan

Anda tidak bisa mengenkripsi satu kunci EKM dengan kunci EKM lain.

SQL Server tidak mendukung penandatanganan modul dengan kunci asimetris yang dihasilkan dari penyedia EKM.