Rencana untuk pengesahan Layanan Wali Host

Berlaku untuk: SQL Server 2019 (15.x) dan yang lebih baru - Hanya Windows

Pengesahan adalah alur kerja yang memungkinkan aplikasi klien untuk memverifikasi bahwa aplikasi tersebut berbicara dengan enklave tepercaya dalam proses SQL Server saat menggunakan Always Encrypted dengan enklave aman.

Di SQL Server, Always Encrypted dengan enklave aman menggunakan enklave Keamanan berbasis virtualisasi (VBS) (juga dikenal sebagai Mode Aman Virtual, atau enklave VSM) - teknologi berbasis perangkat lunak yang bergantung pada hypervisor Windows dan tidak memerlukan perangkat keras khusus. Membuktikan enklave VBS melibatkan verifikasi kode di dalam enklave valid dan komputer yang menghosting SQL Server dapat dipercaya. Pengesahan mencapai tujuan ini dengan memperkenalkan pihak ketiga yang dapat memvalidasi identitas (dan secara opsional, konfigurasi) komputer SQL Server. Sebelum SQL Server dapat menggunakan enklave untuk menjalankan kueri, SQL Server harus memberikan informasi ke layanan pengesahan tentang lingkungan operasinya untuk mendapatkan sertifikat kesehatan. Sertifikat kesehatan ini kemudian dikirim ke klien, yang dapat memverifikasi keasliannya secara independen dengan layanan pengesahan. Setelah klien mempercayai sertifikat kesehatan, klien tahu bahwa ia berbicara dengan enklave VBS yang dapat dipercaya dan akan mengeluarkan kueri yang akan menggunakan enklave tersebut.

Pengesahan sangat penting untuk mendeteksi beberapa serangan oleh administrator OS berbahaya, misalnya, serangan yang melibatkan perusakan dengan pustaka SQL Server yang berjalan di dalam enklave. Jika Anda tidak khawatir tentang serangan tersebut (misalnya, Anda menggunakan Always Encrypted dengan enklave aman di lingkungan non-produksi), lihat Merencanakan Always Encrypted dengan enklave aman di SQL Server tanpa pengesahan.

Peran Host Guardian Service (HGS) di Windows Server 2019 atau yang lebih baru menyediakan kemampuan pengesahan jarak jauh untuk Always Encrypted dengan enklave VBS. Artikel ini akan memandu Anda melalui keputusan dan persyaratan pra-penyebaran untuk menggunakan Always Encrypted dengan enklave VBS dan pengesahan HGS.

Catatan

Ketika SQL Server disebarkan dalam VM, enklave VBS membantu melindungi data Anda dari serangan di dalam VM. Namun, mereka tidak memberikan perlindungan apa pun dari serangan menggunakan akun sistem istimewa yang berasal dari host. Misalnya, cadangan memori VM yang dihasilkan pada komputer host mungkin berisi memori enklave.

Ikhtisar arsitektur

Host Guardian Service (HGS) adalah layanan web terkluster yang berjalan pada Windows Server 2019 atau yang lebih baru. Dalam penyebaran umum, akan ada 1-3 server HGS, setidaknya satu komputer yang menjalankan SQL Server, dan komputer yang menjalankan aplikasi atau alat klien, seperti SQL Server Management Studio. Karena HGS bertanggung jawab untuk menentukan komputer mana yang menjalankan SQL Server yang dapat dipercaya, ia memerlukan isolasi fisik dan logis dari instans SQL Server yang dilindunginya. Jika admin yang sama memiliki akses ke HGS dan komputer SQL Server, mereka dapat mengonfigurasi layanan pengesahan untuk memungkinkan komputer berbahaya menjalankan SQL Server, memungkinkan mereka untuk membahayakan enklave VBS.

Domain HGS

Penyiapan HGS akan secara otomatis membuat domain Direktori Aktif baru untuk server HGS, sumber daya kluster failover, dan akun administrator.

Komputer yang menjalankan SQL Server tidak perlu berada di domain, tetapi jika ya, itu harus menjadi domain yang berbeda dari yang digunakan server HGS.

Ketersediaan tinggi

Fitur HGS secara otomatis menginstal dan mengonfigurasi kluster failover. Di lingkungan produksi, disarankan untuk menggunakan tiga server HGS untuk ketersediaan tinggi. Lihat dokumentasi kluster failover untuk detail tentang bagaimana kuorum kluster ditentukan dan konfigurasi alternatif, termasuk dua kluster node dengan bukti eksternal.

Penyimpanan bersama tidak diperlukan antara simpul HGS. Salinan database pengesahan disimpan di setiap server HGS dan secara otomatis direplikasi melalui jaringan oleh layanan kluster.

Konektivitas jaringan

Klien SQL dan SQL Server harus dapat berkomunikasi dengan HGS melalui HTTP. Konfigurasikan HGS dengan sertifikat TLS untuk mengenkripsi semua komunikasi antara Klien SQL dan HGS, serta antara SQL Server dan HGS. Konfigurasi ini membantu melindungi dari serangan man-in-the-middle dan memastikan Anda berbicara dengan server HGS yang benar.

Server HGS memerlukan konektivitas antara setiap simpul dalam kluster untuk memastikan database layanan pengesahan tetap sinkron. Ini adalah praktik terbaik kluster failover untuk menghubungkan simpul HGS pada satu jaringan untuk komunikasi kluster dan menggunakan jaringan terpisah bagi klien lain untuk berkomunikasi dengan HGS.

Mode pengesahan

Ketika komputer yang menjalankan SQL Server mencoba membuktikan dengan HGS, pertama-tama akan bertanya HGS bagaimana seharusnya membuktikannya. HGS mendukung dua mode pengesahan untuk digunakan dengan SQL Server:

Mode pengesahan Penjelasan
TPM Pengesahan Trusted Platform Module (TPM) memberikan jaminan terkuat tentang identitas dan integritas komputer yang membuktikan dengan HGS. Ini mengharuskan komputer yang menjalankan SQL Server agar TPM versi 2.0 terinstal. Setiap chip TPM berisi identitas unik dan tidak dapat diubah (Kunci Dukungan) yang dapat digunakan untuk mengidentifikasi komputer tertentu. TPM juga mengukur proses boot komputer, menyimpan hash pengukuran sensitif keamanan di Platform Control Registers (PCR) yang dapat dibaca, tetapi tidak dimodifikasi oleh sistem operasi. Pengukuran ini digunakan selama pengesahan untuk memberikan bukti kriptografi bahwa komputer berada dalam konfigurasi keamanan yang diklaimnya.
Kunci Host Pengesahan kunci host adalah bentuk pengesahan yang lebih sederhana yang hanya memverifikasi identitas komputer dengan menggunakan pasangan kunci asimetris. Kunci privat disimpan di komputer yang menjalankan SQL Server dan kunci publik disediakan untuk HGS. Konfigurasi keamanan komputer tidak diukur dan chip TPM 2.0 tidak diperlukan pada komputer yang menjalankan SQL Server. Penting untuk melindungi kunci privat yang diinstal pada komputer SQL Server karena siapa pun yang mendapatkan kunci ini dapat meniru komputer SQL Server yang sah dan enklave VBS yang berjalan di dalam SQL Server.

Secara umum, kami membuat rekomendasi berikut:

  • Untuk server produksi fisik, sebaiknya gunakan pengesahan TPM untuk jaminan tambahan yang disediakannya.
  • Untuk server produksi virtual, kami merekomendasikan pengesahan kunci host karena sebagian besar komputer virtual tidak memiliki TPM virtual atau Boot Aman. Jika Anda menggunakan VM yang ditingkatkan keamanannya seperti VM terlindungi lokal, Anda dapat memilih untuk menggunakan mode TPM. Dalam semua penyebaran virtual, proses pengesahan hanya menganalisis lingkungan VM Anda, dan bukan platform virtualisasi di bawah VM.
  • Untuk skenario dev/test, kami merekomendasikan pengesahan kunci host karena lebih mudah disiapkan.

Model kepercayaan

Dalam model kepercayaan enklave VBS, kueri dan data terenkripsi dievaluasi dalam enklave berbasis perangkat lunak untuk melindunginya dari OS host. Akses ke enklave ini dilindungi oleh hypervisor dengan cara yang sama dua komputer virtual yang berjalan pada komputer yang sama tidak dapat mengakses memori satu sama lain.

Agar klien dapat mempercayai bahwa klien berbicara dengan instans VBS yang sah, Anda harus menggunakan pengesahan berbasis TPM yang menetapkan akar kepercayaan perangkat keras pada komputer SQL Server.

Pengukuran TPM yang diambil selama proses boot mencakup kunci identitas unik instans VBS, memastikan sertifikat kesehatan hanya valid pada komputer yang tepat. Selanjutnya, ketika TPM tersedia di komputer yang menjalankan VBS, bagian privat dari kunci identitas VBS dilindungi oleh TPM, mencegah siapa pun mencoba meniru instans VBS tersebut.

Boot Aman diperlukan dengan pengesahan TPM untuk memastikan UEFI memuat bootloader yang sah dan ditandatangani Microsoft dan tidak ada rootkit yang mencegat proses boot hypervisor. Selain itu, perangkat IOMMU diperlukan secara default untuk memastikan perangkat keras apa pun dengan akses memori langsung tidak dapat memeriksa atau memodifikasi memori enklave.

Perlindungan ini semua mengasumsikan komputer yang menjalankan SQL Server adalah komputer fisik. Jika Anda memvirtualisasi komputer yang menjalankan SQL Server, Anda tidak dapat lagi menjamin bahwa memori VM aman dari inspeksi oleh admin hypervisor atau hypervisor. Admin hypervisor dapat, misalnya, mencadangkan memori VM dan mendapatkan akses ke versi teks biasa kueri dan data di enklave. Demikian pula, bahkan jika VM memiliki TPM virtual, VM hanya dapat mengukur status dan integritas sistem operasi VM dan lingkungan boot. Ini tidak dapat mengukur status hypervisor yang mengontrol VM.

Namun, bahkan ketika SQL Server divirtualisasi, enklave masih dilindungi dari serangan yang berasal dari dalam sistem operasi VM. Jika Anda mempercayai hypervisor atau penyedia cloud Anda, dan terutama khawatir tentang admin database dan serangan admin OS pada data sensitif, SQL Server virtual mungkin memenuhi kebutuhan Anda.

Demikian pula, pengesahan Kunci Host masih berharga dalam situasi di mana modul TPM 2.0 tidak diinstal pada komputer yang menjalankan SQL Server atau dalam skenario dev/test di mana keamanan tidak terpenting. Anda masih dapat menggunakan banyak fitur keamanan yang disebutkan, termasuk Boot Aman dan modul TPM 1.2, untuk melindungi VBS dan sistem operasi secara keseluruhan dengan lebih baik. Tetapi, karena tidak ada cara bagi HGS untuk memverifikasi bahwa komputer benar-benar mengaktifkan pengaturan ini dengan pengesahan Kunci Host, klien tidak yakin host memang menggunakan semua perlindungan yang tersedia.

Prasyarat

Prasyarat server HGS

Komputer yang menjalankan peran Layanan Wali Host harus memenuhi persyaratan berikut:

Komponen Persyaratan
Sistem Operasi Windows Server 2019 atau yang lebih baru, edisi Standar atau Pusat Data
CPU 2 core (min), 4 core (disarankan)
RAM 8 GB (min)
NIC 2 NIC dengan IP statis yang direkomendasikan (1 untuk lalu lintas kluster, 1 untuk layanan HGS)

HGS adalah peran terikat CPU karena jumlah tindakan yang memerlukan enkripsi dan dekripsi. Menggunakan prosesor modern dengan kemampuan akselerasi kriptografi akan meningkatkan performa HGS. Persyaratan penyimpanan untuk data pengesahan minimal, pada kisaran 10 KB hingga 1 MB per pengesahan komputer unik.

Jangan bergabung dengan komputer HGS ke domain sebelum Anda memulai.

Prasyarat komputer SQL Server

Komputer yang menjalankan SQL Server harus memenuhi Persyaratan untuk Menginstal SQL Server dan persyaratan perangkat keras Hyper-V.

Persyaratan ini meliputi:

  • SQL Server 2019 (15.x) atau yang lebih baru
  • Windows 10, versi 1809 atau yang lebih baru - Edisi perusahaan, Windows 11 atau yang lebih baru - Edisi perusahaan, Windows Server 2019 atau yang lebih baru - edisi Pusat data. Edisi Windows 10/11 dan Windows Server lainnya tidak mendukung pengesahan dengan HGS.
  • Dukungan CPU untuk teknologi virtualisasi:
    • Intel VT-x dengan Tabel Halaman yang Diperluas.
    • AMD-V dengan Pengindeksan Virtualisasi Cepat.
    • Jika Anda menjalankan SQL Server di VM:
      • Di Azure, gunakan ukuran VM Generasi 2 (disarankan) atau gunakan ukuran VM Generasi 1 dengan virtualisasi berlapis diaktifkan. Periksa dokumentasi ukuran VM individual untuk menentukan ukuran VM Generasi 1 mana yang mendukung virtualisasi berlapis.
      • Pada Hyper-V 2016 atau yang lebih baru (di luar Azure), pastikan VM Anda adalah VM Generasi 2 (disarankan) atau VM Generasi 1 dengan virtualisasi berlapis diaktifkan. Untuk informasi selengkapnya, lihat Haruskah saya membuat komputer virtual generasi 1 atau 2 di Hyper-V? dan Mengonfigurasi virtualisasi berlapis.
      • Pada VMware vSphere 6.7 atau yang lebih baru, aktifkan dukungan keamanan berbasis virtualisasi untuk VM seperti yang dijelaskan dalam dokumentasi VMware.
      • Hypervisor dan cloud publik lainnya dapat mendukung kemampuan virtualisasi berlapis yang memungkinkan Always Encrypted dengan Enklave VBS juga. Periksa dokumentasi solusi virtualisasi Anda untuk kompatibilitas dan instruksi konfigurasi.
  • Jika Anda berencana menggunakan pengesahan TPM, Anda memerlukan chip TPM 2.0 rev 1.16 yang siap digunakan di server. Saat ini, pengesahan HGS tidak berfungsi dengan chip TPM 2.0 rev 1.38. Selain itu, TPM harus memiliki Sertifikat Kunci Dukungan yang valid.

Peran dan tanggung jawab saat mengonfigurasi pengesahan dengan HGS

Menyiapkan pengesahan dengan HGS melibatkan konfigurasi komponen dari berbagai jenis: HGS, komputer SQL Server, instans SQL Server, dan aplikasi yang memicu pengesahan enklave. Mengonfigurasi komponen dari setiap jenis dilakukan oleh para pengguna dengan asumsi salah satu peran yang berbeda di bawah ini:

  • Administrator HGS - menyebarkan HGS, mendaftarkan komputer SQL Server dengan HGS, dan berbagi URL pengesahan HGS dengan administrator komputer SQL Server dan administrator aplikasi klien.
  • Administrator komputer SQL Server - menginstal komponen klien pengesahan, mengaktifkan VBS di komputer SQL Server, memberi administrator HGS informasi yang diperlukan untuk mendaftarkan komputer SQL Server dengan HGS, mengonfigurasi URL pengesahan pada komputer SQL Server, dan memverifikasi komputer SQL Server dapat berhasil membuktikan dengan HGS.
  • DBA - mengonfigurasi enklave aman dalam instans SQL Server.
  • Administrator aplikasi - mengonfigurasi aplikasi dengan URL pengesahan yang diperoleh dari administrator HGS.

Di lingkungan produksi (menangani data sensitif nyata), penting bagi organisasi Anda untuk mematuhi pemisahan peran saat mengonfigurasi pengesahan, di mana setiap peran yang berbeda diasumsikan oleh orang yang berbeda. Secara khusus, jika tujuan penyebaran Always Encrypted di organisasi Anda adalah untuk mengurangi area permukaan serangan dengan memastikan administrator komputer SQL Server dan DBA tidak dapat mengakses data sensitif, administrator SQL Server dan DBA tidak boleh mengontrol server HGS.

Pertimbangan lingkungan dev atau pengujian

Jika Anda menggunakan Always Encrypted dengan enklave VBS dalam lingkungan pengembangan atau pengujian dan tidak memerlukan ketersediaan tinggi atau perlindungan yang kuat dari komputer yang menjalankan SQL Server, Anda dapat membuat salah satu atau semua konsesi berikut untuk penyebaran yang disederhanakan:

  • Gunakan Always Encrypted dengan enklave aman tanpa pengesahan - lihat Rencana untuk Always Encrypted dengan enklave aman di SQL Server tanpa pengesahan.
  • Atau:
    • Sebarkan hanya satu simpul HGS. Meskipun HGS menginstal kluster failover, Anda tidak perlu menambahkan simpul tambahan jika ketersediaan tinggi tidak menjadi perhatian.
    • Gunakan mode kunci host alih-alih mode TPM untuk pengalaman penyiapan yang lebih sederhana.
    • Virtualisasikan HGS dan/atau SQL Server untuk menyimpan sumber daya fisik.
    • Jalankan SSMS atau alat lain untuk mengonfigurasi Always Encrypted dengan enklave aman di komputer yang sama dengan SQL Server. Ini meninggalkan kunci master kolom di komputer yang sama dengan SQL Server, jadi jangan lakukan ini di lingkungan produksi.

Langkah berikutnya