Seguridad de puerto cerrado

2

Tengo lo que creo que es una pregunta de seguridad de TI (yo también soy un programador).

Suponiendo que estoy ejecutando una máquina dedicada (por ejemplo, una PC) para un solo programa, lo que significa que el único puerto visible y abierto al exterior es el puerto que este programa está escuchando.

Suposiciones adicionales:

  • El código del programa no tiene vulnerabilidades, lo que significa que ningún paquete externo puede hacer que el programa envíe información o cambie cualquier cosa en el disco duro de la máquina.

  • Todas las comunicaciones hacia y desde la máquina están cifradas en PGP o AES + RSA de alguna otra manera, incluidas todas las condiciones complementarias que requieren dichos algoritmos (longitud de las teclas, esquema de relleno y todo eso).

¿Qué posibilidades quedan para que un atacante descifre los mensajes transmitidos hacia y desde la máquina?

Agrego el puerto único y no hay suposiciones de explotaciones, ya que creo que, dado que una PC normal ejecuta algún sistema operativo con, por ejemplo, 40 puertos abiertos, esto le da a un atacante la opción de infiltrarse en la máquina a través de dichos puertos y plantar un keylogger o algo similar.

La idea aquí es crear un sistema de chat para dos personas de máxima seguridad en redes abiertas utilizando, por ejemplo, una netbook dedicada a través de wifi pública.

    
pregunta Legion 26.01.2012 - 14:49
fuente

3 respuestas

5

If:

  • todos los puertos están cerrados excepto el que conduce al software de su servidor;
  • el software de su servidor está libre de explotación;
  • la implementación, por parte del sistema operativo, de los mecanismos TCP / IP está libre de explotación;
  • la implementación, por parte del sistema operativo, de servicios de red que no son TCP (por ejemplo, ICMP ) está libre de explotación; / li>
  • no hay acceso alternativo controlado por la red a la máquina (como IPMI o KVM basado en red ), o, si existe, ese acceso carece de cualquier agujero explotable;
  • la criptografía se realiza correctamente, según los estándares, utilizando estándares para los que no se conoce ni se sospecha ningún problema de seguridad, y sin filtrar información a través de canales laterales ;
  • cualquier cosa que se encuentre en el otro extremo de la comunicación está protegida de manera similar y libre de explotación;
  • se asume que los atacantes pueden escuchar a escondidas en la red y alterar los bytes a voluntad, pero no para lograr acceso físico a las máquinas o redes locales involucradas, o para evitar los cortafuegos que imponen el bloqueo de puertos;

luego , de hecho, los atacantes no podrán obtener información sobre los datos intercambiados, guardar su existencia, tamaño aproximado y tiempos exactos a los que los fragmentos de datos se envían de un lado a otro (lo que puede Ya sea bastante revelador ; históricamente, permitió que los militares de EE. UU. predijeran el ataque japonés a Midway en junio de 1942). Los atacantes aún pueden bloquear datos, duplicar mensajes o redireccionarlos, y posiblemente puedan obtener información a través de las reacciones del remitente y el destinatario en tales casos.

Sin embargo, es un montón de "si".

    
respondido por el Tom Leek 26.01.2012 - 15:38
fuente
1
  

El código del programa no tiene ninguna vulnerabilidad

Esto es fácil de decir y difícil de implementar

  

Todas las comunicaciones hacia y desde la máquina están codificadas

¿Querías decir "encriptado"?

Ahora en serio: Tienes que responder algunas preguntas antes de entrar en desarrollo:

  1. Tienes que cuidar la autenticación, ¿cómo sabes que están hablando con el otro lado y no con el atacante?
  2. ¿Utilizará certificados del lado del cliente? ¿Cómo se revocan?
  3. ¿Cómo publicas tu IP? (Menciona WiFi pública, así que supongo que no tienes IP estática)
  4. ¿Hay algún servidor involucrado que realice la conexión / sincronización de clientes?

Saludos

A

    
respondido por el AaronS 26.01.2012 - 15:36
fuente
0

Estoy un poco confundido, dices:

  

Suponiendo que estoy ejecutando una máquina dedicada (por ejemplo, una PC) para una sola   programa, lo que significa que el único puerto visible y abierto al exterior es   el puerto en el que este programa está escuchando.

Por "programa único" lo entiendo solo por su programa, sin navegador web, sin cliente DHCP, sin cliente de correo electrónico, sin bluetooth, sin teclado inalámbrico o mouse, etc. Además, significa que su sistema operativo no funciona. Programas o servicios. y que los usuarios no podrán instalar o ejecutar ningún otro programa en estas computadoras.

Si es así, esto significa efectivamente que su computadora debe tener una dirección IP fija que impida efectivamente su uso en una cafetería, etc. donde normalmente es necesario iniciar sesión con un navegador web y usar una dirección IP dinámica.

¿Es esto lo que pretendes?

    
respondido por el JonnyBoats 26.01.2012 - 17:59
fuente

Lea otras preguntas en las etiquetas