Хранение данных кредитной карты

60

Мне нужно хранить номера кредитных карт для повторного выставления счетов через нашего стороннего продавца.

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

Переход на PayPal для использования их подписок не вариант. Мы должны хранить их, и я должен убедиться, что хранение безопасно!

Мы предоставляем MSSQL 2005 для наших данных, и все уже SSL.

Марк Хендерсон
источник

Ответы:

86

Вам нужно будет следовать (к букве) и предпочтительно превышать стандарт PCI DSS . Это ни в коем случае не легкая задача, и ее не следует принимать тривиально.

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

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

На самом деле, потратьте все возможные усилия, чтобы переложить это на третью сторону. Одно только обязательство просто не стоит риска, если вы не говорите о транзакциях, которые составляют сотни тысяч (укажите вашу валюту здесь) ежемесячно. В этом случае сэкономленные вами сборы могут оправдать привлечение талантов, необходимых для внедрения и мониторинга систем, хранящих информацию. Тебе понадобиться:

  • Системные программисты (вам понадобятся хуки аудита уровня ядра и файловой системы)
  • Гуру IDS / IPS (если вы не любите привязку к поставщику)
  • 24/7/365 персонал для мониторинга оповещений, генерируемых системами, которые разработали эксперты. Эти люди недешевы, они принимают решение отключить биллинг или сообщить об ошибке в алгоритмах, которые вы используете.

И потом, опять же, вы могли бы передать все это третьей стороне, довольно дешево.

Тим Пост
источник
Хм, мы уже на полпути, потому что имеем дело с конфиденциальной информацией от имени наших клиентов (заблокированные серверы и обнаружение вторжений, а IPSec в DMZ уже на месте). Я прочитаю, спасибо.
Марк Хендерсон
@Farseeker - Помимо предотвращения незаконного доступа, наиболее важной частью является его обнаружение и выяснение того, что, возможно, было взломано, и кого нужно очень быстро уведомить. Обратите внимание, что это может включать в себя несанкционированное копирование файлов, которые поддерживают базу данных.
Тим Пост
5
Тот факт, что вы обрабатываете данные кредитных карт сейчас, даже если вы не храните их постоянно, означает, что вам необходимо соблюдать PCI DSS.
Стивен Дженнингс
@Stephen - Обработка и хранение - совершенно разные вещи, когда дело доходит до PCI. Обработка означает просто POST'-передачу некоторых данных на шлюз и ожидание ответа. Хранение - это своя уникальная банка червей.
Тим Пост
Требование PCI DSS 3.2 указывает, что код отслеживания и проверки не может быть сохранен после авторизации, даже если он зашифрован, и это включает ВСЕ журналы, включая журналы транзакций для базы данных.
Ли Риффель
23

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

метелка
источник
3
+1 за идею никогда не хранить CC в вашей базе данных. Наш провайдер платежных шлюзов теперь хранит всю эту информацию, что значительно облегчает нашу безопасность.
Милнер
Для примера, одна такая жертва является Authorize.net Информация для клиентов Manager (CIM) authorize.net/solutions/merchantsolutions/merchantservices/cim и поскольку повторяющиеся биллинг упоминалось Automated Повторяющиеся Billing (ARB) authorize.net/solutions/merchantsolutions/merchantservices/ ... Вы можете хранить их, но они никогда не будут в безопасности. В конце концов, вы заплатите за услуги, которые будут стоить вам в случае потери репутации, потери продаж, штрафов с вашего процессора и любых судебных разбирательств, связанных с компрометацией данных.
Fiasco Labs
13

Многие ответы, которые вы ищете, можно найти на веб-сайте Руководства по соответствию индустрии платежных карт . Их страница ссылок особенно полезна.

Лучшее предложение - разрешить третьей стороне управлять этим хранилищем.

Брайсон
источник
Я видел эту штуку PCI в течение нескольких лет, никогда не представлял, что это на самом деле. Благодарю.
Марк Хендерсон
8

Не включает ли ваш сторонний продавец опцию «Непрерывные платежи по кредитным картам» - большинство из основных в Великобритании, безусловно, включают (DataCash, RBS World Pay и т. Д.).

По сути, вы один раз отправляете им данные карты, запрашивая полномочия КТС (в которые, если я правильно помню, необходимо указать ожидаемое расписание и обычную сумму), а затем вы получаете от них токен. Затем каждый месяц / независимо от того, что вы опрашиваете продавца с помощью токена, и он обрабатывает последующие транзакции для вас - обычно также есть возможность настроить их для переменных, специальных запросов. Ключевое требование с вашей стороны - уведомить клиента (обычно не менее 10 дней) до принятия платежа.

Таким образом, вы нигде не храните данные CC, все это обрабатывается людьми, которые отвечают требованиям.

Это похоже на предварительную авторизацию карты, поэтому вам никогда не придется хранить кредитную карту, просто токен от Продавца, которому вы можете позвонить по мере необходимости.

Жаф - Бен Дугид
источник
4

Мы должны хранить их, и я должен убедиться, что хранение безопасно!

Один вопрос: почему?

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

(Примечание: если вы занимаетесь электронной коммерцией, вы должны быть PCI-совместимыми, даже если вы не храните данные CC. Если вы не жалуетесь сейчас, считайте, что вам повезло, что вас это еще не укусило.)

Посмотрите, чтобы ваш процессор справился с этим. Мы используем Authorize.net, и у них есть замечательный API, чтобы мы могли создавать свои собственные пользовательские интерфейсы, но они заботятся о хранении и обработке реальных платежей. Если мы хотим настроить повторное выставление счетов, у них есть система для хранения информации. Честно говоря, я доверяю им больше, чем себе.

dragonmantank
источник
4

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

Переход на PayPal для использования их подписок не вариант. Мы должны хранить их, и я должен убедиться, что хранение безопасно!

Вы можете локально сохранить идентификатор, который идентифицирует данные кредитной карты клиента на вашем платежном шлюзе. Я не уверен, что PayPal предлагает эту опцию, но есть другие платежные шлюзы, которые делают.

Также имейте в виду, что даже если вы не сохраняете данные кредитной карты на диск, вы все еще можете выполнить некоторые требования PCI-DSS. Безусловно, самый простой способ быть совместимым - это не принимать какие-либо данные CC (т. Е. Отправлять форму оплаты непосредственно в платежный шлюз).

Тиаго Фигейро
источник
3

Такие службы, как http://chargify.com/, предлагают дополнительный уровень поверх существующих платежных шлюзов. Скорее всего, они предложат вам всевозможные способы хранения кредитных карт для вас, осуществления регулярных платежей и даже создания отчетов для вас.

Это позволит вам обойти всю ответственность и проблему соответствия PCI. Одна из проблем, с которыми я сталкиваюсь, заключается в том, что когда-нибудь вы захотите сменить поставщиков, торговые счета или шлюзы. Как вы берете с собой 10000 клиентов? Они сдают базу данных кредитных карт? Будет ли работа с конкурентом переносить информацию о кредитной карте?

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

zaqintosh
источник
Это очень хороший момент, я не думал об этом. Мы используем SecurePay около 5-6 лет, и у нас не было никаких проблем с ними, поэтому я думаю, что мы будем придерживаться их, но кто знает, что нас ждет в будущем ...
Марк Хендерсон,
2

У меня пока нет достаточного количества представителей, чтобы поднять голос или прокомментировать, так что это идет в новом ответе. Как отметил Жаф , многие торговые компании предлагают систему регулярных платежей, где они обрабатывают хранилище для вас.

Мы использовали Authorize.net для любых клиентов, не желающих использовать PayPal, и он работает довольно хорошо (наша единственная большая претензия в том, что ключ API сбрасывается каждые 6 месяцев, и они не удосуживаются уведомлять вас, когда это происходит, поэтому страница просто перестает работать). Их API основан на XML, и вы можете найти обертки для него практически на любом языке.

ChiperSoft
источник
1

Обратите внимание, что если вы в конечном итоге решите сохранить информацию о кредитной карте в своем собственном БД, вы ни при каких обстоятельствах не должны хранить 3-значный код безопасности карты . Это строго запрещено ассоциациями карт.

Кстати, вам не нужен код безопасности карты для совершения транзакции. Это улучшает уровень обнаружения мошенничества, но он вам не нужен, если у вас постоянные отношения с клиентом. (И даже если вы думаете, что вам это нужно, вы не можете хранить его. Независимо от того, что.)

Я также второй другие рекомендации, чтобы не хранить информацию. Менеджер информации о клиентах Authorize.Net прост и дешев в использовании. Это будет НАМНОГО дешевле для вас, чем использовать его, а не понести затраты PCI, присущие хранению информации на ваших собственных серверах.

Ларри К
источник
1

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

Милнер
источник
5
Но не храните CC в своей базе данных. Не.
dimo414
Шифрование - это только начало. Скачайте ваш соответствующий вопросник SAQ (самооценка) pcisecuritystandards.org/merchants/self_assessment_form.php и начните выяснять, что шифрование базы данных довольно далеко в списке требований. Существует так много способов утечки учетных данных кредитных карт, которые вы даже не коснулись, которые касаются хранения кредитных карт.
Fiasco Labs