Processeurs de paiement - Que dois-je savoir si je veux accepter les cartes de crédit sur mon site Web? [fermé]

258

Cette question parle de différents processeurs de paiement et de leur coût, mais je cherche la réponse à ce que je dois faire si je veux accepter les paiements par carte de crédit?

Supposons que je doive stocker des numéros de carte de crédit pour les clients, de sorte que la solution évidente de s'appuyer sur le processeur de carte de crédit pour faire le gros du travail n'est pas disponible.

PCI Data Security , qui est apparemment la norme pour le stockage des informations de carte de crédit, a un tas d'exigences générales, mais comment les implémenter ?

Et qu'en est-il des fournisseurs, comme Visa , qui ont leurs propres meilleures pratiques?

Dois-je avoir un accès par télécommande à la machine? Qu'en est-il de le protéger physiquement contre les pirates dans le bâtiment? Ou même si quelqu'un met la main sur les fichiers de sauvegarde avec les fichiers de données du serveur SQL dessus?

Et les sauvegardes? Y a-t-il d'autres copies physiques de ces données?

Astuce: si vous obtenez un compte marchand, vous devez négocier qu'ils vous facturent "interchange-plus" au lieu de la tarification échelonnée. Avec une tarification à plusieurs niveaux, ils vous factureront des tarifs différents en fonction du type de visa / MC utilisé, c'est-à-dire ils vous facturent plus pour les cartes avec de grandes récompenses qui leur sont attachées. Interchange plus la facturation signifie que vous ne payez au processeur que ce que Visa / MC leur facture, plus des frais fixes. (Amex et Discover facturent leurs propres tarifs directement aux marchands, donc cela ne s'applique pas à ces cartes. Vous constaterez que les tarifs Amex se situent dans la fourchette de 3% et Discover pourrait être aussi bas que 1%. Visa / MC est en 2%). Ce service est censé faire la négociation pour vous (je ne l'ai pas utilisé, ce n'est pas une annonce, et je ne suis pas affilié au site,

Ce billet de blog donne un aperçu complet de la gestion des cartes de crédit (spécifiquement pour le Royaume-Uni).


J'ai peut-être mal formulé la question, mais je cherche des conseils comme ceux-ci:

  1. Utilisez SecurID ou eToken pour ajouter une couche de mot de passe supplémentaire à la boîte physique.
  2. Assurez-vous que la boîte se trouve dans une pièce avec une serrure physique ou une combinaison de codes clés.
Michael Pryor
la source
1
Cela a été déconseillé par PA-DSS 2.0.

Réponses:

236

Je suis passé par ce processus il n'y a pas longtemps avec une entreprise pour laquelle je travaillais et je prévois de le refaire bientôt avec ma propre entreprise. Si vous avez des connaissances techniques sur le réseau, ce n'est vraiment pas si mal. Sinon, vous feriez mieux d'utiliser Paypal ou un autre type de service.

Le processus commence par obtenir une configuration de compte marchand et lié à votre compte bancaire. Vous voudrez peut-être vérifier auprès de votre banque, car de nombreuses grandes banques fournissent des services marchands. Vous pourrez peut-être obtenir des offres, car vous êtes déjà un de leurs clients, mais sinon, vous pouvez faire le tour. Si vous envisagez d'accepter Discover ou American Express, ceux-ci seront séparés, car ils fournissent les services marchands pour leurs cartes, sans contourner cela. Il existe également d'autres cas particuliers. Il s'agit d'un processus de demande, soyez prêt.

Ensuite, vous voudrez acheter un certificat SSL que vous pouvez utiliser pour sécuriser vos communications lorsque les informations de carte de crédit sont transmises sur les réseaux publics. Il y a beaucoup de fournisseurs, mais ma règle d'or est de choisir celui qui est une marque en quelque sorte. Mieux ils sont connus, mieux votre client en a probablement entendu parler.

Ensuite, vous souhaiterez trouver une passerelle de paiement à utiliser avec votre site. Bien que cela puisse être facultatif en fonction de votre taille, mais la plupart du temps ce ne sera pas le cas. Vous en aurez besoin. Les fournisseurs de passerelles de paiement offrent un moyen de communiquer avec l'API Internet Gateway avec laquelle vous communiquerez. La plupart des fournisseurs fournissent une communication HTTP ou TCP / IP avec leur API. Ils traiteront les informations de carte de crédit en votre nom. Deux fournisseurs sont Authorize.Net et PayFlow Pro . Le lien que je fournis ci-dessous contient plus d'informations sur d'autres fournisseurs.

Maintenant quoi? Pour commencer, il existe des directives sur ce que votre application doit respecter pour transmettre les transactions. Au cours du processus de configuration, quelqu'un examinera votre site ou votre application et s'assurera que vous respectez les directives, comme l'utilisation de SSL et que vous avez des conditions d'utilisation et une documentation de politique sur les informations utilisées par l'utilisateur. pour. Ne volez pas cela sur un autre site. Venez avec le vôtre, engagez un avocat si vous en avez besoin. La plupart de ces éléments relèvent du lien PCI Data Security fourni par Michael dans sa question.

Si vous prévoyez de stocker les numéros de carte de crédit, il vaut mieux être prêt à mettre en place des mesures de sécurité en interne pour protéger les informations. Assurez-vous que le serveur sur lequel les informations sont stockées n'est accessible qu'aux membres qui doivent y avoir accès. Comme toute bonne sécurité, vous faites les choses en couches. Plus vous mettez de couches en place, mieux c'est. Si vous le souhaitez, vous pouvez utiliser la sécurité de type porte-clés, comme SecureID ou eTokenpour protéger la pièce dans laquelle se trouve le serveur. Si vous ne pouvez pas vous permettre la route du porte-clés, utilisez la méthode des deux clés. Permettre à une personne ayant accès à la salle de se déconnecter d'une clé, qui va de pair avec une clé qu'elle porte déjà. Ils auront besoin des deux clés pour accéder à la salle. Ensuite, vous protégez la communication avec le serveur avec des stratégies. Ma politique est que la seule chose qui lui communique via le réseau est l'application et que les informations sont cryptées. Le serveur ne doit être accessible sous aucune autre forme. Pour les sauvegardes, j'utilise truecryptpour chiffrer les volumes sur lesquels les sauvegardes seront enregistrées. Chaque fois que les données sont supprimées ou stockées ailleurs, vous utilisez à nouveau truecrypt pour crypter le volume des données. Fondamentalement, où que se trouvent les données, elles doivent être chiffrées. Assurez-vous que tous les processus permettant d'accéder aux données comportent des pistes d'audit. utilisez des journaux pour accéder à la salle des serveurs, utilisez des caméras si vous le pouvez, etc ... Une autre mesure consiste à crypter les informations de carte de crédit dans la base de données. Cela garantit que les données ne peuvent être consultées que dans votre application, où vous pouvez appliquer qui voit les informations.

J'utilise pfsense pour mon pare-feu. Je l'exécute sur une carte flash compacte et j'ai configuré deux serveurs. L'un est pour le basculement pour la redondance.

J'ai trouvé ce billet de blog de Rick Strahl qui m'a énormément aidé à comprendre le commerce électronique et ce qu'il faut pour accepter les cartes de crédit via une application Web.

Eh bien, cela s'est avéré être une longue réponse. J'espère que ces conseils vous aideront.

Dale Ragan
la source
13
Réponse parfaite. J'espère que d'autres y ajouteront.
Michael Pryor,
3
L'un des meilleurs que j'ai vus .... +1
Frédéric Morin
2
@Michael Pryor: Si c'est si parfait, pourquoi les autres doivent-ils y ajouter? Hein ???
donut
17
@donut: Parce que le temps passe et que les réponses restent rarement statiques.
Type anonyme
22

Posez-vous la question suivante: pourquoi voulez-vous enregistrer les numéros de carte de crédit en premier lieu ? Les chances sont que vous ne le faites pas. En fait, si vous les stockez et parvenez à en faire voler un, vous pourriez envisager une responsabilité sérieuse.

J'ai écrit une application qui stocke les numéros de carte de crédit (puisque les transactions ont été traitées hors ligne). Voici une bonne façon de procéder:

  • Obtenez un certificat SSL!
  • Créez un formulaire pour obtenir CC # de l'utilisateur.
  • Cryptez une partie (pas tout!) Du CC # et stockez-la dans votre base de données. (Je suggère les 8 chiffres du milieu.) Utilisez une méthode de cryptage forte et une clé secrète.
  • Postez le reste du CC # à quiconque traite vos transactions (probablement vous-même) avec l'ID de la personne à traiter.
  • Lorsque vous vous connecterez plus tard, vous saisirez l'ID et la partie envoyée par la poste du CC #. Votre système peut décrypter l'autre partie et se recombiner pour obtenir le numéro complet afin que vous puissiez traiter la transaction.
  • Enfin, supprimez l'enregistrement en ligne. Ma solution paranoïaque était d'écraser l'enregistrement avec des données aléatoires avant la suppression, pour éliminer la possibilité d'une restauration.

Cela ressemble à beaucoup de travail, mais en n'enregistrant jamais un CC # n'importe où, il est extrêmement difficile pour un pirate de trouver quoi que ce soit de valeur sur votre serveur Web. Croyez-moi, ça vaut la tranquillité d'esprit.

Mike
la source
1
Découvrez le commentaire que Michael a laissé pour Sam Wessel ci-dessous.
Dale Ragan
17

Le document PCI 1.2 vient de sortir. Il donne un processus sur la façon de mettre en œuvre la conformité PCI avec les exigences. Vous pouvez trouver le document complet ici:

https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml

Pour faire court, créez un segment de réseau distinct pour les serveurs qui seront dédiés au stockage des informations CC (généralement le (s) serveur (s) DB). Isolez les données autant que possible et assurez-vous que seul l'accès minimal nécessaire pour accéder aux données est présent. Chiffrez-le lorsque vous le stockez. Ne stockez jamais de PAN. Purgez les anciennes données et faites pivoter vos clés de chiffrement.

Exemple à ne pas faire:

  • Ne laissez pas le même compte qui peut rechercher des informations générales dans la base de données rechercher des informations CC.
  • Ne conservez pas votre base de données CC sur le même serveur physique que votre serveur Web.
  • N'autorisez pas le trafic externe (Internet) vers votre segment de réseau de base de données CC.

Exemple de Dos:

  • Utilisez un compte de base de données distinct pour interroger les informations CC.
  • Interdire tout le trafic, sauf requis, au serveur de base de données CC via le pare-feu / les listes d'accès
  • Limitez l'accès au serveur CC à un ensemble limité d'utilisateurs autorisés.
Zak
la source
5
Notez que les exigences PCI-DSS s'appliquent à tous les systèmes traversés par les données de carte et pas seulement à l'endroit où elles sont stockées . Les mêmes restrictions et exigences de sécurité s'appliquent donc également au serveur Web / serveur d'applications (et aux sites appartenant à tous les autres vhosts sur ces machines) et à tous les autres hôtes sur le même segment de réseau que ces machines.
Cheekysoft
Et si vous acceptez les numéros de carte de crédit par téléphone ou sur papier et que vous les saisissez sur votre ordinateur de bureau, les mêmes restrictions s'appliquent également.
Stobor
15

Je voudrais ajouter un commentaire non technique auquel vous voudrez peut-être réfléchir

Plusieurs de mes clients gèrent des sites de commerce électronique, dont un couple qui possède des magasins de taille moyenne. Les deux, bien qu'ils puissent certainement mettre en œuvre une passerelle de paiement, ne choisissent pas trop, ils prennent le numéro cc, le stockent temporairement crypté en ligne et le traitent manuellement.

Ils le font en raison de la forte incidence de fraudes et le traitement manuel leur permet d'effectuer des contrôles supplémentaires avant de remplir une commande. On me dit qu'ils rejettent un peu plus de 20% de toutes leurs transactions - le traitement manuel prend certainement plus de temps et dans un cas, ils ont un employé qui ne fait que traiter les transactions, mais le coût du paiement de son salaire est apparemment inférieur à leur exposition s'ils venaient de passer des numéros cc via une passerelle en ligne.

Ces deux clients livrent des biens physiques avec une valeur de revente, ils sont donc particulièrement exposés et pour des articles comme les logiciels où une vente frauduleuse n'entraînerait aucune perte réelle, votre kilométrage varierait, mais cela vaut la peine d'être examiné ci-dessus les aspects techniques d'une passerelle en ligne si l'implémentation est vraiment ce que vous voulez.

EDIT: Et depuis la création de cette réponse, je voudrais ajouter un récit édifiant et dire que le temps est révolu où c'était une bonne idée.

Pourquoi? Parce que je connais un autre contact qui adoptait une approche similaire. Les détails de la carte ont été stockés cryptés, le site Web a été consulté par SSL et les numéros ont été supprimés immédiatement après le traitement. Vous pensez sûr?

Aucune machine de leur réseau n'a été infectée par un cheval de Troie d'enregistrement des clés. En conséquence, ils ont été identifiés comme étant à l'origine de plusieurs falsifications de cartes de crédit - et ont donc été frappés d'une forte amende.

Par conséquent, je ne conseille plus à personne de gérer les cartes de crédit elles-mêmes. Les passerelles de paiement sont depuis devenues beaucoup plus compétitives et rentables, et les mesures de fraude se sont améliorées. Le risque n'en vaut désormais plus la peine.

Je pourrais supprimer cette réponse, mais je pense que le mieux est de laisser le texte édité comme mise en garde.

Cruachan
la source
1
Ceci est un commentaire vraiment utile, quelque chose que je n'ai jamais considéré. Merci
0plus1
8

Gardez à l'esprit que l'utilisation de SSL pour envoyer un numéro de carte d'un navigateur à un serveur, c'est comme couvrir votre numéro de carte de crédit avec votre pouce lorsque vous remettez votre carte à un caissier dans un restaurant: votre pouce (SSL) empêche les autres clients du restaurant (le Net) de voir la carte, mais une fois que la carte est entre les mains du caissier (un serveur Web), la carte n'est plus protégée par l'échange SSL, et le caissier pourrait faire n'importe quoi avec cette carte. L'accès à un numéro de carte enregistré ne peut être arrêté que par la sécurité du serveur Web. C'est-à-dire que la plupart des vols de cartes sur le net ne sont pas effectués pendant la transmission, ils sont effectués en brisant la mauvaise sécurité du serveur et en volant des bases de données.

joe snyder
la source
C'est là que PCI DSS entre en jeu. C'est-à-dire en ne stockant pas le PAN complet sur le serveur.
Martin Clarke
5

Pourquoi s'embêter avec la conformité PCI ?? Au mieux, vous réduirez une fraction de pour cent de vos frais de traitement. C'est l'un de ces cas où vous devez être sûr que c'est ce que vous voulez faire avec votre temps à la fois en amont du développement et au fil du temps en suivant les dernières exigences.

Dans notre cas, il était plus judicieux d'utiliser une passerelle avec abonnement et de l'associer à un compte marchand. La passerelle avec abonnement vous permet de sauter toute la conformité PCI et de ne rien faire de plus que de traiter la transaction correctement.

Nous utilisons TrustCommerce comme notre passerelle et sommes satisfaits de leur service / prix. Ils ont du code pour un tas de langages qui rend l'intégration assez facile.

denton
la source
5
Une des raisons serait d'éviter d'être retenu en otage par la passerelle de paiement, où si vous souhaitez passer à une autre passerelle, la passerelle précédente ne vous donnera probablement pas accès à toutes les informations CC qu'ils ont de vos clients, vous obligeant ainsi à demander clients pour les détails CC à l'achat avec la nouvelle passerelle de paiement. Passez à l'étape 1. :)
Zabba
3

Assurez-vous d'avoir une idée du travail supplémentaire et du budget requis pour PCI. PCI peut nécessiter d'énormes frais d'audit externe et un effort / support interne. Soyez également conscient des amendes / pénalités qui peuvent vous être imposées unilatéralement, souvent extrêmement disproportionnées par rapport à l'échelle de l'offense.

andora
la source
2

Il y a beaucoup à tout le processus. La façon la plus simple de le faire est d'utiliser des services similaires à paypal, afin que vous ne gériez jamais réellement les données de carte de crédit. En dehors de cela, il y a beaucoup de choses à parcourir pour obtenir l'approbation d'offrir des services de carte de crédit sur votre site Web. Vous devriez probablement parler avec votre banque et les personnes qui émettent votre identifiant de commerçant pour vous aider à mettre en place le processus.

Kibbee
la source
2

Comme d'autres l'ont mentionné, le moyen le plus simple d' accéder à ce domaine consiste à utiliser Paypal , Google checkout ou Nochex . Toutefois , si vous avez l' intention d'une quantité importante d'entreprise que vous voudrez peut - être regarder « l' amélioration » des services plus élevés des intégrations du site de niveau tels que WorldPay , NETBANX (Royaume - Uni) ou Neteller (États - Unis) . Tous ces services sont relativement faciles à mettre en place. Et je sais que Netbanx offre une intégration pratique dans certaines des solutions de panier d'achat standard telles qu'Intershop(parce que j'en ai écrit certains). Au-delà de cela, vous envisagez une intégration directe avec les systèmes bancaires (et leurs systèmes APAX), mais c'est difficile et à ce stade, vous devez également prouver aux sociétés émettrices de cartes de crédit que vous gérez les numéros de carte de crédit en toute sécurité (cela ne vaut probablement pas la peine d'être considéré si vous ne prenez pas 100 000 $ par mois).

Du premier au dernier, les coûts / avantages sont que les premières options sont beaucoup plus faciles (plus rapides / moins chères) à mettre en place, ce qui vous fait payer des frais de traitement assez élevés pour chaque transaction. les derniers sont beaucoup plus coûteux à installer, mais vous payez moins à long terme.

L'autre avantage de la plupart des solutions non dédiées est que vous n'avez pas besoin de sécuriser les numéros de carte de crédit cryptés. C'est le problème de quelqu'un d'autre :-)

Vagnerr
la source