Bagikan melalui


Menggunakan Enkripsi Tanpa Validasi

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.

Aplikasi juga dapat meminta enkripsi semua lalu lintas jaringan dengan menggunakan kata kunci string koneksi atau properti koneksi. Kata kuncinya adalah "Enkripsi" untuk ODBC dan OLE DB saat menggunakan string penyedia dengan IDbInitialize::Initialize, atau "Use Encryption for Data" untuk ADO dan OLE DB saat menggunakan string inisialisasi dengan IDataInitialize. Ini juga dapat dikonfigurasi oleh SQL Server Configuration Manager menggunakan opsi Enkripsi Protokol Paksa . Secara default, enkripsi semua lalu lintas jaringan untuk koneksi mengharuskan sertifikat disediakan di server.

Untuk informasi tentang kata kunci string koneksi, lihat Menggunakan Kata Kunci String Koneksi dengan Klien Asli SQL Server.

Untuk mengaktifkan enkripsi yang akan digunakan ketika sertifikat belum disediakan di server, SQL Server Configuration Manager dapat digunakan untuk mengatur opsi Enkripsi Protokol Paksa dan Sertifikat Server Kepercayaan . Dalam hal ini, enkripsi akan menggunakan sertifikat server yang ditandatangani sendiri tanpa validasi jika tidak ada sertifikat yang dapat diverifikasi yang telah disediakan di server.

Aplikasi juga dapat menggunakan kata kunci "TrustServerCertificate" atau atribut koneksi terkait untuk menjamin bahwa enkripsi terjadi. Pengaturan aplikasi tidak pernah mengurangi tingkat keamanan yang ditetapkan oleh SQL Server Client Configuration Manager, tetapi dapat memperkuatnya. Misalnya, jika Enkripsi Protokol Paksa tidak diatur untuk klien, aplikasi dapat meminta enkripsi itu sendiri. Untuk menjamin enkripsi bahkan ketika sertifikat server belum disediakan, aplikasi dapat meminta enkripsi dan "TrustServerCertificate". Namun, jika "TrustServerCertificate" tidak diaktifkan dalam konfigurasi klien, sertifikat server yang disediakan masih diperlukan. Tabel berikut ini menjelaskan semua kasus:

Pengaturan klien Force Protocol Encryption Pengaturan klien Sertifikat Server Kepercayaan String koneksi/atribut koneksi Enkripsi/Gunakan Enkripsi untuk Data String koneksi/atribut koneksi Sertifikat Server Kepercayaan Hasil
Tidak. Tidak tersedia Tidak (default) Diabaikan Tidak ada enkripsi yang terjadi.
Tidak. Tidak tersedia Ya Tidak (default) Enkripsi hanya terjadi jika ada sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.
Tidak. Tidak tersedia Ya Ya Enkripsi selalu terjadi, tetapi dapat menggunakan sertifikat server yang ditandatangani sendiri.
Ya Tidak. Diabaikan Diabaikan Enkripsi hanya terjadi jika ada sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.
Ya Ya Tidak (default) Diabaikan Enkripsi selalu terjadi, tetapi dapat menggunakan sertifikat server yang ditandatangani sendiri.
Ya Ya Ya Tidak (default) Enkripsi hanya terjadi jika ada sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.
Ya Ya Ya Ya Enkripsi selalu terjadi, tetapi mungkin menggunakan sertifikat server yang ditandatangani sendiri.

Penyedia OLE DB Klien Asli SQL Server

Penyedia SQL Server Native Client OLE DB mendukung enkripsi tanpa validasi melalui penambahan properti inisialisasi sumber data SSPROP_INIT_TRUST_SERVER_CERTIFICATE, yang diimplementasikan dalam kumpulan properti DBPROPSET_SQLSERVERDBINIT. Selain itu, kata kunci string koneksi baru, "TrustServerCertificate", seperti yang telah ditambahkan. Ini menerima nilai ya atau tidak; tidak ada adalah default. Saat menggunakan komponen layanan, ia menerima nilai benar atau salah; false adalah default.

Untuk informasi selengkapnya tentang penyempurnaan yang dilakukan pada kumpulan properti DBPROPSET_SQLSERVERDBINIT, lihat Properti Inisialisasi dan Otorisasi.

Driver ODBC Klien Asli SQL Server

Driver ODBC SQL Server Native Client mendukung enkripsi tanpa validasi melalui penambahan fungsi SQLSetConnectAttr dan SQLGetConnectAttr . SQL_COPT_SS_TRUST_SERVER_CERTIFICATE telah ditambahkan untuk menerima SQL_TRUST_SERVER_CERTIFICATE_YES atau SQL_TRUST_SERVER_CERTIFICATE_NO, dengan SQL_TRUST_SERVER_CERTIFICATE_NO menjadi default. Selain itu, kata kunci string koneksi baru, "TrustServerCertificate", telah ditambahkan. Ini menerima nilai ya atau tidak; "tidak" adalah default.

Lihat Juga

Fitur Klien Asli SQL Server