2011-12-16 5 views
16

Я пишу Spring Rest Web Services Project. Мне нужно написать безопасные веб-службы. Для безопасности я уже использую Spring Security + SSL, однако теперь мне нужна защита для шифрования и подписания сообщения. Я знаю, как шифровать сообщение из кода, однако я ищу механизм для автоматического шифрования/дешифрования и подписания сообщения.Безопасность для Spring Restful Web Services

Я искал различные альтернативы безопасности, включая весенние WSS и другие, но большинство из них предназначено для SOAP. Может ли кто-нибудь предложить мне какой-то лучший механизм безопасности и ссылку на то же самое.

+6

Возможно, я что-то не хватает, но что не так с использованием SSL? Это зашифрует передачу запроса/ответа на веб-службы между сервером и клиентом. –

+0

благодаря клену, вы правы с SSL. Однако есть ли что-то еще в безопасности, которое вы можете предложить мне сделать более безопасным веб-сервисом. –

ответ

7

Существует несколько способов обеспечения безопасности ваших веб-сервисов, к сожалению, существует множество ссылок, которые предоставляют информацию для защиты мыльных веб-сервисов, но, как неустанно набирающая популярность, крайне необходимо найти способ обеспечения безопасности и поиска способ управления сеансами вашего спокойного веб-сервиса. Итак, чтобы обеспечить мою весеннюю MVC с постоянной поддержкой, вам необходимо по крайней мере рассмотреть три аспекта.

1) Аутентификация. - Для аутентификации может использоваться Spring Security.
2) Авторизация. - Для авторизации запроса может использоваться OAuth.
3) Обеспечение связи. - SSL можно использовать для защиты канала связи.
4) Шифрование - Опять же Oauth может решить цель
5) Подпись сообщения. - Опять же Oauth может решить цель

Таким образом, чтобы обеспечить надежную защиту весной webservice + OAuth можно использовать.Другими механизмами безопасности, которые могут быть использованы, являются Http Basic Security и Digest Security.

Вот очень хороший пример обеспечение пружинного успокоительный WebService с пружинной безопасностью: http://java.dzone.com/articles/securing-restful-web-service

также использовать пружины безопасность в сочетании с OAuth вы можете следовать этому учебнику:

Spring security with OAuth

4

Вы в основном есть два шаблона для безопасности REST:

  1. шифровать и подписывать запросы/ответы на уровне приложений и запускать через HTTP. Это требует значительного объема работы, так как вам нужно до канонировать все данные перед подписанием и гарантировать, что клиент/сервер следует точно так же. Этот подход был принят в начале версиями протоколов веб-сервисов amazon.

  2. Использовать SSL (возможно, с клиентскими сертификатами). Это предпочтительный подход , так как нет необходимости изобретать велосипед. SSL-ускорители доступны и производительность будет значительно лучше, чем обработки шифрования и подписания кода.

Amazon теперь перешел на использование SSL, и вы должны сделать то же самое. This article дает хорошее сравнение двух подходов.

REST против SOAP

Вы упомянули SOAP и WS-Security, который определяет протокол для шифрования и подписи в сообщении (вместо транспортного) уровня. Причина, по которой WS-Security определяет такой протокол, заключается в обеспечении сквозной конфиденциальности, целостности и подлинности по брокерской архитектуре SOA. Например, вы можете отправить SOAP-сообщение из службы A в службу B, которая проходит через CD и E. SSL/TLS работает на транспортном уровне и поэтому будет защищать только сообщение между A и B. Однако REST не предназначен для брокерской архитектуры поэтому этот подход не применим в вашем случае.

+0

спасибо, но я искал полный пакет безопасности. –

+1

Нет такой вещи, как «полный пакет безопасности», вам необходимо оценить уязвимости в своем приложении. Затем вам необходимо провести оценку риска, чтобы определить, готовы ли вы принять риск или принять меры для их смягчения. Пакет не может сделать это для вас –

Смежные вопросы