Seguridad del cliente usando UDP

2

Introducción

Actualmente estoy intentando crear una capa de red para Unity desde cero. Actualmente estoy probando la comunicación a través de UDP utilizando Node.js para el servidor y el cliente. Sin embargo, supongo que el lenguaje de la implementación no será importante para lo que solicito.

En realidad, solo leo sobre cosas relacionadas con la seguridad en el lado del servidor. Pero debido a que necesito que otras personas me ayuden a probar lo que estoy creando, realmente necesito asegurarme de que no sufrirán ningún daño.

Enfoque actual

El enfoque actual que utiliza Node.js para el servidor y el cliente es bastante básico. Simplemente envío un mensaje de un cliente a mi servidor mientras el cliente y el servidor no están en la misma red local. Ambos están detrás de un enrutador y, por lo tanto, también detrás de un NAT.

El servidor luego envía una respuesta a la IP y al puerto recibido dentro del paquete UDP que se envió desde el cliente.

Problema

Tengo curiosidad acerca de la seguridad en el lado del cliente con respecto a los datos maliciosos enviados por alguien que está falsificando al cliente y / o NAT. Además, no estoy seguro de si el hecho de que mi aplicación esté abriendo puertos en las máquinas cliente y los enrutadores se pueda usar para algo malicioso.

Suposición

Hasta ahora he descubierto que los datos maliciosos podrían ser un problema en el nivel de la aplicación. También me di cuenta de que no es un problema de seguridad cuando mi aplicación abre puertos (localmente en la máquina del cliente y luego cuando se envía dentro del enrutador del cliente) o al menos no puedo hacer nada contra ella.

En resumen, esto significaría que solo necesito proteger al cliente en capas OSI mayores que 4 (dentro de la aplicación). Cualquier cosa menor o igual a la capa 4 de OSI no necesita ser más segura por mí mismo.

Pregunta

Entonces, ¿mi suposición es correcta? Si es así, ¿qué puedo hacer contra los datos maliciosos?

    
pregunta David Michael Huber 27.03.2017 - 22:01
fuente

1 respuesta

1

Esto debería ser un comentario, pero es un poco largo.

  

seguridad en el lado del cliente

... depende totalmente de la aplicación en sí (que, dentro del contexto de la pregunta, no necesitamos conocer / discutir) y del firewall / NAT (del cual no nos ha dicho nada).

  

Descubrí que no es un problema de seguridad cuando mi aplicación abre puertos

¿De verdad? ¿Aumentar la superficie de ataque no afecta la seguridad?

  

o al menos no puedo hacer nada en contra de esto

Inténtalo más.

Que está utilizando UDP a través de una WAN o Internet (entre 2 puntos fijos) implica que:

1) la aplicación utiliza muy poco ancho de banda

2) la baja latencia es crítica

Por lo tanto, TLS o un paso de autenticación basada en el desafío socavarían estos 2 requisitos. Esto implica que deberías usar un pad de una sola vez tanto para autenticar las solicitudes como para protegerte contra MITM.

    
respondido por el symcbean 28.03.2017 - 13:05
fuente

Lea otras preguntas en las etiquetas