Seguridad en el transporte para la creación del reflejo de una base de datos

La seguridad en el transporte de SQL Server 2005 y versiones posteriores implica autenticación y, opcionalmente, cifrado de los mensajes intercambiados entre las bases de datos.

Para la creación del reflejo de la base de datos, la autenticación y el cifrado se configuran en el extremo. Para obtener una introducción a los extremos de reflejo, vea Extremo de creación de reflejo de la base de datos.

Autenticación

Autenticación es el proceso de comprobar que un usuario es quien dice ser. Las conexiones entre extremos de reflejo de base de datos requieren autenticación. Las solicitudes de conexión desde un asociado o testigo, según corresponda, deben autenticarse.

El tipo de autenticación que utilice la instancia de servidor es una propiedad del extremo de reflejo de la base de datos. Existen dos tipos de seguridad de transporte disponibles para la creación de reflejo de la base de datos: autenticación de Windows y autenticación basada en certificados.

La Autenticación de Windows admite dos protocolos de autenticación: NT LAN Manager (NTLM) y Kerberos. Se puede configurar un extremo de reflejo de base de datos para utilizar sólo un protocolo o para negociar entre ellos. De forma predeterminada, se utiliza la negociación. El valor predeterminado, NEGOTIATE, provoca que el extremo utilice el protocolo de negociación de Windows para elegir entre NTLM o Kerberos. Si se especifica un método de autorización determinado (NTLM o Kerberos) en un extremo, éste sólo puede utilizar dicho método. Si el extremo opuesto se configura para utilizar sólo el otro método, los extremos no se pueden conectar entre sí. Para obtener más información acerca de estos métodos, vea Tipos de autenticación de extremos.

[!NOTA]

Para obtener información sobre este extremo, vea Extremo de creación de reflejo de la base de datos.

Una conexión de creación de reflejo de la base de datos utiliza autenticación de Windows (la Interfaz proveedora de funcionalidad de seguridad (SSPI)) o la autenticación basada en certificados.

Autenticación de Windows

En la autenticación de Windows, cada instancia de servidor inicia sesión en el otro lado mediante las credenciales de Windows de la cuenta de usuario de Windows en la que se ejecuta el proceso. Por este motivo, la autenticación de Windows requiere que los servicios de SQL Server se ejecuten como usuarios de dominio en dominios de confianza o como servicios de red.

Para autenticar los dos extremos de una conexión, la autenticación de Windows utiliza las credenciales de la cuenta de usuario de Windows en la que se ejecutan las instancias de SQL Server. Por lo tanto, la cuenta de usuario de cada instancia de servidor debe disponer de los permisos necesarios para iniciar sesión y enviar mensajes a cada una de las demás instancias de servidor.

Para obtener un ejemplo de configuración de una sesión de creación de reflejo de la base de datos mediante la autenticación de Windows, vea Ejemplo: Configurar la creación de reflejo de la base de datos mediante la autenticación de Windows (Transact-SQL).

Certificados

En ciertas situaciones, como cuando las instancias de servidor no están en dominios de confianza o cuando SQL Server se ejecuta como servicio local, la autenticación de Windows no está disponible. En estos casos, en lugar de credenciales de usuario, se requieren certificados para autenticar solicitudes de conexión. El extremo de creación de reflejo de cada instancia de servidor debe configurarse con su propio certificado creado localmente.

El método de cifrado se establece al crear el certificado. Para obtener más información, vea Cómo permitir que la creación de reflejo de la base de datos utilice certificados para las conexiones salientes (Transact-SQL). Administre con cuidado los certificados que utilice.

Una instancia de servidor utiliza la clave privada de su propio certificado para establecer su identidad al establecer una conexión. La instancia de servidor que recibe la solicitud de conexión utiliza la clave pública del certificado del remitente para autenticar la identidad de éste. Por ejemplo, imagine dos instancias de servidor, Servidor_A y Servidor_B. Servidor_A utiliza su clave privada para cifrar el encabezado de la conexión antes de enviar una solicitud de conexión a Servidor_B. Servidor_B utiliza la clave pública del certificado de Servidor_A para descifrar el encabezado de la conexión. Si el encabezado descifrado es correcto, Servidor_B sabe que el encabezado fue cifrado por Servidor_A y la conexión se autentica. Si el encabezado descifrado es incorrecto, Servidor_B sabe que la solicitud de conexión no es auténtica y rechaza la conexión.

Nota de seguridadNota de seguridad

Instale sólo certificados de orígenes de confianza.

No hay ningún método automatizado para configurar la seguridad de creación de reflejo de la base de datos mediante certificados. Es necesario el uso de Transact-SQL. Para obtener un ejemplo de uso de la autenticación basada en certificados para la configuración de una sesión de creación de reflejo de la base de datos, vea Ejemplo: configurar la creación de reflejo de la base de datos mediante certificados (Transact-SQL).

Cifrado de datos

De manera predeterminada, un extremo de creación de reflejo de la base de datos requiere el cifrado de datos enviados en conexiones de creación de reflejo. En este caso, sólo se puede conectar el extremo a extremos que también utilicen cifrado. A menos que pueda garantizar que su red es segura, se recomienda requerir cifrado para las conexiones de creación de reflejo de la base de datos. Sin embargo, puede deshabilitar el cifrado o hacerlo compatible, pero no obligatorio. Si se deshabilita el cifrado, los datos no se cifran nunca y el extremo no se puede conectar a otro extremo que requiera cifrado. Si se admite cifrado, los datos sólo se cifran si el extremo opuesto admite o requiere cifrado.

[!NOTA]

Los extremos de creación de reflejo creados mediante SQL Server Management Studio se crean con cifrado obligatorio o deshabilitado. Para cambiar la configuración de cifrado a SUPPORTED, utilice la instrucción ALTER ENDPOINT Transact-SQL. Para obtener más información, vea ALTER ENDPOINT (Transact-SQL).

De manera opcional, puede controlar los algoritmos de cifrado que utiliza un extremo si especifica uno de los siguientes valores para la opción ALGORITHM en un instrucción CREATE ENDPOINT o ALTER ENDPOINT:

Valor ALGORITHM

Descripción

RC4

Especifica que el extremo debe utilizar el algoritmo RC4. Éste es el valor predeterminado.

AES

Especifica que el extremo debe utilizar el algoritmo AES.

AES RC4

Especifica que los dos extremos negociarán un algoritmo de cifrado con este extremo, dando preferencia al algoritmo AES.

RC4 AES

Especifica que los dos extremos negociarán un algoritmo de cifrado con este extremo, dando preferencia al algoritmo RC4.

Si los extremos de conexión especifican estos dos algoritmos en distintas órdenes, el extremo que acepte la conexión gana.

[!NOTA]

Aunque es notablemente más rápido que AES, RC4 es un algoritmo relativamente débil, mientras que AES es un algoritmo relativamente fuerte. Por tanto, se recomienda utilizar el algoritmo AES.

Para obtener más información acerca de la sintaxis de Transact-SQL para especificar el cifrado, vea CREATE ENDPOINT (Transact-SQL).