Seguridad en la capa de aplicación

1

Originalmente preguntado en enlace pero se sugirió preguntar aquí en su lugar.

Vi muchas preguntas sobre el cifrado en http, como esto . La mayoría de las respuestas que vi dijeron que no hay forma de verificar la identidad del servidor, por lo que es vulnerable al ataque MitM.

Mi pregunta a continuación será ligeramente diferente, ya que se refiere al entorno móvil, donde asumo que la aplicación se descarga desde AppStore o PlayStore. De esta manera, puedo asumir que el pirata informático verifica y no modifica el código y que la clave pública del servidor incluido en la aplicación tampoco se modifica para que pueda verificar la identidad del servidor.

Dadas estas garantías, ¿es posible realizar el cifrado en la capa de aplicación y hay bibliotecas existentes para hacerlo?

Más específicamente, estoy escribiendo una aplicación que se comunica con el servidor HTTP. El servidor está alojado en algunos planes baratos donde no hay HTTPS disponible. Asumiendo que el servidor maneja las solicitudes HTTP usando PHP o Python, es posible implementar el cliente y el servidor, de modo que hagan un apretón de manos al comienzo de la sesión sobre HTTP, para acordar algunas claves de cifrado; después, todos los mensajes se cifran utilizando las claves. Desde el punto de vista de los piratas informáticos, ven el tráfico HTTP entre el cliente y el servidor y ven algunos campos básicos en los encabezados HTTP, por ejemplo. host y punto final, como texto simple pero todo lo demás se encriptan simplemente como cuerpo HTTP o algún argumento de URL.

¿Es eso posible y hay alguna biblioteca que lo haga fácilmente? Hablando de manera intuitiva, solo está implementando TLS en el nivel de la aplicación, por lo que teóricamente es totalmente posible y tiene la misma seguridad que TLS. ¿Echo de menos agujeros de seguridad aquí?

    
pregunta icando 17.03.2015 - 09:31
fuente

1 respuesta

2

el primer agujero de seguridad es su servidor "el-cheapo" compartido. Si no puede confiar en su máquina, no puede confiar en sus aplicaciones.

lo que esto significa es que si no tiene control sobre la máquina en sí, agregarle seguridad no tiene sentido, un atacante solo atacará su servidor web en lugar de su conexión y se asegurará de que pueda hacer todo lo que él o ella quiera hacer. "¡Roba todos los datos!"

consulte las páginas OWASP . ofrecen mucha información sobre cómo proteger cualquier programa (web).

Si, al final, todo lo que desea hacer es que un conjunto limitado de clientes use su "aplicación" y la haga segura, podría considerar la implementación de una arquitectura SSH cliente / servidor (básicamente, hacer que SSH haga toda la seguridad y la conexión). y solo úselo como un túnel para su propósito)

buena suerte

    
respondido por el LvB 17.03.2015 - 11:51
fuente

Lea otras preguntas en las etiquetas