SQL Server 2008 + PCI-совместимость? Относится к PCI, а также к симметричным ключам! - PullRequest
3 голосов
/ 06 февраля 2010

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

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

Если мне нужно зашифровать все три столбца, должен ли я совместно использовать один сертификат и иметь 3 симметричных ключа или мне понадобится только 1 каждый из них, причем этот симметричный ключ используется во всех 3 столбцах? Причина, по которой я спрашиваю, заключается в документации BoL по шифрованию столбца, ключ назван специально после столбца, который они шифруют.

Спасибо за помощь!

Ответы [ 2 ]

10 голосов
/ 10 февраля 2010

Если вы храните PAN (номер карты), то он обязательно должен быть зашифрован.

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

Код CV2 / AVS / CSC не может быть сохранен после авторизации, и в идеале вы хотели бы доказать, что он вообще не сохраняется (например, хранится только в памяти при выполнении авторизации)

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

Самая сложная часть - та, которую вы не упомянули в деталях - и это управление ключами. Чтобы соответствовать требованиям PCI, ключ должен храниться в отдельном физическом ящике с базой данных, и вам требуется возможность менять ключ по крайней мере раз в год. SQL 2008 поддерживает это с помощью расширяемого управления ключами (EKM)

Все эти моменты лучше всего обсудить с независимым QSA (квалифицированным оценщиком безопасности), которого вы в какой-то момент должны будете привлечь независимо от того, чтобы соответствовать требованиям PCI. Ваш QSA сможет направить вас по таким вопросам, как этот, и, в конечном счете, по его / ее совету, которому вы должны следовать, чтобы обеспечить соблюдение.

Стоит отметить, что большинство людей вскоре осознают, насколько серьезным может быть бремя соблюдения PCI, и стремятся минимизировать это бремя, используя сторонние платежные шлюзы. Большинство платежных шлюзов позволяют вам выполнять авторизацию / расчет и хранить данные карты на своих (уже совместимых с PCI) серверах. Затем вам нужно только сохранить TokenId, который ссылается на эти платежные реквизиты, если вам потребуется произвести дополнительные платежи / возвраты по этой карте.

Удачи в любом случае!

2 голосов
/ 09 февраля 2010

Из спецификации: https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml

Требование 3: Защита сохраненных данных держателя карты

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

Я думаю, что это настоятельно предполагает, что вы не должны

  1. хранить, если вам не нужно
  2. , если необходимо, сохранить деталь, если можете
  3. если вы что-то храните, зашифруйте.
...