Защита связи между доверенными серверами в одном хостинге - PullRequest
1 голос
/ 12 мая 2011

Я работаю в компании, которая разрабатывает программный продукт, который обрабатывает банковские транзакции и дает пользователю представление о его / ее расходах. Наши клиенты (обычно банки) интегрируют продукт в свои онлайн-банки.

У меня есть вопрос об обеспечении связи между онлайн-банком и нашей системой. Прежде чем я задам вопрос, я хочу дать вам некоторое представление.

Банк обычно устанавливает нашу систему на набор серверов в своей среде хостинга.

Мы предлагаем несколько способов интеграции:

  1. Веб-сервисы - в этом случае банк выполнит вызовы набора сервисов REST на сервере, а затем создаст веб-страницу с результатами (на стороне сервера).
  2. Iframes - В этом случае банк будет вставлять iframes в свои веб-страницы онлайн-банка. Фреймы содержат веб-страницы, отображаемые непосредственно из нашего веб-приложения.
  3. Встроенные виджеты - в этом случае банк будет вставлять ссылки JavaScript на свои страницы. Когда документ загружается, виджеты JavaScript будут отображаться самостоятельно с использованием вызовов AJAX. Они общаются с прокси на банковском сервере, который, в свою очередь, связывается с нашим веб-приложением.

В настоящее время у нас есть специальное решение, где мы генерируем и подписываем токены безопасности для пользователей и передаем их вместе с запросами.

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

Итак, вопрос в том, какой протокол лучше всего подходит для случаев использования интеграции, которые я перечислил выше? Существует множество стандартов единого входа, и такие решения, как SAML, oauth и т. Д., Я чувствую, что эти решения могут быть излишними для моей ситуации.

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

То есть протокол безопасности не должен требовать вмешательства со стороны конечного пользователя. Конечный пользователь просто входит в свой онлайн-банк и через защищенную связь получает доступ к данным с нашего веб-сервера.

Итак ... есть предложения?

Большое спасибо!

OGG

1 Ответ

1 голос
/ 18 мая 2011

После некоторых размышлений мы решили использовать 2-стороннюю OAuth (онлайн-банк использует ключ потребителя и его секрет для подписания запросов к нашему приложению).

Подпись OAuth может быть либо помещена в заголовок запроса, либо в параметры запроса.Это хорошо решает нашу проблему, так как запросы REST могут быть подписаны, а URL-адреса IFRAME src также могут быть подписаны (все общение осуществляется по HTTPS).

Для тех, кто заинтересован, пара ссылок:

В этой статье показано использование OAuth с IFRAME: http://developer.tradeshift.com/blog/cross-site-user-verification/

В этой статье упоминаются некоторые проблемы безопасности с OAuth и способы противодействия угрозам: http://software -security.sans.org / blog/ 2011/03/07 / OAuth-авторизация-атака-Secure-реализация

...