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 data dan enkripsi kunci dibuat dalam kontainer kunci sementara, dan harus diekspor dari penyedia sebelum disimpan dalam database. Pendekatan ini memungkinkan manajemen kunci yang mencakup hierarki kunci enkripsi dan cadangan kunci, untuk ditangani oleh SQL Server.

Dengan meningkatnya permintaan untuk kepatuhan peraturan dan kekhawatiran terhadap privasi data, organisasi memanfaatkan enkripsi sebagai cara untuk memberikan solusi "pertahanan mendalam". Pendekatan ini sering kali tidak praktis hanya menggunakan alat manajemen enkripsi database. Vendor perangkat keras menyediakan produk yang menangani manajemen kunci perusahaan dengan menggunakan Modul Keamanan Perangkat Keras (HSM). Perangkat HSM menyimpan kunci enkripsi pada modul perangkat keras atau perangkat lunak. Ini adalah solusi yang lebih aman karena kunci enkripsi tidak berada dengan data enkripsi.

Sejumlah vendor menawarkan HSM untuk manajemen kunci dan akselerasi 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 hanya menawarkan subset fungsionalitas yang ditawarkan oleh HSM. Vendor juga dapat menyediakan perangkat lunak manajemen untuk HSM, konfigurasi kunci, dan akses kunci.

Implementasi HSM bervariasi dari vendor ke vendor, dan untuk menggunakannya dengan SQL Server memerlukan antarmuka umum. Meskipun MSCAPI menyediakan antarmuka ini, MSCAPI hanya mendukung subset fitur HSM. Hal ini juga memiliki keterbatasan lain, seperti ketidakmampuan untuk menyimpan kunci simetris secara native, serta kurangnya dukungan yang berorientasi pada sesi.

Manajemen Kunci yang Dapat Diperluas SQL Server memungkinkan vendor EKM/HSM pihak ketiga untuk mendaftarkan modul mereka di SQL Server. Ketika terdaftar, pengguna SQL Server dapat menggunakan kunci enkripsi yang disimpan pada modul EKM. Ini memungkinkan SQL Server untuk mengakses fitur enkripsi lanjutan yang didukung modul ini seperti enkripsi dan dekripsi massal, dan fungsi manajemen kunci seperti penuaan kunci dan rotasi kunci.

Saat menjalankan SQL Server di Komputer Virtual Azure, SQL Server dapat menggunakan kunci yang disimpan di Azure Key Vault. Untuk informasi selengkapnya, lihat Extensible Key Management Menggunakan 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 perintah sp_configure yang memiliki opsi dan nilai berikut, seperti dalam contoh berikut:

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

Catatan

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

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

Cara Menggunakan EKM

SQL Server Extensible Key Management mengaktifkan kunci enkripsi yang melindungi file database untuk disimpan dalam perangkat off-box seperti modul smartcard, USB device, atau EKM/HSM. Ini juga mengaktifkan perlindungan data dari administrator database (kecuali anggota grup sysadmin). Data dapat dienkripsi 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 (untuk mendukung pemisahan tugas).

  • Performa yang lebih tinggi untuk enkripsi/dekripsi berbasis perangkat keras.

  • Pembuatan kunci enkripsi eksternal.

  • Penyimpanan kunci enkripsi eksternal (pemisahan fisik data dan kunci).

  • Pengambilan kunci enkripsi.

  • Retensi kunci enkripsi eksternal (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 mengekspos satu jenis autentikasi ke SQL Server, yaitu jika modul mendukung jenis autentikasi Dasar atau Lainnya, modul tersebut mengekspos satu atau yang lain, tetapi tidak keduanya.

Autentikasi Dasar Khusus Perangkat EKM Menggunakan nama pengguna/kata sandi

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

Kredensial dapat dibuat untuk penyedia EKM dan dikaitkan dengan login (baik akun Windows maupun SQL Server) untuk mengakses modul EKM untuk setiap login. Bidang identitas kredensial berisi nama pengguna; bidang rahasia berisi kata sandi untuk menyambungkan ke modul EKM.

Jika tidak ada kredensial login yang dipetakan untuk penyedia EKM, kredensial yang dipetakan ke akun layanan SQL Server akan digunakan.

Satu login dapat memiliki beberapa kredensial yang dikaitkan dengannya, asalkan masing-masing digunakan untuk penyedia EKM yang berbeda. Hanya boleh ada satu kredensial yang dipetakan per penyedia EKM per login. Kredensial yang sama dapat dipetakan ke login lain.

Jenis Autentikasi Khusus Perangkat EKM Lainnya

Untuk modul EKM yang memiliki autentikasi selain kombinasi Windows atau pengguna/kata sandi , autentikasi harus dilakukan secara independen dari SQL Server.

Enkripsi dan Dekripsi oleh Perangkat EKM

Anda dapat menggunakan 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, 'teks jelas', ...) ENCRYPTBYKEY (Transact-SQL)
DecryptByKey(ciphertext, ...) DECRYPTBYKEY (Transact-SQL)
EncryptByAsmKey(key_guid, 'cleartext') ENCRYPTBYASYMKEY (Transact-SQL)
DecryptByAsmKey(ciphertext) DECRYPTBYASYMKEY (Transact-SQL)

Enkripsi Kunci Database oleh 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 database dan mengenkripsi kunci tersebut menggunakan kunci pada modul EKM.

CREATE SYMMETRIC KEY Key1  
WITH ALGORITHM = AES_256  
ENCRYPTION BY EKM_AKey1;  
GO  
--Open database key  
OPEN SYMMETRIC KEY Key1  
DECRYPTION BY EKM_AKey1  

Untuk informasi selengkapnya tentang Database dan Kunci Server di SQL Server, lihat SQL Server dan Kunci Enkripsi Database (Mesin Database).

Catatan

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

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

Opsi Konfigurasi Server yang Diaktifkan oleh Penyedia EKM

Mengaktifkan TDE di SQL Server Menggunakan EKM

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