Compartir a través de


Utilizar el cifrado sin validación

SQL Server cifra siempre los paquetes de red asociados al inicio de sesión. Si no se ha aprovisionado ningún certificado en el servidor cuando se inicia, SQL Server genera un certificado autofirmado que se usa para cifrar los paquetes de inicio de sesión.

Las aplicaciones pueden solicitar también el cifrado de todo el tráfico de red mediante palabras clave de cadenas de conexión o propiedades de conexión. Las palabras clave son "Encrypt" para ODBC y OLE DB cuando se usa una cadena de proveedor con IDbInitialize::Initialize o "Usar cifrado para datos" para ADO y OLE DB cuando se usa una cadena de inicialización con IDataInitialize. Esto también se puede configurar mediante Administrador de configuración de SQL Server mediante la opción Forzar cifrado de protocolo. De forma predeterminada, el cifrado de todo el tráfico de red de una conexión requiere que se proporcione un certificado en el servidor.

Para obtener información sobre las palabras clave de la cadena de conexión, consulte Uso de palabras clave de cadena de conexión con SQL Server Native Client.

Para habilitar el cifrado que se usará cuando no se ha aprovisionado un certificado en el servidor, se puede usar Administrador de configuración de SQL Server para establecer las opciones Forzar cifrado de protocolo y Certificado de servidor de confianza. En ese caso, el cifrado utilizará un certificado de servidor autofirmado sin validación si no se ha proporcionado ningún certificado comprobable en el servidor.

Las aplicaciones también pueden utilizar la palabra clave "TrustServerCertificate" o su atributo de conexión asociado para garantizar que se realiza el cifrado. La configuración de las aplicaciones nunca reduce el nivel de seguridad establecido por el Administrador de configuración cliente de SQL Server, pero sí puede reforzarlo. Por ejemplo, si Forzar cifrado de protocolo no está establecido para el cliente, una aplicación puede solicitar su propio cifrado. Para garantizar el cifrado incluso cuando no se ha proporcionado un certificado de servidor, una aplicación puede solicitar el cifrado y "TrustServerCertificate". Sin embargo, si "TrustServerCertificate" no está habilitado en la configuración del cliente, se requiere igualmente un certificado de servidor. En la tabla siguiente se describen todos los casos:

Cliente configurado con Forzar cifrado de protocolo Cliente configurado con Confiar en certificado de servidor Cadena/atributo de conexión Encrypt/Use Encryption for Data Cadena/atributo de conexión Trust Server Certificate Resultado
No N/D No (valor predeterminado) Omitido No se produce el cifrado.
No N/D No (valor predeterminado) El cifrado solamente se produce si hay un certificado de servidor comprobable; de lo contrario, se produce un error en el intento de conexión.
No N/D El cifrado se produce siempre, pero puede que se utilice un certificado de servidor autofirmado.
No Omitido Omitido El cifrado solamente se produce si hay un certificado de servidor comprobable; de lo contrario, se produce un error en el intento de conexión.
No (valor predeterminado) Omitido El cifrado se produce siempre, pero puede que se utilice un certificado de servidor autofirmado.
No (valor predeterminado) El cifrado solamente se produce si hay un certificado de servidor comprobable; de lo contrario, se produce un error en el intento de conexión.
El cifrado se produce siempre, pero es posible que se use un certificado de servidor autofirmado.

Proveedor OLE DB de SQL Server Native Client

El proveedor OLE DB de SQL Server Native Client admite el cifrado sin validación mediante la adición de la propiedad de inicialización del origen de datos SSPROP_INIT_TRUST_SERVER_CERTIFICATE, que se implementa en el conjunto de propiedades DBPROPSET_SQLSERVERDBINIT. Además, se ha agregado una nueva palabra clave de cadena de conexión, "TrustServerCertificate". Acepta valores sí o no; no es el valor predeterminado. Cuando se utilizan componentes de servicio, acepta valores true o false; false es el valor predeterminado.

Para más información sobre las mejoras realizadas en el conjunto de propiedades DBPROPSET_SQLSERVERDBINIT, consulte Propiedades de inicialización y autorización.

Controlador ODBC de SQL Server Native Client

El controlador ODBC de SQL Server Native Client admite el cifrado sin validación mediante adiciones a las funciones SQLSetConnectAttr y SQLGetConnectAttr. SQL_COPT_SS_TRUST_SERVER_CERTIFICATE se ha agregado para aceptar SQL_TRUST_SERVER_CERTIFICATE_YES o SQL_TRUST_SERVER_CERTIFICATE_NO, siendo SQL_TRUST_SERVER_CERTIFICATE_NO el valor predeterminado. Además, se ha agregado una nueva palabra clave de cadena de conexión, "TrustServerCertificate". Acepta valores sí o no; "no" es el valor predeterminado.

Consulte también

Características de SQL Server Native Client