Bagikan melalui


TDS 8.0

Berlaku untuk: SQL Server 2022 (16.x) Azure SQL Database Azure SQL Managed Instance

SQL Server 2022 (16.x), Azure SQL Database, dan Azure SQL Managed Instance mendukung Tabular Data Stream (TDS) 8.0.

Protokol Aliran Data Tabular (TDS) adalah protokol lapisan aplikasi yang digunakan oleh klien untuk terhubung ke SQL Server. SQL Server menggunakan Keamanan Lapisan Transportasi (TLS) untuk mengenkripsi data yang dikirimkan di seluruh jaringan antara instans SQL Server dan aplikasi klien.

TDS adalah protokol aman, tetapi dalam versi SQL Server sebelumnya, enkripsi dapat dimatikan atau tidak diaktifkan. Untuk memenuhi standar enkripsi wajib saat menggunakan SQL Server, iterasi protokol TDS diperkenalkan: TDS 8.0.

Jabat tangan TLS sekarang mendahului pesan TDS apa pun, membungkus sesi TDS di TLS untuk memberlakukan enkripsi, membuat TDS 8.0 selaras dengan HTTPS dan protokol web lainnya. Ini secara signifikan berkontribusi pada pengelolaan lalu lintas TDS, karena appliance jaringan standar sekarang dapat memfilter dan melewati kueri SQL dengan aman.

Manfaat lain untuk TDS 8.0 dibandingkan dengan versi TDS sebelumnya adalah kompatibilitas dengan TLS 1.3, dan standar TLS yang akan datang. TDS 8.0 juga sepenuhnya kompatibel dengan TLS 1.2 dan versi TLS sebelumnya.

Cara kerja TDS

Protokol Aliran Data Tabular (TDS) adalah protokol tingkat aplikasi yang digunakan untuk transfer permintaan dan respons antara klien dan sistem server database. Dalam sistem seperti itu, klien biasanya membuat koneksi berumur panjang dengan server. Setelah koneksi dibuat menggunakan protokol tingkat transportasi, pesan TDS digunakan untuk berkomunikasi antara klien dan server.

Selama masa pakai sesi TDS, ada tiga fase:

  • Inisialisasi
  • Autentikasi
  • Pertukaran data

Enkripsi dinegosiasikan selama fase awal, tetapi negosiasi TDS terjadi melalui koneksi yang tidak terenkripsi. Koneksi SQL Server terlihat seperti ini untuk versi sebelumnya ke TDS 8.0:

TCP jabat ➡️ tangan TDS prelogin (cleartext) dan respons (cleartext) ➡️ pertukaran data autentikasi jabat tangan ➡️ TLS (terenkripsi) ➡️ (dapat dienkripsi atau tidak terenkripsi)

Dengan pengenalan TDS 8.0, koneksi SQL Server adalah sebagai berikut:

TCP jabat tangan ➡️ ➡️ TLS pralogin TDS (terenkripsi) dan pertukaran data autentikasi respons (terenkripsi) ➡️ (terenkripsi) ➡️

Enkripsi koneksi yang ketat

Untuk menggunakan TDS 8.0, SQL Server 2022 (16.x) ditambahkan strict sebagai jenis enkripsi koneksi tambahan ke driver SQL Server (Encrypt=strict). Untuk menggunakan strict jenis enkripsi koneksi, unduh versi terbaru driver .NET, ODBC, OLE DB, JDBC, PHP, dan Python.

Untuk mencegah serangan man-in-the-middle dengan strict enkripsi koneksi, pengguna tidak dapat mengatur TrustServerCertificate opsi ke true dan mempercayai sertifikat apa pun yang disediakan server. Sebagai gantinya HostNameInCertificate , pengguna akan menggunakan opsi untuk menentukan sertifikat ServerName yang harus dipercaya. Sertifikat yang disediakan oleh server harus melewati validasi sertifikat.

Fitur yang tidak mendukung memaksa enkripsi yang ketat

Opsi yang Force Strict Encryption ditambahkan dengan TDS 8.0 di Konfigurasi Jaringan SQL Server memaksa semua klien untuk menggunakan strict sebagai jenis enkripsi. Setiap klien atau fitur tanpa strict enkripsi koneksi gagal tersambung ke SQL Server.

Fitur atau alat berikut masih menggunakan versi driver sebelumnya yang tidak mendukung TDS 8.0, dan dengan demikian, mungkin tidak berfungsi dengan strict enkripsi koneksi:

  • Grup Ketersediaan AlwaysOn
  • Instans kluster failover Always On (FCI)
  • Replikasi SQL Server
  • Pengiriman Log
  • Utilitas sqlcmd
  • utilitas bcp
  • Layanan CEIP SQL Server
  • SQL Server Agent
  • Database Mail
  • Server Tertaut
  • Konektor Polybase ke SQL Server

Perubahan tambahan pada properti enkripsi string koneksi

Penambahan berikut ditambahkan ke string koneksi untuk enkripsi:

Kata kunci Default Deskripsi
Mengenkripsi salah Perilaku yang ada
Ketika true, SQL Server menggunakan enkripsi TLS untuk semua data yang dikirim antara klien dan server jika server memiliki sertifikat yang diinstal. Nilai yang dikenali adalah true, , falseyes, dan no. Untuk informasi selengkapnya, lihat Sintaks String Koneksi.

Perubahan perilaku
Ketika diatur ke strict, SQL Server menggunakan TDS 8.0 untuk semua data yang dikirim antara klien dan server.

Saat diatur ke mandatory, , trueatau yes, SQL Server menggunakan TDS 7.x dengan enkripsi TLS/SSL untuk semua data yang dikirim antara klien dan server jika server memiliki sertifikat yang diinstal.

Ketika diatur ke optional, false, atau no, koneksi menggunakan TDS 7.x dan akan dienkripsi hanya jika diperlukan oleh SQL Server.
TrustServerCertificate salah Perilaku yang ada
Atur ke true untuk menentukan bahwa driver tidak memvalidasi sertifikat TLS/SSL server. Jika true, sertifikat TLS/SSL server secara otomatis dipercaya ketika lapisan komunikasi dienkripsi menggunakan TLS.

Jika false, driver memvalidasi sertifikat TLS/SSL server. Jika validasi sertifikat server gagal, driver akan menimbulkan kesalahan dan menutup koneksi. Nilai defaultnya adalah false. Pastikan nilai yang diteruskan agar serverName sama persis dengan Common Name (CN) nama atau DNS dalam Subject Alternate Name sertifikat server agar koneksi TLS/SSL berhasil.

Perubahan perilaku untuk Microsoft ODBC Driver 18 untuk SQL Server
Jika Encrypt diatur ke strict, pengaturan ini menentukan lokasi sertifikat yang akan digunakan untuk validasi sertifikat server (sama persis). Driver mendukung ekstensi file PEM, DER, dan CER.

Jika Enkripsi diatur ke true atau , dan TrustServerCertificate properti tidak ditentukan atau diatur ke null, , trueatau false, driver menggunakan ServerName nilai properti pada URL koneksi sebagai nama host untuk memvalidasi sertifikat SQL Server TLS/falseSSL.
HostNameInCertificate nihil Nama host yang akan digunakan dalam memvalidasi sertifikat SQL Server TLS/SSL. Jika properti HostNameInCertificate tidak ditentukan atau diatur ke null, driver menggunakan ServerName nilai properti sebagai nama host untuk memvalidasi sertifikat SQL Server TLS/SSL.