¿Puede el dispositivo en el otro extremo de un socket cambiar sin que yo lo sepa?

0

Tengo una aplicación de servidor escrita en C #. Actualmente estoy autentificando al cliente cada vez que se abre un socket, antes de enviar cualquier otro dato. Una vez autenticado el cliente, asumo que siempre es el mismo cliente que usa este socket. ¿Es seguro o puede otra persona "hacerse cargo" del Socket después de que se autentique?

    
pregunta nulldozer 12.09.2017 - 11:38
fuente

1 respuesta

4

Si este es un simple socket UDP o TCP, toda la información que se necesita para tomar el control de la conexión es visible en cualquier sistema en el medio. Esto significa que un hombre en el medio podría asumir completamente la conexión una vez establecida, o incluso simplemente ponerse dentro de la conexión y enviar los datos modificados al interlocutor original.

Pero si el protocolo de la aplicación tiene un estado interno que el atacante no puede derivar de la información interceptable, no es posible realizar tal toma de control. Esto es cierto, por ejemplo, si se utiliza SSL / TLS sobre TCP. En este caso, un hombre en el ataque medio ya no es práctico. Pero un atacante en el propio punto final podría, por ejemplo, inyectar su propio código en una aplicación en ejecución y así controlar qué datos se transfieren a través del socket.

El hombre en el centro de los ataques tampoco es posible si el atacante no puede detectar la conexión UDP o TCP simple. Esto se puede lograr protegiendo la ruta de comunicación en las capas inferiores, por ejemplo con IPSec u otras tecnologías de VPN. Pero los ataques en el punto final en sí también son posibles en estos casos.

    
respondido por el Steffen Ullrich 12.09.2017 - 12:52
fuente

Lea otras preguntas en las etiquetas