Enkripsi dan validasi sertifikat di OLE DB

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Unduh driver OLE DB

SQL Server selalu mengenkripsi paket jaringan yang terkait dengan masuk. Jika tidak ada sertifikat yang disediakan di server saat dimulai, SQL Server menghasilkan sertifikat yang ditandatangani sendiri, yang digunakan untuk mengenkripsi paket masuk.

Sertifikat yang ditandatangani sendiri tidak menjamin keamanan. Jabat tangan terenkripsi didasarkan pada NT LAN Manager (NTLM). Sangat disarankan agar Anda menyediakan sertifikat yang dapat diverifikasi di SQL Server untuk konektivitas yang aman. Lapisan Keamanan Transportasi (TLS) hanya dapat dibuat aman dengan validasi sertifikat.

Aplikasi juga dapat meminta enkripsi semua lalu lintas jaringan dengan menggunakan kata kunci string koneksi atau properti koneksi. Kata kunci adalah "Enkripsi" untuk OLE DB saat menggunakan string penyedia dengan IDbInitialize::Initialize, atau "Gunakan Enkripsi untuk Data" untuk ADO dan OLE DB saat menggunakan string inisialisasi dengan IDataInitialize. Enkripsi juga dapat dikonfigurasi pada komputer klien di registri menggunakan opsi Enkripsi Protokol Paksa. Untuk informasi selengkapnya, lihat Pengaturan registri. Secara default, enkripsi semua lalu lintas jaringan untuk koneksi memerlukan sertifikat yang disediakan di server. Dengan mengatur klien Anda untuk mempercayai sertifikat di server, Anda mungkin rentan terhadap serangan man-in-the-middle. Jika Anda menyebarkan sertifikat yang dapat diverifikasi di server, pastikan Anda mengubah pengaturan klien tentang mempercayai sertifikat menjadi FALSE.

Untuk informasi tentang kata kunci string koneksi, lihat Menggunakan kata kunci string koneksi dengan driver OLE DB untuk SQL Server.

Untuk mengaktifkan enkripsi yang akan digunakan ketika sertifikat belum disediakan di server, Force Protocol Encryption dan Trust Server Certificate pengaturan registri klien dapat diatur. Dalam hal ini, enkripsi menggunakan sertifikat server yang ditandatangani sendiri tanpa validasi jika tidak ada sertifikat yang dapat diverifikasi yang telah disediakan di server.

Perilaku validasi enkripsi dan sertifikat

Pengaturan aplikasi tidak pernah mengurangi tingkat keamanan yang ditetapkan dalam registri, tetapi dapat memperkuatnya. Untuk informasi selengkapnya, lihat Pengaturan registri. Misalnya, jika Force Protocol Encryption tidak diatur untuk klien, aplikasi dapat meminta enkripsi itu sendiri. Untuk menjamin enkripsi bahkan ketika sertifikat server belum disediakan, aplikasi dapat meminta enkripsi dan mengaktifkan TrustServerCertificate. Namun, jika TrustServerCertificate tidak diaktifkan dalam konfigurasi klien, sertifikat server yang disediakan masih diperlukan.

Driver OLE DB versi 19 untuk SQL Server memperkenalkan perubahan yang melanggar dalam API terkait enkripsi. Untuk informasi selengkapnya, lihat Perubahan properti enkripsi.

Versi utama 19

Tabel berikut ini menjelaskan evaluasi pengaturan enkripsi:

Pengaturan klien Enkripsi Protokol Paksa Koneksi ion string/atribut koneksi Enkripsi/Penggunaan Enkripsi untuk Data Enkripsi yang dihasilkan
0 Tidak/Opsional Opsional
0 Ya/Wajib (default) Wajib
0 Ketat Ketat
1 Tidak/Opsional Wajib
1 Ya/Wajib (default) Wajib
1 Ketat Ketat
2 Diabaikan Ketat

Tabel berikut ini menjelaskan enkripsi dan validasi yang dihasilkan:

Enkripsi Pengaturan klien Sertifikat Server Kepercayaan Koneksi string/atribut koneksi Sertifikat Server Kepercayaan Hasil
Opsional T/A T/A Enkripsi hanya terjadi untuk paket LOGIN.
Wajib 0 Diabaikan Enkripsi hanya terjadi jika ada sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.
Wajib 1 Tidak (default) Enkripsi hanya terjadi jika ada sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.
Wajib 1 Ya Enkripsi selalu terjadi, tetapi dapat menggunakan sertifikat server yang ditandatangani sendiri.
Ketat T/A T/A Enkripsi hanya terjadi jika ada sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.

Perhatian

Tabel sebelumnya hanya menyediakan panduan tentang perilaku sistem di bawah konfigurasi yang berbeda. Untuk konektivitas yang aman, pastikan bahwa klien dan server memerlukan enkripsi (untuk konfigurasi sisi server, lihat Mengonfigurasi pengaturan enkripsi di SQL Server). Pastikan juga bahwa server memiliki sertifikat yang dapat diverifikasi, dan bahwa TrustServerCertificate pengaturan pada klien diatur ke FALSE.

Catatan

Mulai dari driver OLE DB versi 19.2, koneksi TDS 8.0 dapat dikonfigurasi untuk menggunakan TLS 1.3. Untuk informasi selengkapnya, lihat dukungan TLS 1.3.

Versi utama 18 dengan metode autentikasi baru

Untuk versi 18.x.x, untuk meningkatkan keamanan, ketika Autentikasi atau Token Akses baru string koneksi kata kunci (atau properti yang sesuai) digunakan, driver mengambil alih nilai enkripsi default dengan mengaturnya ke yes. Penimpaan terjadi pada waktu inisialisasi objek sumber data. Jika enkripsi diatur sebelum inisialisasi melalui cara apa pun, nilai dihormati dan tidak ditimpa.

Catatan

Dalam aplikasi ADO dan dalam aplikasi yang mendapatkan IDBInitialize antarmuka melalui IDataInitialize::GetDataSource, Komponen Inti yang mengimplementasikan antarmuka secara eksplisit mengatur enkripsi ke nilai defaultnya.no Akibatnya, properti/kata kunci autentikasi baru menghormati pengaturan ini dan nilai enkripsi tidak ditimpa. Oleh karena itu, disarankan agar aplikasi ini secara eksplisit diatur Use Encryption for Data=true untuk mengambil alih nilai default.

Untuk meningkatkan keamanan, metode autentikasi baru menghormati TrustServerCertificate pengaturan (dan kata kunci/properti string koneksi yang sesuai) secara independen dari pengaturan enkripsi klien. Akibatnya, sertifikat server divalidasi secara default. Driver menentukan apakah akan memvalidasi sertifikat server sebagai berikut:

Pengaturan klien Sertifikat Server Kepercayaan Koneksi string/atribut koneksi Sertifikat Server Kepercayaan Validasi sertifikat
0 Tidak (default) Ya
0 Ya Ya
1 Tidak (default) Ya
1 Ya Tidak

Tabel berikut ini menjelaskan evaluasi pengaturan enkripsi:

Pengaturan klien Enkripsi Protokol Paksa Koneksi ion string/atribut koneksi Enkripsi/Penggunaan Enkripsi untuk Data Enkripsi yang dihasilkan
0 Tidak (default) Tidak
0 Ya Ya
1 Tidak (default) Ya
1 Ya Ya

Tabel berikut ini menjelaskan enkripsi dan validasi yang dihasilkan:

Enkripsi yang dihasilkan Validasi sertifikat Hasil
Tidak Tidak Enkripsi hanya terjadi untuk paket LOGIN.
Tidak Ya Enkripsi terjadi untuk paket LOGIN hanya jika ada sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.
Ya Tidak Enkripsi semua lalu lintas jaringan selalu terjadi, tetapi dapat menggunakan sertifikat server yang ditandatangani sendiri.
Ya Ya Enkripsi semua lalu lintas jaringan terjadi hanya jika ada sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.

Versi utama 18 dengan metode autentikasi warisan

Tabel berikut ini menjelaskan hasil enkripsi dan validasi untuk metode autentikasi warisan:

Pengaturan klien Enkripsi Protokol Paksa Pengaturan klien Sertifikat Server Kepercayaan Koneksi ion string/atribut koneksi Enkripsi/Penggunaan Enkripsi untuk Data Koneksi string/atribut koneksi Sertifikat Server Kepercayaan Hasil
0 T/A Tidak (default) T/A Enkripsi hanya terjadi untuk paket LOGIN.
0 T/A Ya Tidak (default) Enkripsi semua lalu lintas jaringan terjadi hanya jika ada sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.
0 T/A Ya Ya Enkripsi semua lalu lintas jaringan selalu terjadi, tetapi dapat menggunakan sertifikat server yang ditandatangani sendiri.
1 0 Diabaikan Diabaikan Enkripsi semua lalu lintas jaringan terjadi hanya jika ada sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.
1 1 Tidak (default) T/A Enkripsi semua lalu lintas jaringan selalu terjadi, tetapi dapat menggunakan sertifikat server yang ditandatangani sendiri.
1 1 Ya Tidak (default) Enkripsi semua lalu lintas jaringan terjadi hanya jika ada sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.
1 1 Ya Ya Enkripsi semua lalu lintas jaringan selalu terjadi, tetapi dapat menggunakan sertifikat server yang ditandatangani sendiri.

Baca juga

Driver OLE DB untuk Fitur SQL Server
Properti inisialisasi dan otorisasi
kata kunci string Koneksi ion
Perbedaan versi utama
Pengaturan registri