Zahlungsabwickler - Was muss ich wissen, wenn ich Kreditkarten auf meiner Website akzeptieren möchte? [geschlossen]


258

In dieser Frage geht es um verschiedene Zahlungsabwickler und deren Kosten. Ich suche jedoch nach einer Antwort darauf, was ich tun muss, wenn ich Kreditkartenzahlungen akzeptieren möchte.

Angenommen, ich muss Kreditkartennummern für Kunden speichern , damit die offensichtliche Lösung, sich beim schweren Heben auf den Kreditkartenprozessor zu verlassen, nicht verfügbar ist.

PCI Data Security , anscheinend der Standard zum Speichern von Kreditkarteninformationen, stellt eine Reihe allgemeiner Anforderungen, aber wie werden diese implementiert ?

Und was ist mit den Anbietern wie Visa , die ihre eigenen Best Practices haben?

Muss ich einen Schlüsselanhängerzugriff auf das Gerät haben? Was ist mit dem physischen Schutz vor Hackern im Gebäude? Oder sogar, wenn jemand die Sicherungsdateien mit den SQL Server-Datendateien in die Hände bekommen hat?

Was ist mit Backups? Gibt es noch andere physische Kopien dieser Daten?

Tipp: Wenn Sie ein Händlerkonto haben, sollten Sie aushandeln, dass Ihnen "Interchange-Plus" anstelle von Staffelpreisen berechnet wird. Bei gestaffelten Preisen berechnen sie Ihnen unterschiedliche Tarife, je nachdem, welche Art von Visa / MC verwendet wird - d. H. Sie verlangen mehr für Karten mit großen Belohnungen. Austausch plus Abrechnung bedeutet, dass Sie dem Verarbeiter nur das bezahlen, was Visa / MC ihm berechnet, zuzüglich einer Pauschalgebühr. (Amex und Discover berechnen ihre eigenen Tarife direkt den Händlern, daher gilt dies nicht für diese Karten. Amex-Tarife liegen im Bereich von 3% und Discover kann nur 1% betragen. Visa / MC ist in der 2% Bereich). Dieser Dienst soll die Verhandlungen für Sie führen (ich habe ihn nicht verwendet, dies ist keine Anzeige und ich bin nicht mit der Website verbunden.

Dieser Blog-Beitrag bietet einen vollständigen Überblick über den Umgang mit Kreditkarten (speziell für Großbritannien).


Vielleicht habe ich die Frage falsch formuliert, aber ich suche nach Tipps wie diesen:

  1. Verwenden Sie SecurID oder eToken , um der physischen Box eine zusätzliche Kennwortebene hinzuzufügen.
  2. Stellen Sie sicher, dass sich die Box in einem Raum mit einer physischen Schloss- oder Schlüsselcode-Kombination befindet.

1
Dies wurde von PA-DSS 2.0 abgelehnt.

Antworten:


236

Ich habe diesen Prozess vor nicht allzu langer Zeit mit einem Unternehmen durchlaufen, für das ich gearbeitet habe, und ich habe vor, ihn bald mit meinem eigenen Unternehmen erneut zu durchlaufen. Wenn Sie über netzwerktechnische Kenntnisse verfügen, ist dies wirklich nicht so schlimm. Andernfalls ist es besser, wenn Sie Paypal oder eine andere Art von Service verwenden.

Der Prozess beginnt mit der Einrichtung eines Händlerkontos, das an Ihr Bankkonto gebunden ist. Möglicherweise möchten Sie sich bei Ihrer Bank erkundigen, da viele große Banken Händlerservices anbieten. Möglicherweise können Sie Angebote erhalten, da Sie bereits Kunde von ihnen sind. Wenn nicht, können Sie sich umsehen. Wenn Sie vorhaben, Discover oder American Express zu akzeptieren, sind diese separat, da sie die Händlerservices für ihre Karten bereitstellen, ohne dies zu umgehen. Es gibt auch andere Sonderfälle. Dies ist ein Bewerbungsprozess, vorbereitet sein.

Als Nächstes möchten Sie ein SSL-Zertifikat erwerben , mit dem Sie Ihre Kommunikation sichern können, wenn die Kreditkarteninformationen über öffentliche Netzwerke übertragen werden. Es gibt viele Anbieter, aber meine Faustregel lautet, einen auszuwählen, der in gewisser Weise ein Markenname ist. Je besser sie bekannt sind, desto besser hat Ihr Kunde wahrscheinlich von ihnen gehört.

Als Nächstes möchten Sie ein Zahlungsgateway finden , das Sie mit Ihrer Site verwenden können. Dies kann zwar optional sein, je nachdem wie groß Sie sind, aber die meiste Zeit wird es nicht sein. Du wirst einen brauchen. Die Anbieter von Zahlungsgateways bieten eine Möglichkeit, mit der Internet Gateway-API zu kommunizieren, mit der Sie kommunizieren werden. Die meisten Anbieter bieten HTTP- oder TCP / IP-Kommunikation mit ihrer API an. Sie werden die Kreditkarteninformationen in Ihrem Namen verarbeiten. Zwei Anbieter sind Authorize.Net und PayFlow Pro . Der unten angegebene Link enthält weitere Informationen zu anderen Anbietern.

Was jetzt? Für den Anfang gibt es Richtlinien, was Ihre Anwendung für die Übertragung der Transaktionen einhalten muss. Während des Einrichtungsprozesses wird jemand Ihre Site oder Anwendung überprüfen und sicherstellen, dass Sie die Richtlinien wie die Verwendung von SSL einhalten und dass Sie über Nutzungsbedingungen und Richtliniendokumentation zu den Informationen verfügen, die der Benutzer Ihnen gibt zum. Stehlen Sie dies nicht von einer anderen Site. Überlegen Sie sich Ihren eigenen und beauftragen Sie gegebenenfalls einen Anwalt. Die meisten dieser Dinge fallen unter den PCI-Datensicherheitslink, den Michael in seiner Frage angegeben hat.

Wenn Sie die Kreditkartennummern speichern möchten, sollten Sie besser darauf vorbereitet sein, intern einige Sicherheitsmaßnahmen zu ergreifen, um die Informationen zu schützen. Stellen Sie sicher, dass der Server, auf dem die Informationen gespeichert sind, nur Mitgliedern zugänglich ist, die Zugriff benötigen. Wie bei jeder guten Sicherheit erledigen Sie die Dinge in Schichten. Je mehr Schichten Sie anbringen, desto besser. Wenn Sie möchten, können Sie die Sicherheit vom Typ Schlüsselanhänger wie SecureID oder eToken verwendenUm den Raum zu schützen, in dem sich der Server befindet. Wenn Sie sich die Route des Schlüsselanhänger nicht leisten können, verwenden Sie die Zwei-Schlüssel-Methode. Erlauben Sie einer Person, die Zugang zum Raum hat, einen Schlüssel abzumelden, der zu einem Schlüssel gehört, den sie bereits bei sich hat. Sie benötigen beide Schlüssel, um in den Raum zu gelangen. Als nächstes schützen Sie die Kommunikation zum Server mit Richtlinien. Meine Richtlinie lautet, dass das einzige, was über das Netzwerk mit ihm kommuniziert, die Anwendung ist und dass die Informationen verschlüsselt sind. Der Server sollte in keiner anderen Form zugänglich sein. Für Backups verwende ich truecryptUm die Volumes zu verschlüsseln, werden die Backups gespeichert. Jedes Mal, wenn die Daten entfernt oder an einem anderen Ort gespeichert werden, verwenden Sie erneut truecrypt, um das Volume zu verschlüsseln, auf dem sich die Daten befinden. Grundsätzlich müssen die Daten überall dort verschlüsselt werden, wo sie sich befinden. Stellen Sie sicher, dass alle Prozesse zum Abrufen der Daten Prüfpfade enthalten. Verwenden Sie Protokolle für den Zugriff auf den Serverraum, verwenden Sie Kameras, wenn Sie können usw. Eine weitere Maßnahme besteht darin, die Kreditkarteninformationen in der Datenbank zu verschlüsseln. Dadurch wird sichergestellt, dass die Daten nur in Ihrer Anwendung angezeigt werden können, wo Sie erzwingen können, wer die Informationen sieht.

Ich benutze pfsense für meine Firewall. Ich starte es von einer Compact Flash-Karte und habe zwei Server eingerichtet. Eine ist für Failover aus Redundanz.

Ich habe diesen Blog-Beitrag von Rick Strahl gefunden, der mir enorm geholfen hat, den E-Commerce und die Akzeptanz von Kreditkarten über eine Webanwendung zu verstehen.

Nun, dies stellte sich als lange Antwort heraus. Ich hoffe diese Tipps helfen.


13
Perfekte Antwort. Ich hoffe, dass andere dazu beitragen.
Michael Pryor

3
Eines der besten, das ich je gesehen habe ... +1
Frederic Morin

2
@ Michael Pryor: Wenn es so perfekt ist, warum müssen andere es ergänzen? Huh ???
Donut

17
@donut: Weil die Zeit vergeht und die Antworten selten statisch bleiben.
Anonymer Typ

22

Stellen Sie sich folgende Frage: Warum möchten Sie überhaupt Kreditkartennummern speichern ? Wahrscheinlich tun Sie das nicht. In der Tat, wenn Sie sie speichern und es schaffen, einen zu stehlen, könnten Sie eine ernsthafte Haftung in Betracht ziehen.

Ich habe eine App geschrieben, in der Kreditkartennummern gespeichert werden (da die Transaktionen offline verarbeitet wurden). Hier ist ein guter Weg, dies zu tun:

  • Holen Sie sich ein SSL-Zertifikat!
  • Erstellen Sie ein Formular, um CC # vom Benutzer zu erhalten.
  • Verschlüsseln Sie einen Teil (nicht alle!) Der CC # und speichern Sie ihn in Ihrer Datenbank. (Ich würde die mittleren 8 Ziffern vorschlagen.) Verwenden Sie eine starke Verschlüsselungsmethode und einen geheimen Schlüssel.
  • Senden Sie den Rest der CC-Nummer mit der ID der zu verarbeitenden Person an denjenigen, der Ihre Transaktionen verarbeitet (wahrscheinlich an Sie selbst).
  • Wenn Sie sich später anmelden, geben Sie die ID und den versendeten Teil der CC-Nummer ein. Ihr System kann den anderen Teil entschlüsseln und neu kombinieren, um die vollständige Nummer zu erhalten, sodass Sie die Transaktion verarbeiten können.
  • Löschen Sie abschließend den Online-Datensatz. Meine paranoide Lösung bestand darin, den Datensatz vor dem Löschen mit zufälligen Daten zu überschreiben, um die Möglichkeit eines Wiederherstellens auszuschließen.

Das klingt nach viel Arbeit, aber wenn Sie niemals irgendwo eine vollständige CC # aufzeichnen, wird es für einen Hacker extrem schwierig, etwas Wertvolles auf Ihrem Webserver zu finden. Vertrauen Sie mir, es ist die Ruhe wert.


1
Schauen Sie sich den Kommentar an, den Michael für Sam Wessel unten hinterlassen hat.
Dale Ragan

17

Das PCI 1.2-Dokument wurde gerade veröffentlicht. Es enthält einen Prozess zum Implementieren der PCI-Konformität zusammen mit den Anforderungen. Das vollständige Dokument finden Sie hier:

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

Kurz gesagt, erstellen Sie ein separates Netzwerksegment für die Server, auf denen CC-Informationen gespeichert werden sollen (normalerweise DB-Server). Isolieren Sie die Daten so weit wie möglich und stellen Sie sicher, dass nur der für den Zugriff auf die Daten erforderliche Mindestzugriff vorhanden ist. Verschlüsseln Sie es, wenn Sie es speichern. Lagern Sie niemals PANs. Löschen Sie alte Daten und drehen Sie Ihre Verschlüsselungsschlüssel.

Beispiel Don'ts:

  • Lassen Sie nicht dasselbe Konto, das allgemeine Informationen in der Datenbank nachschlagen kann, CC-Informationen nachschlagen.
  • Bewahren Sie Ihre CC-Datenbank nicht auf demselben physischen Server wie Ihren Webserver auf.
  • Lassen Sie keinen externen (Internet-) Verkehr in Ihr CC-Datenbanknetzwerksegment zu.

Beispiel Dos:

  • Verwenden Sie ein separates Datenbankkonto, um CC-Informationen abzufragen.
  • Verbieten Sie den gesamten bis auf den erforderlichen Datenverkehr zum CC-Datenbankserver über Firewall- / Zugriffslisten
  • Beschränken Sie den Zugriff auf den CC-Server auf eine begrenzte Anzahl autorisierter Benutzer.

5
Beachten Sie, dass PCI-DSS - Anforderungen für alle Systeme gelten , dass Kartendaten durchläuft und nicht nur , wo sie gespeichert sind . Die gleichen Sicherheitsbeschränkungen und -anforderungen gelten daher auch für den Webserver / App-Server (und Sites, die zu allen anderen vhosts auf diesen Computern gehören) und alle anderen Hosts im selben Netzwerksegment wie diese Computer.
Cheekysoft

Und wenn Sie Kreditkartennummern über das Telefon oder auf Papier akzeptieren und diese in Ihren Desktop-Computer eingeben, gelten auch dort dieselben Einschränkungen.
Stobor

15

Ich möchte einen nicht technischen Kommentar hinzufügen, über den Sie vielleicht nachdenken möchten

Einige meiner Kunden betreiben E-Commerce-Websites, darunter einige mit mäßig großen Geschäften. Beide, obwohl sie sicherlich auch ein Zahlungsgateway implementieren könnten, nehmen die CC-Nummer, speichern sie vorübergehend online verschlüsselt und verarbeiten sie manuell.

Sie tun dies aufgrund der hohen Betrugsrate und der manuellen Verarbeitung, die es ihnen ermöglicht, zusätzliche Prüfungen durchzuführen, bevor sie eine Bestellung ausführen. Mir wurde gesagt, dass sie etwas mehr als 20% aller Transaktionen ablehnen - die manuelle Verarbeitung nimmt sicherlich zusätzliche Zeit in Anspruch, und in einem Fall haben sie einen Mitarbeiter, der nur Transaktionen verarbeitet, aber die Kosten für die Zahlung seines Gehalts sind anscheinend geringer als ihre Belichtung, wenn sie nur CC-Nummern über ein Online-Gateway übergeben haben.

Beide Kunden liefern physische Waren mit Wiederverkaufswert, sind also besonders exponiert und für Artikel wie Software, bei denen ein betrügerischer Verkauf nicht zu einem tatsächlichen Verlust führen würde, würde Ihr Kilometerstand variieren, aber es lohnt sich, die technischen Aspekte eines Online-Gateways zu berücksichtigen wenn die Implementierung wirklich das ist, was Sie wollen.

EDIT: Und seit ich diese Antwort erstellt habe, möchte ich eine warnende Geschichte hinzufügen und sagen, dass die Zeit vorbei ist, in der dies eine gute Idee war.

Warum? Weil ich einen anderen Kontakt kenne, der einen ähnlichen Ansatz verfolgte. Die Kartendetails wurden verschlüsselt gespeichert, auf die Website wurde über SSL zugegriffen und die Nummern wurden sofort nach der Verarbeitung gelöscht. Sicher denkst du?

Kein Computer in seinem Netzwerk wurde von einem Schlüsselprotokollierungs-Trojaner infiziert. Infolgedessen wurden sie als Quelle für mehrere Kreditkartenfälschungen identifiziert - und infolgedessen von einer hohen Geldstrafe betroffen.

Als Folge davon jetzt ich nie jemand Griff Kreditkarten selbst beraten. Zahlungsgateways sind seitdem viel wettbewerbsfähiger und kostengünstiger geworden, und die Betrugsmaßnahmen haben sich verbessert. Das Risiko lohnt sich jetzt nicht mehr.

Ich könnte diese Antwort löschen, aber ich denke, es ist am besten, sie als warnende Geschichte bearbeitet zu lassen.


1
Dies ist ein wirklich nützlicher Kommentar, über den ich nie nachgedacht habe. Danke
0plus1

8

Denken Sie daran, dass die Verwendung von SSL zum Senden einer Kartennummer von einem Browser an einen Server dem Abdecken Ihrer Kreditkartennummer mit dem Daumen gleicht, wenn Sie Ihre Karte einem Kassierer in einem Restaurant übergeben: Ihr Daumen (SSL) verhindert, dass andere Kunden im Restaurant sind (das Netz) kann die Karte nicht sehen, aber sobald sich die Karte in den Händen des Kassierers (eines Webservers) befindet, ist die Karte nicht mehr durch den SSL-Austausch geschützt, und der Kassierer kann mit dieser Karte alles tun. Der Zugriff auf eine gespeicherte Kartennummer kann nur durch die Sicherheit auf dem Webserver gestoppt werden. Das heißt, die meisten Kartendiebstähle im Internet werden nicht während der Übertragung durchgeführt, sondern durch das Durchbrechen einer schlechten Serversicherheit und den Diebstahl von Datenbanken.


Hier kommt PCI DSS ins Spiel. Das heißt, indem nicht die vollständige PAN auf dem Server gespeichert wird.
Martin Clarke

5

Warum sich mit PCI-Konformität beschäftigen? Bestenfalls sparen Sie einen Bruchteil eines Prozentes Ihrer Bearbeitungsgebühren. Dies ist einer der Fälle, in denen Sie sicher sein müssen, dass Sie dies mit Ihrer Zeit tun möchten, sowohl im Vorfeld der Entwicklung als auch im Laufe der Zeit, um mit den neuesten Anforderungen Schritt zu halten.

In unserem Fall war es am sinnvollsten, ein abonnementsicheres Gateway zu verwenden und dieses mit einem Händlerkonto zu koppeln. Mit dem abonnementsicheren Gateway können Sie die gesamte PCI-Konformität überspringen und lediglich die eigentliche Transaktion verarbeiten.

Wir verwenden TrustCommerce als unser Gateway und sind mit ihrem Service / Preis zufrieden. Sie haben Code für eine Reihe von Sprachen, der die Integration ziemlich einfach macht.


5
Ein Grund wäre, zu vermeiden, vom Zahlungsgateway als Geisel genommen zu werden. Wenn Sie zu einem anderen Gateway wechseln möchten, bietet Ihnen das vorherige Gateway wahrscheinlich keinen Zugriff auf alle CC-Informationen Ihrer Kunden, sodass Sie gefragt werden müssen Kunden für die CC-Details beim Kauf mit dem neuen Zahlungsgateway.
Weiter

3

Stellen Sie sicher, dass Sie die zusätzliche Arbeit und das Budget für PCI im Griff haben. PCI erfordert möglicherweise enorme externe Prüfungsgebühren und internen Aufwand / Support. Beachten Sie auch die Bußgelder / Strafen, die einseitig gegen Sie verhängt werden können und die oft in keinem Verhältnis zum Ausmaß des „ofense“ stehen.


2

Der ganze Prozess hat viel zu bieten. Der einfachste Weg, dies zu tun, besteht darin, Dienste zu verwenden, die Paypal ähneln, so dass Sie niemals mit Kreditkartendaten umgehen. Abgesehen davon gibt es eine Menge Dinge zu erledigen, um die Genehmigung für das Anbieten von Kreditkartendiensten auf Ihrer Website zu erhalten. Sie sollten wahrscheinlich mit Ihrer Bank und den Personen sprechen, die Ihre Händler-ID ausstellen, um Sie bei der Einrichtung des Prozesses zu unterstützen.


2

Wie andere bereits erwähnt haben, ist der einfachste Weg in diesen Bereich die Verwendung von Paypal , Google Checkout oder Nochex . Wenn Sie jedoch beabsichtigen, ein beträchtliches Geschäftsvolumen zu erreichen, möchten Sie möglicherweise nach einem "Upgrade" auf übergeordnete Site-Integrationsdienste wie WorldPay , NetBanx (UK) oder Neteller (US) suchen . Alle diese Dienste sind relativ einfach einzurichten. Und ich weiß, dass Netbanx eine bequeme Integration in einige der Standard-Einkaufswagenlösungen wie Intershop bietet(weil ich einige von ihnen geschrieben habe). Darüber hinaus streben Sie eine direkte Integration in die Bankensysteme (und deren APAX-Systeme) an, aber das ist schwierig, und an diesem Punkt müssen Sie den Kreditkartenunternehmen auch beweisen, dass Sie die Kreditkartennummern sicher behandeln (wahrscheinlich nicht erwägenswert, wenn Sie nehmen keine 100.000 USD pro Monat).

Wenn Sie vom 1. bis zum letzten arbeiten, sind die Kosten / Nutzen darin zu sehen, dass die frühen Optionen viel einfacher (schneller / billiger) einzurichten sind, sodass Sie für jede Transaktion recht hohe Bearbeitungsgebühren zahlen. Die späteren sind viel teurer einzurichten, aber Sie zahlen auf lange Sicht weniger.

Der andere Vorteil der meisten nicht dedizierten Lösungen besteht darin, dass Sie verschlüsselte Kreditkartennummern nicht sicher aufbewahren müssen. Das ist das Problem eines anderen :-)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.