2009-05-25 17 views

Respuesta

25

Se podría utilizar algo como Wireshark para ver los paquetes en que están transmitidos por la red

+0

+1 Esta es una gran herramienta para eso. – BenAlabaster

+1

+1, adiós a mi respuesta tardía. – karim79

+1

Otro +1 para Wireshark. Esto es exactamente lo que uso para demostrarlo a los clientes cuando preguntan si algo es seguro. –

6

Me gustaría establecer el Forzar cifrado de protocolo de Certificado verdad y la confianza del servidor de cierto en la cadena de conexión db. El servidor no debe establecer una conexión si no puede proporcionarle una conexión cifrada según lo solicitado. Hay un article que cubre el cifrado con SQL Server 2005 y posterior.

La prueba simple es intentar una conexión con y sin cifrado y falla cuando entrega el tipo de conexión no deseado. luego depende del DBA, IT o usted configurar el servidor para que coincida con sus requisitos.

+2

+1 por tu respuesta. Contrariamente a la opción wireshark, la elaboración de una prueba para probar que la conexión no encriptada será rechazada también ayuda a demostrar que los requisitos de seguridad de la aplicación no pueden degradarse simplemente cambiando la configuración en el lado del servidor de la base de datos. –

+2

Seguridad integrada significa que está utilizando NTLM o autenticación Kerberos; no significa que tu tráfico esté encriptado. – Andomar

+0

@andomar está correcto --- Tengo entendido que los creds (independientemente del modo integrado o mixto) se cifrarán --- es el resto del tráfico en el que estoy pensando. –

11

Marque la columna encrypt_option del sys.dm_exec_connections DMV. De esta forma, no solo podrá demostrar que está encriptado, sino que también puede validar su aplicación en el momento del inicio. Para aplicar el cifrado, siga los métodos que se describen en este MSDN How To: Enable Encrypted Connections to the Database Engine. Si el cliente o el servidor fuerzan el cifrado y se proporciona un certificado y el cliente acepta el certificado del servidor, la conexión será encriptada. Para validar que el tráfico está encriptado, puede usar la herramienta incorporada netmon.exe (debe instalarse desde los componentes del sistema ad/remove), descargue la Microsoft Network Monitor 3.2 mejorada u otras herramientas de terceros.

Como alternativa, el sitio de implementación puede aplicar el cifrado IPSec.

+1

+1 para la opción encrypt_option como una simple comprobación rápida. Como un trazador de líneas de copiar y pegar, use: 'SELECT encrypt_option FROM sys.dm_exec_connections WHERE session_id = @@ SPID'. No demuestra que su aplicación implementada está usando encriptación, por supuesto, pero confirma el SQL Server _can_. – hlascelles

+0

@hlascelles: 'encrypt_option' es un valor posterior al hecho. Si dice que está encriptado, significa que la aplicación * usa * el tráfico cifrado. En esa sesión, al menos (por lo general en todos los demás también). –

+0

Estás en lo cierto. Lo siento, ya venía desde un punto de vista administrativo: probar una implementación de SQL Server desde una estación de trabajo (por ejemplo, verificar certificados). Como dice @Remus, agregue la línea anterior a su código implementado para una verificación en tiempo de ejecución (utilizando la cláusula WHERE para asegurarse de que sea su conexión real). – hlascelles

0

Para garantizar que se utiliza el cifrado, necesita enable the force encryption option en el servidor.

El cifrado del lado del cliente no es obligatorio. El lado del servidor es obligatorio.

Cuando se inicia el servicio de SQL Server, se detendrá si no puede leer el certificado o si existen otros obstáculos. No aceptará conexiones no cifradas.

Para responder, utilicé un sniffer de paquetes el primero que utilicé el cifrado para verificarlo, luego me basé en el hecho de que el cifrado del lado del servidor es obligatorio y SQL no se iniciará.

For SQL 2000, KB 276553

Tenga en cuenta que no existe una limitación actual SQL Server si se habilita cifrado en el servidor. La encriptación será para todas las conexiones entrantes. Si habilita el cifrado en el equipo cliente , todas las conexiones salientes de ese cliente tratar para hacer una conexión cifrada a cualquier SQL servidor.

A KB search for SQL 2005

Late edición:

utilizar una versión anterior del cliente MS JDBC: no puede manejar el cifrado del lado del servidor ...

+0

Al "tiene que habilitar el cifrado en el servidor", ¿quiere decir "tiene que habilitar la configuración de requerir conexiones de cifrado en el servidor"? Si esa configuración no se establece en verdadero, el servidor permitirá las conexiones no encriptadas y las de inicio de sesión único de encriptación. –

+0

@BenGribaudo Una vez que la casilla de verificación está habilitada en la Configuración del servidor SQL, el servidor acepta solo conexiones encriptadas. La encriptación del lado del servidor es obligatoria cuando esto está marcado. Todos mis servidores tienen esto. – gbn

1

Hay otra herramienta muy subestimada de la propia Microsoft: 'Microsoft Network Monitor'. Básicamente, esto es muy similar a wireshark, con la excepción de que algunos protocolos específicos de MS tienen un mejor analizador y soporte de visualización que wireshark y obviamente solo funcionaría bajo Windows ;-).

La herramienta es bastante antigua y parece abandonada (hasta ahora no se ha visto una versión más reciente) pero aún hace un buen trabajo y la gramática para definir nuevos protocolos es bastante clara e interesante, así que todavía posee mucha potencia para el futuro. mnm 3.4 about dialog

Análisis Ejemplo - grabación se filtra para TDS - por lo que los otros paquetes se discared principalmente:

Example Session for TDS (MSSQL)

Esto también es cierto para las conexiones de servidor SQL. El MNM incluso puede visualizar los resultados yendo por el cable - bastante limpio. No obstante, wireshark, como se menciona anteriormente, sería suficiente para validar el cifrado y los certificados aplicados en el propio cable. Significa que puede entender el TDS-Protocoll por completo.

Manejo TLS

también con una extensión (llamados expertos) 'NmDecrypt' y los certificados de derecho (incluyendo las claves privadas) - es posible descifrar protocolls - bastante agradable para TDS que utiliza TLS INTERIOR de TDS - no es de extrañar - nadie ha implementado realmente que aún como un protocol totalmente compatible para Wireshark;)

Enlaces para las herramientas:

Cuestiones relacionadas