Armazenando detalhes do cartão de crédito

60

Preciso armazenar números de cartão de crédito para cobrança recorrente em nosso comerciante de terceiros.

Há algum padrão que eu cumpra em relação ao armazenamento dos detalhes? Aceitamos cartões de crédito há anos, mas costumávamos descartar os detalhes deles assim que terminávamos com eles. Nossos clientes solicitaram que armazenássemos seus detalhes para que não precisassem pagar manualmente sua taxa de assinatura todos os meses.

Mudar para o PayPal para utilizar suas assinaturas não é uma opção. Temos que armazená-los e preciso garantir que o armazenamento seja seguro!

Utilizamos o MSSQL 2005 para nossos dados e tudo já está SSL.

Mark Henderson
fonte

Respostas:

86

Você precisará seguir (conforme a letra) e, de preferência, exceder o padrão PCI DSS . Isso não é de forma alguma uma tarefa fácil de realizar, nem deve ser tomada trivialmente.

Eu recomendo fortemente que você encontre um processador de terceiros que possa lidar com isso e integrá-lo ao seu sistema de cobrança. Vai muito além de apenas ter SSL e criptografar as informações no banco de dados. Você também deve monitorar o acesso, detectar invasões, instalar sistemas que notifiquem apenas as pessoas afetadas em caso de violação (e determinar quais dados podem ter sido comprometidos), etc.

Depois, há acesso físico aos servidores, à rede etc. Isso significa um gabinete bloqueado que não é compartilhado nos servidores que você possui, onde a LAN física também é protegida. A conformidade não será barata nem fácil.

Realmente, gaste todo o esforço possível para descarregar isso para terceiros. A responsabilidade por si só não vale o risco, a menos que você esteja falando de transações que chegam a centenas de milhares de (insira sua moeda aqui) mensalmente. Nesse caso, as taxas que você economiza podem justificar a contratação do talento necessário para implementar e monitorar sistemas que armazenam as informações. Você precisará:

  • Programadores de sistemas (você precisará de ganchos de auditoria no nível do sistema de arquivos e kernel)
  • Gurus de IDS / IPS (a menos que você goste de aprisionamento de fornecedores)
  • Equipe 24/7/365 para monitorar os alertas gerados a partir dos sistemas projetados pelos especialistas. Essas pessoas não são baratas, tomam a decisão de puxar o plugue de cobrança ou relatar um erro nos algoritmos que você usa.

E, novamente, você pode transferir tudo isso para terceiros, com um preço bastante baixo.

Tim Post
fonte
Hmm, já estamos na metade do caminho porque lidamos com informações confidenciais em nome de nossos clientes (servidores bloqueados e detecção de intrusões e IPSec na DMZ já estão em vigor). Vou ter uma boa leitura, obrigado.
Mark Henderson
@ Farseeker - Além de impedir o acesso ilegal, a parte mais importante é detectá-lo e descobrir o que pode ter sido comprometido e quem precisa ser notificado rapidamente. Observe que isso também incluiria cópias não autorizadas dos arquivos que fazem backup do banco de dados.
Tim Post
5
O fato de você estar manipulando os dados do cartão de crédito agora, mesmo que não os esteja armazenando permanentemente, significa que você precisa estar em conformidade com o PCI DSS.
Stephen Jennings
@ Stephen - Manuseio e armazenamento são coisas completamente separadas quando se trata de PCI. Manipular apenas significa POSTAR alguns dados para um gateway e aguardar uma resposta. Armazenar é sua própria lata de vermes.
Tim Post
O requisito 3.2 do PCI DSS indica que o código de rastreamento e verificação não pode ser armazenado após a autorização, mesmo se criptografado, e isso inclui TODOS os logs, incluindo os logs de transações do banco de dados.
Leigh Riffel
23

Nunca é uma boa idéia para armazenar detalhes de cartão de crédito cada vez . Você está se preparando para uma queda, qualquer gateway de pagamento decente permitirá que você faça transações recorrentes com um token em que não precisa armazenar os detalhes do cartão de crédito.

Whisk
fonte
3
+1 para a ideia de nunca armazenar CCs no seu banco de dados. Nosso provedor de gateway de pagamento armazena todas essas informações agora, o que é um grande alívio para nossa exposição à segurança.
Milner
Por exemplo, uma dessas ofertas é Authorize.net Customer Information Manager (CIM) authorize.net/solutions/merchantsolutions/merchantservices/cim e desde que o faturamento recorrente foi mencionado Faturamento recorrente automatizado (ARB) authorize.net/solutions/merchantsolutions/merchantservices/ ... Você pode armazená-los, mas eles nunca estarão seguros. No final, você pagará quanto custaria os serviços em reputação perdida, vendas perdidas, multas do processador e qualquer litígio resultante do comprometimento dos dados.
Fiasco Labs
13

Muitas respostas que você procura podem ser encontradas no site do Guia de conformidade do setor de cartões de pagamento . Sua página de links é particularmente útil.

A melhor sugestão seria permitir que terceiros lidassem com esse armazenamento.

Bryson
fonte
Eu já vi essa coisa do PCI há alguns anos, nunca tive idéia do que realmente era. Obrigado.
Mark Henderson
8

O seu comerciante de terceiros não inclui a opção de pagamentos contínuos com cartão de crédito - a maioria dos principais aqui no Reino Unido certamente (DataCash, RBS World Pay, etc.).

Basicamente, você envia os Detalhes do cartão uma vez, com uma solicitação de autoridade do CCC (que, se bem me lembro, precisa incluir o cronograma e a quantidade regulares esperados) e, em seguida, você recebe um token de volta. Todos os meses, o que quer que você faça uma pesquisa no comerciante com o token, e eles processam as transações subseqüentes para você - geralmente também há recursos para configurá-las para solicitações variáveis ​​ad-hoc. O principal requisito é notificar o cliente (geralmente pelo menos 10 dias) antes de efetuar o pagamento.

Dessa forma, você não está armazenando os detalhes do CC em nenhum lugar, tudo isso está sendo tratado por pessoas que atenderam aos requisitos.

Isso é semelhante a realizar pré-autorizações em um cartão; portanto, você nunca precisará armazenar o cartão de crédito, apenas um token do comerciante para o qual você pode ligar conforme necessário.

Zhaph - Ben Duguid
fonte
4

Temos que armazená-los e preciso garantir que o armazenamento seja seguro!

Uma pergunta: por que?

Só peço isso porque tenho que lidar com PCI, e acompanhá-lo é uma dor. Embora meu trabalho diário nos qualifique como o nível mais baixo para conformidade com PCI, ainda há muito a fazer. Criptografia, considerações de privilégios mínimos, segurança do sistema operacional do servidor, segurança de rede interna, segurança de fronteiras, auditorias de terceiros ... tudo é muito para acompanhar. E isso mesmo conosco, sem armazenar informações de cartão de crédito!

(Nota: Se você está fazendo comércio eletrônico, é necessário estar em conformidade com o PCI, mesmo que não esteja armazenando os dados do CC.

Procure fazer com que seu processador lide com isso. Usamos o Authorize.net e eles têm uma API maravilhosa para que possamos criar nosso próprio front-end personalizado, mas eles cuidam de armazenar e lidar com os pagamentos reais. Se quisermos configurar o faturamento recorrente, eles têm um sistema para armazenar as informações. Honestamente, confio neles mais do que em mim.

dragonmantank
fonte
4

Como outras pessoas mencionaram, você está procurando por PCI-DSS. Além disso, como outras pessoas mencionaram, é provável que a conformidade seja proibitivamente cara para sites pequenos.

Mudar para o PayPal para utilizar suas assinaturas não é uma opção. Temos que armazená-los e preciso garantir que o armazenamento seja seguro!

Você pode armazenar localmente um ID que identifique as informações do cartão de crédito do cliente no seu gateway de pagamento. Não sei se o PayPal oferece essa opção, mas existem outros meios de pagamento.

Lembre-se também de que, mesmo que você não esteja armazenando os dados do cartão de crédito em disco, ainda estará no escopo de alguns requisitos do PCI-DSS. De longe, a maneira mais fácil de estar em conformidade é não levar nenhum dado de CC (ou seja: postando o formulário de pagamento diretamente no gateway de pagamento).

Thiago Figueiro
fonte
3

Serviços como http://chargify.com/ oferecem uma camada extra em cima dos gateways de pagamento existentes. Eles provavelmente oferecerão todo tipo de maneira de armazenar cartões de crédito para você, implementar pagamentos recorrentes e até criar relatórios para você.

Isso permitirá que você contorne todo o problema de responsabilidade e conformidade com o PCI. Uma preocupação que tenho é se um dia você deseja alterar fornecedores, contas de comerciante ou gateways. Como você leva seus 10.000 clientes? Eles entregam um banco de dados de cartões de crédito? O trabalho será feito com um concorrente para transferir as informações do cartão de crédito?

Eu duvido. É provável que você precise solicitar a todos os seus clientes que reenviem as informações de faturamento se alterar os fornecedores. Esse é um pequeno argumento a favor do armazenamento das informações do cartão de crédito. Provavelmente só vale a pena se você tiver muitos clientes e muita receita. Eu ficaria muito curioso em ouvir os pensamentos de outras pessoas sobre esse enigma particular.

zaqintosh
fonte
Esse é um ponto muito bom, eu não tinha pensado nisso. Estamos usando o SecurePay há cerca de 5 a 6 anos e não tivemos nenhuma preocupação com eles, então acho que ficaríamos com eles, mas quem sabe o que o futuro reserva ...
Mark Henderson
2

Eu não tenho representante suficiente para votar ou comentar ainda, então isso está indo em uma nova resposta. Como zhaph apontou , muitas empresas comerciantes oferecem um sistema de pagamento recorrente, onde eles cuidam do armazenamento para você.

Usamos o Authorize.net para clientes que não desejam usar o PayPal e está funcionando muito bem (nossa única grande reclamação é que a chave da API é redefinida a cada 6 meses e eles não se preocupam em notificá-lo quando isso acontece. página simplesmente para de funcionar). A API deles é baseada em XML e você pode encontrar wrappers para ele em praticamente todos os idiomas.

ChiperSoft
fonte
1

Observe que, se você decidir armazenar as informações do cartão de crédito em seu próprio banco de dados, não deverá, em hipótese alguma, armazenar o código de segurança do cartão de 3 dígitos . Fazer isso é estritamente proibido pelas associações de cartões.

BTW, você não precisa do código de segurança do cartão para fazer uma transação. Ele melhora a taxa de detecção de fraudes, mas você não precisa disso se tiver um relacionamento contínuo com o cliente. (E mesmo que você ache necessário, não poderá armazená-lo. Não importa o que aconteça.)

Também apóio as outras recomendações para não armazenar as informações. O Customer Information Manager do Authorize.Net é fácil e barato de usar. Será MUITO MAIS BARATO para você usá-lo, em vez de incorrer nos custos de PCI inerentes ao armazenamento das informações em seus próprios servidores.

Larry K
fonte
1

Se você deseja armazenar cartões de crédito em seu banco de dados, a criptografia é fundamental. Você também vai querer (ou talvez precisar) que terceiros façam testes de conformidade de rotina para garantir que seus sistemas estejam prontos.

Milner
fonte
5
Mas não armazene CCs no seu banco de dados. Não.
dimo414
Criptografia é apenas o começo. Baixe o SAQ (Questionário de auto-avaliação) aplicável pcisecuritystandards.org/merchants/self_assessment_form.php e comece a descobrir que a criptografia do banco de dados está bem abaixo da lista de requisitos. Há tantas maneiras de vazar credenciais de cartão de crédito que você nem tocou que pertencem ao armazenamento de cartão de crédito.
Fiasco Labs