Aplicación web de seguridad RESTful en Java

1

Estamos desarrollando dos aplicaciones web:

  1. Aplicación A: servicios web tranquilos que se ejecutan en un servidor GlassFish.

  2. Aplicación B: aplicación web dinámica que se ejecuta en un servidor Tomcat.

Estoy accediendo a la Aplicación A solo a través de mi Aplicación B, no quiero que ninguna otra aplicación acceda a mi Aplicación A. Para esto, he planeado instalar un certificado Cliente-servidor en los servidores respectivos, de modo que mi Aplicación A solo se podrá acceder a mi Aplicación B, quiero bloquear el acceso de otras Aplicaciones a mi Aplicación A.

¿Puede decirme cómo instalar certificados de cliente-servidor en los servidores respectivos?

Si alguien tiene una mejor alternativa para obtener esto, por favor, explícamelo.

Por favor explique con un ejemplo si es posible.

    
pregunta PRIYANK SINHA 04.08.2015 - 13:58
fuente

3 respuestas

1

Basado en la información limitada:

Como mínimo, busca las capas de seguridad que intentas lograr.

  1. Llamaremos a esto DMZ. Esta es la capa a la que se accede a la Aplicación A, o más simplemente, el punto de entrada para su configuración. No quieres a nadie más allá de este punto.
  2. La siguiente capa es el backend. Esta es su aplicación B y está intentando restringir el acceso a esta aplicación solo a través de la Aplicación A.

A nivel de red, su mejor opción es a través de la lista blanca de IP / nombres de dominio. Si realmente solo estás en desarrollo, y básicamente estás tratando de restringir a los usuarios / otros desarrolladores para que no jueguen con un sistema que no está listo, simplemente mientras que el listado en tus servidores FW probablemente sea suficiente.

No es necesario tener un FW intermedio para algo tan básico (a menos que su desarrollo exija un cierto nivel de protección en el que sugeriría no usar estos foros y contratar a un profesional. Este lugar es excelente para obtener información, pero los compromisos específicos no se deben hacer aquí)

Debería conocer la IP y los Puertos de los que hablan la Aplicación A y B, que es lo que usted quiere en la lista blanca.

Si / cuando pones esto en producción, haría algunos cambios sugeridos.

  1. Dependiendo de su nivel de seguridad requerido, use un firewall dedicado para separar su DMZ del backend (es posible que su organización ya tenga esto).
  2. Utilice certificados firmados por terceros, creo que las mejores prácticas actuales son la longitud de clave mínima de 2048, las firmas SHA2, que se ejecutan en TLS 1.1 o superior.
  3. Asegure el en el nivel del servidor. Establezca su permiso de grupo correctamente, etc. para la aplicación. (No estoy incluyendo recomendaciones reales de seguridad del servidor, pero eso debería ser un hecho).
  4. Conozca su nivel de acceso a DMZ, y la aplicación interna no necesita ser accedida por direcciones IP externas, y su equipo de TI debe saber qué esquema de IP utilizan y si realmente están en la bola, sabrán qué rango de IP accederá a la aplicación para el grupo de usuarios dedicado.
respondido por el Shane Andrie 04.08.2015 - 18:53
fuente
0

¿Qué hay de las reglas de firewall basadas en host basadas en una lista blanca?

Servidor de reglas A:

  • Incoming: IP (Server B)
  • Outgoing: IP (Server B)

Debería hacer el trabajo para aplicaciones que no tienen requisitos de protección altos / muy altos.

    
respondido por el Th0mas 04.08.2015 - 15:44
fuente
0

Es posible que pueda poner la aplicación A en una red interna sin acceso al mundo exterior (o al mundo exterior). Esto combinado con la regla de firewall que se mencionó debería hacer el truco.

Edit

Parece que realmente estás intentando validar lo que te está llamando, esto se puede hacer usando los intercambios de token csrf en tu JSP, consulta: enlace

Esto no es una garantía de que solo la aplicación web está llamando a la API, pero es una buena suposición.

    
respondido por el daark 04.08.2015 - 17:51
fuente

Lea otras preguntas en las etiquetas