Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
SQL Server versleutelt altijd netwerkpakketten die zijn gekoppeld aan het aanmelden. Als er geen certificaat is ingericht op de server wanneer het wordt gestart, genereert SQL Server een zelfondertekend certificaat, dat wordt gebruikt voor het versleutelen van aanmeldingspakketten.
Op hoog niveau zorgt versleuteling tussen een client en server ervoor dat gegevens alleen door de client en server kunnen worden gelezen. Een belangrijk onderdeel van het versleutelingsproces is validatie van servercertificaten. Met servercertificaatvalidatie kan de client controleren of de server de server is die aangeeft dat het is. Het certificaat wordt gevalideerd voor zaken als vervaldatum, vertrouwensketen en dat de naam in het certificaat overeenkomt met de naam van de server waarmee de client verbinding maakt. Zie Transport Layer Security en digitale certificaten voor meer informatie.
Het wordt ten zeerste aanbevolen om een verifieerbaar certificaat in te richten op SQL Server voor beveiligde connectiviteit. Tls (Transport Security Layer) kan alleen veilig worden gemaakt met certificaatvalidatie.
Toepassingen kunnen versleuteling van al het netwerkverkeer aanvragen met behulp van het trefwoord of de Encrypt verbindingsreekseigenschap. Standaard is voor versleuteling van al het netwerkverkeer voor een verbinding een certificaat vereist dat op de server wordt ingericht. Door uw client in te stellen om het certificaat op de server te vertrouwen, kunt u kwetsbaar worden voor man-in-the-middle-aanvallen. Als u een verifieerbaar certificaat op de server implementeert, moet u ervoor zorgen dat de clientinstellingen Encrypt zijn en de Trust Server Certificate-instellingen False zijn.
Als u versleuteling wilt inschakelen voor gebruik wanneer een certificaat niet is ingericht op de server, kunnen de Encrypt en Trust Server Certificate clientinstellingen worden gebruikt. In dit geval gebruikt versleuteling een zelfondertekend servercertificaat zonder validatie door de client. Deze configuratie versleutelt de verbinding, maar voorkomt niet dat apparaten tussen de client en de server de verbinding onderscheppen en de versleuteling proxyen.
Wijzigingen in versleutelings- en certificaatvalidatiegedrag
Versie 4.0 van Microsoft.Data.SqlClient introduceert belangrijke wijzigingen in de versleutelingsinstellingen.
Encrypt wordt nu standaard ingesteld op True.
Versie 2.0 van Microsoft.Data.SqlClient introduceert belangrijke wijzigingen in het gedrag van de Trust Server Certificate instelling. Als Encrypt eerder was ingesteld op False, werd het servercertificaat niet gevalideerd, ongeacht de instelling van Trust Server Certificate. Nu wordt het servercertificaat gevalideerd op basis van de Trust Server Certificate instelling als de server versleuteling dwingt, zelfs als Encrypt deze is ingesteld op False.
Versie 4.0
In de volgende tabel worden de versleutelings- en validatieresultaten voor versleutelings- en certificaatinstellingen beschreven:
Encrypt clientinstelling |
Trust Server Certificate clientinstelling |
Force encryption serverinstelling |
Resultaat |
|---|---|---|---|
| Onwaar | Onwaar (standaard) | Nee. | Versleuteling vindt alleen plaats voor LOGIN-pakketten. Het certificaat is niet gevalideerd. |
| Onwaar | Onwaar (standaard) | Yes | (Gedragswijziging van versie 1.0 in 2.0) Versleuteling van al het netwerkverkeer vindt alleen plaats als er een verifieerbaar servercertificaat is, anders mislukt de verbindingspoging. |
| Onwaar | Klopt | Yes | Versleuteling van al het netwerkverkeer vindt plaats en het certificaat wordt niet gevalideerd. |
| Waar (nieuwe standaardinstelling) | Onwaar (standaard) | N/A | Versleuteling van al het netwerkverkeer vindt alleen plaats als er een verifieerbaar servercertificaat is, anders mislukt de verbindingspoging. |
| Waar (nieuwe standaardinstelling) | Klopt | N/A | Versleuteling van al het netwerkverkeer vindt plaats, maar het certificaat wordt niet gevalideerd. |
| Strikt (toegevoegd in versie 5.0) | N/A | N/A | Versleuteling van al het netwerkverkeer vindt alleen plaats met TDS 8.0 als er een verifieerbaar servercertificaat is, anders mislukt de verbindingspoging. |
Waarschuwing
De voorgaande tabel bevat alleen een handleiding over het systeemgedrag onder verschillende configuraties. Voor beveiligde connectiviteit moet u ervoor zorgen dat de client en server beide versleuteling vereisen. Zorg er ook voor dat de server een verifieerbaar certificaat heeft en dat de TrustServerCertificate instelling op de client is ingesteld op False.
Vanaf versie 5.0 van Microsoft.Data.SqlClient HostNameInCertificate is een nieuwe verbindingsoptie. Validatie van servercertificaat zorgt ervoor dat de algemene naam (CN) of alternatieve onderwerpnaam (SAN) in het certificaat overeenkomt met de servernaam waarmee verbinding wordt gemaakt. In sommige gevallen komt de servernaam, zoals DNS-aliassen, mogelijk niet overeen met de CN of SAN. De HostNameInCertificate waarde kan worden gebruikt om een andere, verwachte CN of SAN op te geven in het servercertificaat.
Versie 2.0
Vanaf versie 2.0, wanneer de server versleuteling dwingt, valideert de client het servercertificaat op basis van de Trust Server Certificate instelling, ongeacht de Encrypt instelling.
In de volgende tabel worden de versleutelings- en validatieresultaten voor versleutelings- en certificaatinstellingen beschreven:
Encrypt clientinstelling |
Trust Server Certificate clientinstelling |
Force encryption serverinstelling |
Resultaat |
|---|---|---|---|
| Onwaar (standaard) | Onwaar (standaard) | Nee. | Versleuteling vindt alleen plaats voor LOGIN-pakketten. Het certificaat is niet gevalideerd. |
| Onwaar (standaard) | Onwaar (standaard) | Yes | (Gedragswijziging) Versleuteling van al het netwerkverkeer vindt alleen plaats als er een verifieerbaar servercertificaat is, anders mislukt de verbindingspoging. |
| Onwaar (standaard) | Klopt | Yes | Versleuteling van al het netwerkverkeer vindt plaats en het certificaat wordt niet gevalideerd. |
| Klopt | Onwaar (standaard) | N/A | Versleuteling van al het netwerkverkeer vindt alleen plaats als er een verifieerbaar servercertificaat is, anders mislukt de verbindingspoging. |
| Klopt | Klopt | N/A | Versleuteling van al het netwerkverkeer vindt plaats, maar het certificaat wordt niet gevalideerd. |
Waarschuwing
De voorgaande tabel bevat alleen een handleiding over het systeemgedrag onder verschillende configuraties. Voor beveiligde connectiviteit moet u ervoor zorgen dat de client en server beide versleuteling vereisen. Zorg er ook voor dat de server een verifieerbaar certificaat heeft en dat de TrustServerCertificate instelling op de client is ingesteld op False.
Versie 1.0
In de volgende tabel worden de versleutelings- en validatieresultaten voor versleutelings- en certificaatinstellingen beschreven:
Encrypt clientinstelling |
Trust Server Certificate clientinstelling |
Force encryption serverinstelling |
Resultaat |
|---|---|---|---|
| Onwaar (standaard) | Onwaar (standaard) | Nee. | Versleuteling vindt alleen plaats voor LOGIN-pakketten. Het certificaat is niet gevalideerd. |
| Onwaar (standaard) | Onwaar (standaard) | Yes | Versleuteling van al het netwerkverkeer vindt plaats, maar het certificaat wordt niet gevalideerd. |
| Onwaar (standaard) | Klopt | Yes | Versleuteling van al het netwerkverkeer vindt plaats en het certificaat wordt niet gevalideerd. |
| Klopt | Onwaar (standaard) | N/A | Versleuteling van al het netwerkverkeer vindt alleen plaats als er een verifieerbaar servercertificaat is, anders mislukt de verbindingspoging. |
| Klopt | Klopt | N/A | Versleuteling van al het netwerkverkeer vindt plaats, maar het certificaat wordt niet gevalideerd. |