Utilisation du chiffrement sans validation

SQL Server chiffre toujours les paquets réseau associés à l’ouverture de session. Si aucun certificat n'a été fourni sur le serveur à son démarrage, SQL Server génère un certificat auto-signé qui est utilisé pour chiffrer les paquets d’ouverture de session.

Les applications peuvent également demander le chiffrement de tout le trafic réseau en utilisant des mots clés de chaîne de connexion ou des propriétés de connexion. Ces mots clés sont « Encrypt » pour ODBC et OLE DB en cas d'utilisation d'une chaîne de fournisseur avec IDbInitialize::Initialize ou « Use Encryption for Data » pour ADO et OLE DB en cas d'utilisation d'une chaîne d'initialisation avec IDataInitialize. Le chiffrement de tout le trafic réseau peut également être configuré par le Gestionnaire de configuration SQL Server à l'aide de l'option Forcer le chiffrement du protocole. Par défaut, le chiffrement de tout le trafic réseau pour une connexion requiert la fourniture d'un certificat sur le serveur.

Pour plus d'informations sur les mots clés de chaîne de connexion, consultez Utilisation de mots clés de chaîne de connexion avec SQL Server Native Client.

Pour activer le chiffrement à utiliser lorsqu'aucun certificat n'a été fourni sur le serveur, le Gestionnaire de configuration SQL Server peut être utilisé pour définir les options Forcer le chiffrement du protocole et Faire confiance au certificat de serveur. Dans ce cas, le chiffrement utilise un certificat de serveur auto-signé sans validation si aucun certificat vérifiable n'a été fourni sur le serveur.

Les applications peuvent également utiliser le mot clé « TrustServerCertificat » ou son attribut de connexion associé pour garantir que le chiffrement est réalisé. Les paramètres de l'application ne réduisent jamais le niveau de sécurité défini par le Gestionnaire de configuration du client SQL Server, mais peuvent le renforcer. Par exemple, si Forcer le chiffrement du protocole n'est pas défini pour le client, une application peut demander elle-même le chiffrement. Pour garantir le chiffrement même si aucun certificat de serveur n'a été fourni, une application peut demander le chiffrement et « TrustServerCertificate ». Toutefois, si« TrustServerCertificate » n'est pas activé dans la configuration client, un certificat de serveur fourni est toujours requis. Le tableau ci-dessous décrit l'ensembles des scénarios :

Paramètre client Forcer le chiffrement du protocole

Paramètre client Faire confiance au certificat de serveur

Chaîne de connexion/attribut de connexion Encrypt/Use Encryption for Data

Chaîne de connexion/attribut de connexion Trust Server Certificate

Résultat

Non

N/A

Non (par défaut)

Ignoré

Aucun chiffrement ne se produit.

Non

N/A

Oui

Non (par défaut)

Le chiffrement se produit uniquement s'il existe un certificat de serveur vérifiable ; sinon, la tentative de connexion échoue.

Non

N/A

Oui

Oui

Le chiffrement se produit toujours, mais peut utiliser un certificat de serveur auto-signé.

Oui

Non

Ignoré

Ignoré

Le chiffrement se produit uniquement s'il existe un certificat de serveur vérifiable ; sinon, la tentative de connexion échoue.

Oui

Oui

Non (par défaut)

Ignoré

Le chiffrement se produit toujours, mais peut utiliser un certificat de serveur auto-signé.

Oui

Oui

Oui

Non (par défaut)

Le chiffrement se produit uniquement s'il existe un certificat de serveur vérifiable ; sinon, la tentative de connexion échoue.

Oui

Oui

Oui

Oui

Le chiffrement se produit toujours, mais peut utiliser un certificat de serveur auto-signé.

Fournisseur OLE DB SQL Server Native Client

Le fournisseur OLE DB de SQL Server Native Client prend en charge le chiffrement sans validation par le biais de l'ajout de la propriété d'initialisation de la source de données SSPROP_INIT_TRUST_SERVER_CERTIFICATE, implémentée dans le jeu de propriétés DBPROPSET_SQLSERVERDBINIT. De plus, un nouveau mot clé de chaîne de connexion, « TrustServerCertificate» , a été ajouté. Il accepte les valeurs « yes » ou « no » ; «no » étant la valeur par défaut. Lors de l'utilisation de composants du service, il accepte les valeurs true ou false ; false étant la valeur par défaut.

Pour plus d'informations sur les améliorations apportées au jeu de propriétés DBPROPSET_SQLSERVERDBINIT, consultez Propriétés d'initialisation et d'autorisation.

Pilote ODBC SQL Server Native Client

Le pilote ODBC SQL Server Native Client prend en charge le chiffrement sans validation par le biais d'ajouts aux fonctions SQLSetConnectAttr et SQLGetConnectAttr. SQL_COPT_SS_TRUST_SERVER_CERTIFICATE a été ajouté pour accepter SQL_TRUST_SERVER_CERTIFICATE_YES ou SQL_TRUST_SERVER_CERTIFICATE_NO ; SQL_TRUST_SERVER_CERTIFICATE_NO étant la valeur par défaut. De plus, un nouveau mot clé de chaîne de connexion, « TrustServerCertificate », a été ajouté. Il accepte les valeurs « yes » ou « no » ; «no » étant la valeur par défaut.