2013-05-17 2 views
0

Мы создаем веб-приложение SAAS с несколькими арендаторами. Наши арендаторы хотят иметь возможность принимать платежи по кредитным картам за различные продукты, которые мы разрешаем им продавать через наше приложение. Чтобы поддержать это, мы потребуем, чтобы у арендатора была своя собственная учетная запись Braintree. Арендатор предоставляет нам наши ключи API Braintree через наше приложение. Затем мы используем эти ключи API для взаимодействия с их учетной записью Braintree от их имени (хранение карт, проверка карты и основные транзакции).Хранение ключей API Braintree в базе данных приложений SAAS

Эта модель такая же, как модель, используемая существующими клиентами Braintree WooThemes, Goodsie, TutorTrove и многие другие.

Нам необходимо записать информацию об API арендатора (идентификатор продавца, общедоступный ключ API и закрытый ключ API), чтобы все это работало.

Мои вопросы:

  1. Можем ли мы просто хранить эту информацию в нашей базе данных приложения?
  2. Сохраняет ли эта информация информацию о масштабах PCI/DSS от нас или наших арендаторов?
  3. Если мы не можем хранить информацию в необработанном виде, то какая соответствующая форма хранения?

Примечание: мы связались с Braintree напрямую с этим же вопросом, но мы не думали, что было бы больно получать и другие мнения :).

Cheers, Сэм

ответ

1

Так Брэйнтри ответил на этот вопрос с:

До тех пор, как ваша система PCI совместимый, и ваши торговцы знают , что их ключи API являются сохраненный на вашем сервере, тогда вы должны быть штрафными . Как вы храните ключи API интеграции, полностью зависит от вас, и [у нас] на самом деле нет никаких рекомендаций.

Таким образом, это не похоже, в этом случае влияет на PCI/DSS объем нашей продукции, и, кажется, мы свободны выбрать подходящий способ для хранения закрытых ключей API, которые мы получаем (предложение Saravanan является один возможный вариант).

1

IMHO, Пожалуйста, обратите внимание, что вы будете [если нет, то должно быть], имеющие ключи крипт арендатора на основе [каждый арендатор может настроить свой собственный crytographic алгоритм и ключи => SAAS Cusomization], Пожалуйста, зашифруйте AuthorizationId, используя специальные ключи арендатора, а затем сохраняйтесь в базе данных. Эти конфиденциальные данные должны быть защищены, и вы должны иметь примечание о том, что вы поддерживаете эти ключи в базе данных, чтобы арендатор мог отказаться, если не требовался, и вручную вводить ключ при необходимости. Это обеспечит безопасность. Кстати, ваше приложение использует SSL.

Пожалуйста, поделитесь своими мыслями по этому предложению

+0

Спасибо за ваш ответ. Используется SSL. Отказ предлагается (поясняется в наших документах). Я немного смущен вашим предложением на основе криптографии на основе арендаторов. WooThemes, Goodsie и TutorTrove (см. Выше), похоже, не используют такой подход. Кажется, это немного переборщило. Нам также нужно будет хранить информацию о криптографической конфигурации, потому что нам нужно иметь возможность расшифровывать по требованию обработку платежей. Мы сейчас думаем по этому пути: http://stackoverflow.com/questions/165808/simple-2-way-encryption-for-c-sharp ...таким образом, наша БД была бы бесполезна без нашего ключа crypt (хранится в нашей сборке). – sammy34

+0

В любом случае, мы увидим, что предлагает Braintree, прежде чем мы начнем реализовывать что-нибудь ... они, вероятно, могут сделать рекомендацию. – sammy34

+0

@ sammy34: Привет, Сэм, Спасибо, что поделились своими знаниями. Я столкнулся с реализацией, которая использовала возможность обработки ключей криптографического ключа даже для шифрования и проверки пароля, поэтому я предложил этот подход. В этом случае арендатор, который использует приложение, настроит свой собственный криптовый ключ. Если у арендатора их нет, тогда у них есть отказоустойчивый ключ по умолчанию, который будет использоваться. В таком случае я не слышал о штрафе за исполнение. Для информации. – Saravanan