Compartir a través de


Cifrar conexiones a SQL Server

SQL Server admite SSL (Capa de sockets seguros) y es compatible con IPSec (Protocolo de seguridad de Internet).

Capa de sockets seguros (SSL)

MicrosoftMicrosoftSQL Server puede utilizar SSL (Capa de sockets seguros) para cifrar los datos transmitidos a través de una red entre una instancia de SQL Server y una aplicación cliente. El cifrado SSL se realiza en la capa del protocolo y está disponible para todos los clientes SQL Server, excepto los clientes DB Library y MDAC 2.53.

Puede utilizar SSL en la validación del servidor cuando una conexión cliente solicita cifrado. Si la instancia de SQL Server se ejecuta en un equipo al que se ha asignado un certificado emitido por una entidad de certificación pública, la identidad del equipo y de la instancia de SQL Server se certifica mediante la cadena de certificados que conducen a la entidad emisora raíz de confianza. Esta validación de servidor requiere que el equipo en el que se ejecuta la aplicación cliente se configure para confiar en la entidad emisora raíz del certificado que utiliza el servidor. En la sección siguiente se describe cómo se puede realizar el cifrado con un certificado autofirmado, aunque este tipo de certificado sólo ofrece protección limitada.

El nivel de cifrado utilizado por SSL, de 40 o 128 bits, depende de la versión del sistema operativo Microsoft Windows que se ejecute en los equipos de la aplicación y de la base de datos.

Al habilitar el cifrado SSL se aumenta la seguridad de los datos que se transmiten a través de redes entre instancias de SQL Server y aplicaciones. No obstante, también reduce el rendimiento. Cuando todo el tráfico entre SQL Server y una aplicación cliente se cifra mediante SSL, es necesario el siguiente procesamiento adicional:

  • Se requiere un ciclo adicional de ida y vuelta de red en el momento de la conexión.

  • La biblioteca de red del cliente debe cifrar los paquetes enviados desde la aplicación a la instancia de SQL Server; la biblioteca de red del servidor debe descifrarlos.

  • La biblioteca de red del servidor debe cifrar los paquetes enviados desde la instancia de SQL Server a la aplicación; la biblioteca de red del cliente debe descifrarlos.

Configurar SSL para SQL Server

El procedimiento siguiente describe cómo configurar SSL para SQL Server.

Para configurar SSL

  1. Instale un certificado en el almacén de certificados de Windows del equipo servidor.

  2. Haga clic en Inicio, en el grupo de programas Microsoft SQL Server seleccione Herramientas de configuración y, finalmente, haga clic en Administrador de configuración de SQL Server.

  3. Expanda Configuración de red de SQL Server, haga clic con el botón secundario en los protocolos para el servidor que desea configurar y, a continuación, elija Propiedades.

    [!NOTA]

    Ésta es la sección Protocolos para<nombre_de_instancia> en el panel izquierdo de la herramienta, no un protocolo concreto en el panel derecho.

  4. En la ficha Certificado configure Database Engine (Motor de base de datos) de manera que use el certificado.

  5. En la ficha Indicadores, vea o especifique la opción de cifrado de protocolos. El paquete de inicio de sesión siempre estará cifrado.

    • Si se establece la opción ForceEncryption de Database Engine (Motor de base de datos) en , todas las comunicaciones cliente/servidor se cifran y se deniega el acceso a los clientes que no pueden admitir el cifrado.

    • Si esta opción se establece en No, la aplicación cliente puede solicitar el cifrado, pero no es obligatorio.

    • Es necesario reiniciar SQL Server después de cambiar la opción ForceEncryption.

    Las credenciales (del paquete de inicio de sesión) que se transmiten cuando una aplicación cliente se conecta a SQL Server se cifran siempre. SQL Server utilizará un certificado de una entidad de certificación de confianza si existe. Si no hay instalado ningún certificado de confianza, SQL Server generará un certificado autofirmado al iniciar la instancia y utilizará el certificado autofirmado para cifrar las credenciales. Este certificado autofirmado contribuye a aumentar la seguridad, pero no proporciona protección contra la suplantación de identidad por el servidor. Si se usa el certificado autofirmado y el valor de la opción ForceEncryption es Yes, todos los datos transmitidos a través de una red entre SQL Server y la aplicación cliente se cifrarán con el certificado autofirmado.

    Nota de advertenciaAdvertencia

    Las conexiones SSL cifradas mediante un certificado autofirmado no proporcionan una gran seguridad. Son susceptibles de ataques de tipo "Man-in-the-middle". No debe confiar en la SSL con certificados autofirmados en un entorno de producción ni en servidores conectados a Internet.

Requisitos de certificado

Para que SQL Server cargue un certificado SSL, el certificado debe cumplir las condiciones siguientes:

  • El certificado debe estar en un almacén de certificados del equipo local o en el almacén de certificados del usuario actual.

  • La hora actual del sistema debe ser posterior al valor de la propiedad Válido desde del certificado y anterior al de su propiedad Válido hasta.

  • El certificado debe estar destinado a la autenticación del servidor. Para ello, es necesario que la propiedad Uso mejorado de claves del certificado especifique Autenticación del servidor (1.3.6.1.5.5.7.3.1).

  • El certificado se debe crear mediante la opción KeySpec de AT_KEYEXCHANGE. Generalmente, la propiedad de uso de clave del certificado (KEY_USAGE) incluye también el cifrado de la clave (CERT_KEY_ENCIPHERMENT_KEY_USAGE).

  • La propiedad Asunto del certificado debe indicar que el nombre común (CN) es el mismo que el nombre del host o nombre de dominio completo (FQDN) del servidor. Si SQL Server se ejecuta en un clúster de conmutación por error, el nombre común debe coincidir con el del host o FQDN del servidor virtual y los certificados deben estar en todos los nodos del clúster de conmutación por error.

Cifrado en un clúster

Si desea utilizar el cifrado con clúster de conmutación por error, debe instalar el certificado del servidor con el nombre DNS completo de la instancia de clúster de conmutación por error en todos los nodos del clúster de conmutación por error. Por ejemplo, si tiene un clúster con dos nodos y el nombre de éstos es test1.your company.com y test2. your company.com y una instancia de un clúster de conmutación por error de SQL Server denominada fcisql, debe obtener un certificado para fcisql.your company.com e instalarlo en los dos nodos. Para configurar el clúster de conmutación por error para el cifrado, puede activar la casilla de verificación ForceEncryption en el cuadro de propiedades de Protocolos de <servidor> de Configuración de red de SQL Server.

Protocolo de seguridad de Internet (IPsec)

Los datos de SQL Server se pueden cifrar durante la transmisión mediante IPSec. Los sistemas operativos del cliente y del servidor proporcionan IPSec, que no requiere configuración de SQL Server. Para obtener más información acerca de IPSec, vea la documentación de Windows o de la red.