Resumen del cifrado de cliente y SQL Server
En este artículo se proporciona un resumen de varios escenarios y procedimientos asociados para habilitar el cifrado en SQL Server y se explica cómo comprobar que el cifrado funciona.
Cifrado de todas las conexiones al servidor (cifrado del lado servidor)
Tipo de certificado | Forzar el cifrado en las propiedades del servidor | Importar el certificado de servidor en cada cliente | Opción Confiar en el certificado del servidor | Propiedad de cifrado de la cadena de conexión | Comentarios |
---|---|---|---|---|---|
Certificado autofirmado creado automáticamente por SQL Server | Sí | No se puede hacer | Sí | Omitido | SQL Server 2016 (13.x) y las versiones anteriores usan el algoritmo SHA1. SQL Server 2017 (14.x) y las versiones posteriores usan SHA256. Para obtener más información, consulte Cambios en el algoritmo hash para el certificado autofirmado en SQL Server 2017. No se recomienda este enfoque para su uso en producción. |
Certificado autofirmado creado mediante New-SelfSignedCertificate o makecert, opción 1 | Sí | No | Sí | Omitido | No se recomienda este enfoque para su uso en producción. |
Certificado autofirmado creado mediante New-SelfSignedCertificate o makecert, opción 2 | Sí | Sí | Opcional | Omitido | No se recomienda este enfoque para su uso en producción. |
Servidor de certificados de la empresa o de una entidad de certificación (CA) que no está en la Lista de participantes: Programa de certificados raíz de confianza de Microsoft, opción 1 | Sí | No | Sí | Omitido | |
Servidor de certificados de la empresa o de una entidad de certificación (CA) que no está en la Lista de participantes: Programa de certificados raíz de confianza de Microsoft, opción 2 | Sí | Sí | Opcional | Omitido | |
Entidades raíz de confianza | Sí | No | Opcional | Omitido | Se recomienda esta estrategia. |
Cifrado de conexiones desde un cliente específico
Tipo de certificado | Forzar el cifrado en las propiedades del servidor | Importar el certificado de servidor en cada cliente | Especificar la opción Confiar en el certificado del servidor en el cliente | Especificar manualmente la propiedad de cifrado en Sí/True en el lado cliente | Comentarios |
---|---|---|---|---|---|
Certificado autofirmado creado automáticamente por SQL Server | Sí | No se puede hacer | Sí | Omitido | SQL Server 2016 (13.x) y las versiones anteriores usan el algoritmo SHA1. SQL Server 2017 (14.x) y las versiones posteriores usan SHA256. Para obtener más información, consulte Cambios en el algoritmo hash para el certificado autofirmado en SQL Server 2017. No se recomienda este enfoque para su uso en producción. |
Certificado autofirmado creado mediante New-SelfSignedCertificate o makecert, opción 1 | No | No | Sí | Sí | No se recomienda este enfoque para su uso en producción. |
Certificado autofirmado creado mediante New-SelfSignedCertificate o makecert, opción 2 | No | Sí | Opcionales | Sí | No se recomienda este enfoque para su uso en producción. |
Servidor de certificados de la empresa o de una CA que no está en la Lista de participantes: Programa de certificados raíz de confianza de Microsoft, opción 1 | No | No | Sí | Sí | |
Servidor de certificados de la empresa o de una CA que no está en la Lista de participantes: Programa de certificados raíz de confianza de Microsoft, opción 2 | No | Sí | Opcionales | Sí | |
Entidades raíz de confianza | No | No | Opcionales | Sí | Se recomienda esta estrategia. |
¿Cómo saber si el cifrado funciona?
Puede supervisar la comunicación mediante una herramienta como el Monitor de red de Microsoft o un analizador de protocolos (sniffer) de red y comprobar los detalles de los paquetes capturados en la herramienta para confirmar que el tráfico está cifrado.
Como alternativa, puede comprobar el estado de cifrado de las conexiones de SQL Server mediante los comandos de Transact-SQL (T-SQL). Para ello, realice los pasos siguientes:
- Abra una nueva ventana de consulta en SQL Server Management Studio (SSMS) y conéctese a la instancia de SQL Server.
- Ejecute el siguiente comando T-SQL para comprobar el valor de la columna
encrypt_option
. Para las conexiones cifradas, el valor seráTRUE
.
SELECT * FROM sys.dm_exec_connections