Самый безопасный способ обезопасить Джерси REST Services - PullRequest
2 голосов
/ 01 июля 2011

Я действительно ищу только совет.У меня есть система, работающая на моем облачном экземпляре Amazon, которая в основном представляет собой набор служб REST, работающих на JBoss.Мой следующий шаг - обеспечить безопасность этих услуг, поскольку через них будет проходить информация о кредитных картах.Мне также нужна аутентификация, поэтому мой вопрос: какие самые безопасные методы можно использовать для служб REST?

SSL CA Конечно, так что шифрование данных с помощью CA, вероятно, я и начну.Это папа уважаемый за это?или я должен выложить много денег для verisign?

Для аутентификации достаточно ли будет просто выполнить базовую аутентификацию или, может быть, просто как-то подписать запрос вызывающим абонентом?Любые другие методы?

О, я забыл упомянуть, клиентское приложение - это приложение для iPad.Спасибо за совет.

Ответы [ 2 ]

2 голосов
/ 29 марта 2013

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

Используйте метку времени и уникальное значение nonce, сгенерированное клиентом, как часть подписанных байтов.Эти значения также передаются обратно как заголовки в запросе, чтобы сервер мог повторно собрать запрос.

Типичный запрос, выполняемый из curl, может выглядеть следующим образом:

curl -v -H "Content-Type: application/json" -H "Authorization: ff7b93ad-27d0-49f6-90bd-9937951e5fcc:ncYoA5n5s2nFSm7qyvf5hDgL4pmmPOUP3zo/UYfaQKg=" -H "x-date:2013-03-28T19:34:00+00:00" -H "nonce:2d1321d32a" -X GET 'http://localhost/orders/123'

Заголовок авторизации содержитid для идентификации запрашивающей стороны, а затем хэш подписанного запроса.Заголовок даты должен быть в пределах определенного смещения времени сервера (15 минут - разумный предел).

У меня есть полный пример кода здесь

0 голосов
/ 02 ноября 2011

Использование сертификатов - отличное начало для безопасности.Я нашел Thawte хороший баланс между ценностью и поддерживаемых клиентов.Когда я смотрел (некоторое время назад), GoDaddy не был поддержан достаточным количеством клиентов, которых я мог ожидать (Java, Objective-C / iPad, браузеры), но это, возможно, изменилось к настоящему времени.Вы определенно хотите убедиться, что полученный сертификат поддерживается теми клиентами, о которых вы заботитесь (Objective-C в вашем случае для iPad).

Базовая аутентификация в порядке по протоколу https, просто убедитесь, что вы этого не делаетевыставлять что-либо в URL, например, идентификаторы или токены, так как сам URL виден.Если вы отправите все свои данные через https, вы начнете с хорошего начала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...