¿Cuál es la mejor manera de cargar un archivo de forma segura? [cerrado]

1

¿Cuál es la mejor manera de cargar un archivo de forma segura?

Mi cliente es una aplicación de escritorio .NET y el servidor es Apache Tomcat que ejecuta archivos JSP y se ejecuta en un sistema operativo Linux.

    
pregunta Sheldon Cooper 18.07.2016 - 16:53
fuente

1 respuesta

1

Normalmente, puede cargar el archivo utilizando el método HTTPS estándar, sin embargo, la exposición del servidor de aplicaciones para las cargas es siempre muy arriesgada. Especialmente si el servidor de aplicaciones tiene muchas bibliotecas integradas y así sucesivamente. Así que idealmente:

  • Cree una instancia dedicada de Tomcat solo para cargar archivos con un conjunto mínimo de bibliotecas
  • Habilite HTTPS en él y deshabilite HTTP, refuerce la configuración de HTTPS para que use solo las últimas versiones de protocolo
  • Crear un certificado de usuario que se utiliza para autorizar al usuario a conectarse al servidor
  • Crea el nombre de usuario y la contraseña para cada usuario
  • Ahora puede cargar cualquier archivo a través de HTTPS al controlador Tomcat, puede hacerlo utilizando el formulario binario para no consumir demasiado ancho de banda
  • Si tiene más infraestructura, puede usar HTTPS - > Proxy HTTP, por ejemplo en AWS, esto hace las cosas más fáciles

Además de eso, puedes cifrar el archivo en sí. Si se trata de una aplicación .NET, podría ser una clave simétrica precompartida dedicada (por instancia, por ejemplo, por cliente) que no se almacena en el servidor de destino, por lo que el archivo se copia de la instancia de Tomcat de carga a otra instancia aislada donde es descifrado Con respecto a las claves previamente compartidas, no es la mejor manera, por lo que puede usar otra instancia de Tomcat como Servidor de claves. Ya con el certificado del cliente, puede conectarse a la instancia clave de Tomcat y solicitar una clave simétrica de un solo uso, y la instancia de descifrado de Tomcat volverá a solicitar esta clave durante el descifrado.

Puede omitir el servidor de carga adicional si confía en su Tomcat principal. Sin embargo, el uso de HTTPS y el Servidor de claves con cifrado es realmente recomendable si la carga debe ser segura. Además, el archivo almacenado puede permanecer encriptado y es posible que el servidor Tomcat principal no necesite / no pueda consultar el servidor de claves en absoluto.

De esta manera, si su servidor de carga se ve comprometido, los archivos son ilegibles. Si su servidor de claves se ve comprometido, los archivos tampoco son legibles. Reducir la superficie de ataque es lo principal. Utilice el alojamiento de Tomcat barato para lograr eso. Utilice JRE8 con G1GC para reducir el uso de memoria. Use secuencias y no cargue archivos en la RAM.

Ver el diagrama:

    
respondido por el Aria 18.07.2016 - 17:26
fuente

Lea otras preguntas en las etiquetas