2011-12-16 21 views
16

Estoy escribiendo un Spring Restful Web Services Project. Necesito escribir servicios web seguros. Para la Seguridad ya estoy usando Spring Security + SSL, sin embargo, ahora necesito un poco de seguridad para cifrado y firma de mensajes. Sé cómo cifrar el mensaje desde el código, sin embargo, estoy buscando un mecanismo para habilitar el cifrado/descifrado automático y la firma de mensajes.Seguridad para Spring Restful Web Services

he estado buscando diferentes alternativas para la seguridad incluyendo WSS primavera y otros, pero la mayoría de ellos son para SOAP. ¿Podría alguien sugerirme algún mecanismo de seguridad mejor y un enlace para el mismo.

+6

Tal vez Me falta algo, pero ¿qué hay de malo con el uso de SSL? Esto cifrará la transmisión de solicitud/respuesta a los servicios web entre el servidor y el cliente. –

+0

gracias arce, tienes razón con SSL. Sin embargo, ¿hay algo más en seguridad que pueda sugerirme para que sea un servicio web más seguro? –

Respuesta

7

Existen múltiples formas de proteger sus servicios web, por desgracia hay muchos enlaces que proporcionan información para asegurar un servicio web, pero a medida que se recupera la popularidad, es de suma importancia encontrar una forma de asegurar y encontrar un Manera de administrar sesiones de su servicio web relajante. Para asegurar mi Spring MVC con soporte reparador, al menos debe tener en cuenta tres Aspecto

1) Autenticación. - Para la autenticación, se puede usar Spring Security.
2) Autorización. - Para autorizar una solicitud, se puede usar OAuth.
3) Asegurando la comunicación. - SSL se puede usar para asegurar el canal de comunicación.
4) Encriptación - Una vez más Oauth puede resolver el propósito
5) la firma de mensajes. - Una vez más, Oauth puede resolver el propósito

Por lo tanto, para garantizar un servicio web reparador, se puede usar la seguridad de primavera + OAuth.Los otros mecanismos de seguridad que se pueden utilizar son Http Basic Security y Digest Security.

Aquí está un ejemplo muy bueno asegurar un servicio web de descanso de primavera con la seguridad de primavera: http://java.dzone.com/articles/securing-restful-web-service

también para utilizar la seguridad de primavera en conjunción con OAuth puede seguir este tutorial:

Spring security with OAuth

4

que básicamente tienen dos pautas de seguridad RESTO:

  1. encriptar y firmar las peticiones/respuestas a nivel de aplicación y ejecutar través de HTTP. Esto implica una cantidad significativa de trabajo, ya que necesita canonicalizar todos los datos antes de firmar y asegurarse de que el cliente/servidor sigue exactamente el mismo proceso. Este enfoque fue adoptado en las primeras versiones de los protocolos del servicio web de Amazon.

  2. Usar SSL (posiblemente con certificados de cliente). Este es el enfoque preferido ya que no hay necesidad de reinventar la rueda. Los aceleradores SSL están disponibles y el rendimiento será significativamente mejor que al manejar el cifrado y la firma de su código.

Amazon ha pasado a utilizar SSL y debe hacer lo mismo. This article ofrece una buena comparación de los dos enfoques.

REST vs jabón

lo refirió a SOAP y WS-Security que define un protocolo para el cifrado y la firma en el mensaje de nivel (en lugar de transporte). La razón por la que WS-Security define dicho protocolo es para proporcionar confidencialidad, integridad y autenticidad de extremo a extremo sobre una arquitectura SOA intermediada. Por ejemplo, puede enviar un mensaje SOAP del Servicio A al Servicio B, que pasa por CD y E. SSL/TLS funciona a un nivel de transporte y, por lo tanto, solo protegerá el mensaje entre A y B. Sin embargo, REST no está destinado a una arquitectura intermedia por lo que este enfoque no es aplicable en su caso.

+0

gracias a toby, pero estaba buscando un paquete de seguridad completo. –

+1

No existe un "paquete completo de seguridad", necesita evaluar las vulnerabilidades en su propia aplicación. Luego debe hacer una evaluación de riesgos para determinar si está preparado para aceptar el riesgo o establecer medidas para mitigarlo. Ningún paquete puede hacer esto por ti –