¿Es necesario usar SSL para MySQL?

1

Tengo un servidor web MySQL y Apache (ambos están instalados en la misma máquina). Los usuarios interactuarán con él mediante una aplicación VB.NET y la web. El servidor es accesible por Internet.

Aplicación VB.NET: completan los campos y envían la información a la base de datos. Web: Los usuarios pueden ver la información de cualquier usuario enviado. La página web simplemente muestra la base de datos en formato de tabla.

La información no es muy importante, solo son estadísticas / puntos de referencia (especialmente porque cualquier persona en el mundo puede verla). Lo pregunto porque es la primera vez que implemento algo SQL. ¿Es realmente necesario habilitar SSL?

    
pregunta Tyler Montney 09.06.2015 - 05:25
fuente

2 respuestas

3

Básicamente, respondiste tu propia pregunta afirmando que cualquier persona en el mundo puede leer esta información. Esto me hace creer que no es necesario.

Sin embargo, desde un punto de vista de seguridad, siempre se recomienda utilizar las mejores prácticas, es decir, usar la protección de la capa de transporte.

Clientes basados en web

Dado que el servidor web y el servidor de base de datos se ejecutan en la misma máquina, las conexiones a la base de datos deben realizarse a 127.0.0.1:3306, ya que los ataques de MiTM no son posibles. Sin embargo, los usuarios privilegiados (no de base de datos) en el servidor podrían capturar este tráfico

Clientes de VB

Lo más probable es que estos clientes específicos se conecten directamente a su servidor MySQL. Si este es el caso, los clientes envían sus credenciales a través de una capa de transporte no segura.

Si el Cliente VB utiliza los formularios web del servidor web, la declaración anterior no se aplica y lo mismo se aplica aquí para los clientes basados en web.

Consideraciones & Recomendaciones

En caso de que sus clientes de VB se conecten directamente a su base de datos a través de Internet, se recomienda utilizar la protección de la capa de transporte [1].

Considere si puede almacenar datos más confidenciales en el futuro. Prepárate para el futuro.

Un día, alguien podría tener esta "idea brillante" diciendo: "Vamos a crear un formulario adicional donde los usuarios deben almacenar sus detalles", donde debe almacenar sus nombres, direcciones, direcciones de correo electrónico y direcciones IP, por ejemplo. .

[1] Intento evitar el uso del término SSL debido a las fallas más recientes.

    
respondido por el Jeroen - IT Nerdbox 09.06.2015 - 06:01
fuente
3
  

Tengo un servidor web MySQL y Apache (ambos están instalados en la misma máquina). Los usuarios interactuarán con él mediante una aplicación VB.NET y la web. El servidor es accesible por internet.
  ...
  La información no es muy importante, solo son estadísticas / puntos de referencia (especialmente porque cualquier persona en el mundo tiene permiso para verla)

Estas dos afirmaciones parecen contradecirse entre sí. Por un lado, tanto MySQL como Apache están en el mismo host, pero "cualquier persona en el mundo puede verlo". Supongo que se refiere a la salida de datos de su aplicación web.

Si la primera afirmación es verdadera y tanto su servidor web Apache como su servidor de base de datos MySQL existen en la misma máquina, no hay ningún beneficio en agregar SSL, como lo menciona Raniz en su respuesta. Sin embargo, si existen en diferentes máquinas o si accede a MySQL de forma remota , debe habilitar SSL.

Lo importante aquí es modelar contra qué lo protege SSL, que es principalmente el robo de contraseñas. Si se conecta a un servidor MySQL a través de Internet sin usar SSL, cualquier persona que tenga la suerte de sentarse entre usted y su destino final (el servidor MySQL) puede extraer fácilmente su nombre de usuario y contraseña para MySQL. Luego pueden hacer lo que quieran con las credenciales de usuario que hayan extraído.

Parece que no está preocupado por esta posibilidad al decir "la información no es muy importante", pero probablemente debería preocuparse por esta posibilidad. ¿Qué pasa si un atacante eliminó todo de la base de datos? ¿O inyectó sutilmente datos erróneos y destruyó la credibilidad de su sitio? ¿Qué pasaría si pudieran usar un exploit en SQL para obtener un shell en su máquina?

Sin embargo, si como usted dice que su servidor MySQL vive y se accede solo localmente (nunca a través de WAN), no necesita SSL. Si es público o alguna vez comparte datos a través de una red insegura, use SSL.

Una alternativa al uso de MySQL sobre SSL es usar el reenvío de puertos SSH siempre que necesite acceder a MySQL de forma remota.

ssh -L 3306:localhost:3306 myhost.com

Esto reenviará todo el tráfico al puerto local 3306 a través de SSH al puerto local 3306 de myhost.com. Esto asegura sus credenciales a la vez que permite el acceso.

SSL en general no es lo más fácil de configurar y MySQL no es una excepción. Sin embargo, si necesita servicios para acceder a MySQL a través de la red, SSL tiene un propósito muy necesario.

    
respondido por el Naftuli Kay 09.06.2015 - 06:06
fuente

Lea otras preguntas en las etiquetas