Extensible Key Management (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. Ini juga memiliki batasan lain, seperti ketidakmampuan untuk kunci simetris yang bertahan secara asli, dan kurangnya dukungan berorientasi 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

Manajemen Kunci yang Dapat Diperluas tidak tersedia di setiap edisi Microsoft SQL Server. Untuk daftar fitur yang didukung oleh edisi SQL Server, lihat Fitur yang Didukung oleh Edisi SQL Server 2016.

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 (mengaktifkan 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 dipetakan ke login (akun Windows dan SQL Server) untuk mengakses modul EKM per login. Bidang identitas kredensial berisi nama pengguna; bidang rahasia berisi kata sandi untuk menyambungkan ke modul EKM.

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

Login dapat memiliki beberapa kredensial yang dipetakan ke dalamnya, selama digunakan untuk penyedia EKM yang khas. 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 konten MEMBUAT KUNCI SIMETRIS (Transact-SQL)
Enkripsi Kunci Asimetris MEMBUAT KUNCI ASIMETRIS (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 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 konten asli (non-EKM) dengan kunci asimetris EKM.

Contoh berikut membuat kunci konten database dan mengenkripsinya 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 penyedia EKM

Mengaktifkan TDE di SQL Server Menggunakan EKM

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

Lihat Juga

MEMBUAT PENYEDIA KRIPTOGRAFI (Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
sys.cryptographic_providers (T-SQL)
sys.dm_cryptographic_provider_sessions (T-SQL)
sys.dm_cryptographic_provider_properties (T-SQL)
sys.dm_cryptographic_provider_algorithms (T-SQL)
sys.dm_cryptographic_provider_keys (T-SQL)
sys.credentials (Transact-SQL)
CREATE CREDENTIAL (T-SQL)
UBAH LOGIN (Transact-SQL)
MEMBUAT KUNCI ASIMETRIS (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
HILANGKAN KUNCI ASIMETRIS (Transact-SQL)
MEMBUAT KUNCI SIMETRIS (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
BUKA KUNCI KONTEN (Transact-SQL)
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)
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