Leitfaden zur Integration
Sorgen Sie für PCI-Konformität und eine sichere Kommunikation zwischen Kund/innen und Ihrem Server.
Alle Personen, die an der Verarbeitung, Übertragung und Speicherung von Kartendaten beteiligt sind, müssen den Payment Card Industry Data Security Standard (PCI DSS) einhalten. Stripe wurde von einem unabhängigen Sicherheitsbeauftragten, PCI Qualified Security Assessor (QSA), geprüft und ist als PCI Level 1-Dienstleister zertifiziert. Hierbei handelt es sich um die strengste Zertifizierungsebene, die in der Zahlungsverkehrsbranche möglich ist.
PCI-Konformität ist eine gemeinsame Verantwortung, die sowohl Stripe als auch Ihr Unternehmen übernehmen müssen. Wenn Sie Zahlungen annehmen, muss dies auf PCI-konforme Weise geschehen. Am einfachsten können Sie PCI-Konformität gewährleisten, indem Sie überhaupt keine Kartendaten sehen (oder keinen Zugriff darauf haben). Stripe macht es Ihnen einfach und übernimmt für Sie die schwere Aufgabe, die Kartendaten Ihrer Kund/innen zu schützen. Die Einhaltung Ihrer PCI-Konformität lässt sich einfacher gestalten, solange Folgendes auf Sie zutrifft:
- Sie verwenden eine unserer empfohlenen Zahlungsintegrationen, um Zahlungsinformationen zu erfassen, die sicher direkt an Stripe übermittelt werden, ohne dass sie Ihre Server durchlaufen.
- Sie stellen Ihre Zahlungsseiten sicher mit Transport Layer Security (TLS) bereit, sodass sie HTTPS verwenden.
- Sie überprüfen und validieren jährlich die PCI-Konformität Ihres Kontos.
Validierung Ihrer PCI-Konformität
Alle Stripe-Nutzer/innen müssen ihre PCI-Konformität jährlich validieren. Die meisten Nutzer/innen verwenden dazu einen Selbstbewertungsfragebogen (Self-Assessment Questionnaire, SAQ), der vom PCI Security Standards Council zur Verfügung gestellt wird. Die Art des SAQ hängt von Ihrer Stripe-Integration ab und welche der folgenden Methoden Sie zur Erfassung der Kartendaten nutzen. Bei bestimmten Methoden kann es erforderlich sein, dass Sie zusätzliche PCI-Dokumentation bei Stripe hochladen müssen. Dies erfolgt dann über das Dashboard. Wenn Sie mehr als eine der folgenden Methoden verwenden, müssen Sie nicht mehrere SAQs hochladen.
Wenn Sie nicht wissen, wie Sie nachweisen können, dass Ihr Unternehmen PCI-konform ist (zum Beispiel wenn ein Drittanbieter Ihre Integration erstellt hat), empfehlen wir Ihnen, mit einem PCI-QSA zu sprechen, um zu ermitteln, wie Sie Ihre Konformität gemäß dem aktuellen Leitfaden des PCI Council am besten validieren können.
Anforderungen an PCI-Konformität nach Integration
Integration | Anforderung | Empfehlung |
---|---|---|
Direct API | SAQ D | Wenn Sie Kartendaten direkt an die API von Stripe übergeben, verarbeitet Ihre Integration diese Daten direkt und Sie müssen entsprechend Ihre PCI-Konformität jährlich anhand des SAQ D – dem striktesten Fragebogen – nachweisen. So verringern Sie Ihren Aufwand:
Darüber hinaus ist unser Betrugspräventionstool, Radar, das eine Risikobewertung und Regeln enthält, nur verfügbar, wenn Sie eine unserer Methoden der clientseitigen Tokenisierung verwenden. |
Checkout oder Elements | SAQ A | Checkout und Stripe.js und Elements hosten alle Eingaben zur Kartendatenerfassung in einem iFrame, der von der Domäne von Stripe (nicht von Ihnen) bereitgestellt wird, sodass die Karteninformationen Ihrer Kundinnen und Kunden niemals Ihre Server erreichen. Aus diesem Grund haben Sie die geringste Belastung für die PCI-Konformität. |
Connect | SAQ A | Wenn Sie Kartendaten ausschließlich über eine Connect-Plattform erfassen (wie z. B. Squarespace), können wir feststellen, ob die Plattform die erforderliche PCI-Dokumentation bereitstellt. |
Dashboard | SAQ C-VT | Manuelle Kartenzahlungen über das Dashboard sind nur in Ausnahmefällen möglich, nicht jedoch im Rahmen der routinemäßigen Zahlungsabwicklung. Stellen Sie Ihren Kundinnen und Kunden ein geeignetes Zahlungsformular oder eine geeignete mobile Anwendung zur Verfügung, worüber diese ihre Kartendaten eingeben können. Wir können nicht prüfen, ob manuell eingegebene Kartendaten außerhalb von Stripe sicher sind. Sie müssen daher für den Schutz der Kartendaten gemäß den PCI-Konformitätsanforderungen sorgen und jährlich den Fragebogen SAQ C-VT ausfüllen, um die PCI-Konformität Ihres Unternehmens nachzuweisen. |
Mobile SDK | SAQ A | Die Entwicklung und Änderungskontrolle des Mobile SDK von Stripe entspricht dem PCI DSS (Anforderungen 6.3-6.5) und wird über unsere PCI-validierten Systeme bereitgestellt. Wenn Sie nur UI-Komponenten aus unseren offiziellen SDKs für iOS oder Android verwenden oder ein Zahlungsformular mit Elements in einer WebView erstellen, werden die Kartennummern direkt von Ihren Kundinnen und Kunden an Stripe weitergeleitet, sodass Sie die geringste Belastung für die PCI-Konformität haben. Falls Sie anders vorgehen, z. B. Ihren eigenen Code für die Verarbeitung von Kartendaten erstellen, sind Sie möglicherweise für zusätzliche PCI DSS-Anforderungen (6.3 – 6.5) verantwortlich und kommen nicht für das SAQ A infrage. Wenden Sie sich an einen PCI Qualified Security Assessor (QSA), um zu ermitteln, wie Sie Ihre Konformität gemäß dem aktuellen Leitfaden des PCI Council am besten validieren können. Wenn Ihre Anwendung dafür vorgesehen ist, dass Ihre Kundinnen/Kunden Daten auf ihren eigenen Geräten eingeben, dann kommen Sie für das Formular SAQ A infrage. Falls Ihre Anwendung Kartendaten für mehrere Kundinnen/Kunden auf Ihrem Gerät (z. B. eine Point-of-Sale-App) akzeptiert, wenden Sie sich an einen PCI Qualified Security Assessor (QSA), um zu erfahren, wie Sie Ihre PCI-Konformität am besten validieren können. |
Stripe.js v2 | SAQ A-EP | Wenn Sie Stripe.js v2 nutzen, um Kartendaten zu übermitteln, die in einem auf Ihrer eigenen Website gehosteten Formular eingegeben wurden, müssen Sie jährlich das SAQ A-EP ausfüllen. Damit weisen Sie nach, dass Ihr Unternehmen PCI-konform ist. Alternativ ermöglichen Ihnen sowohl Checkout als auch Elements die Flexibilität und Anpassbarkeit eines selbst gehosteten Formulars und erfüllen gleichzeitig die PCI-Anspruchsberechtigung für den SAQ A. |
Terminal | SAQ C | Wenn Sie Kartendaten ausschließlich über Stripe Terminal erfassen, können Sie diese mit einem SAQ C validieren. Wenn Sie die Stripe-Integration mit weiteren in dieser Tabelle aufgeführten Methoden durchführen, müssen Sie deren Konformität, wie beschrieben, separat nachweisen. |
Achtung
Wenn Sie mehr als 6 Millionen Transaktionen pro Jahr mit Visa oder MasterCard oder mehr als 2,5 Millionen Transaktionen mit American Express verarbeiten oder anderweitig von einem der Kartennetzwerke als Level-1-Anbieter eingestuft werden, sind Sie nicht berechtigt, einen SBF zum Nachweis Ihrer PCI-Konformität zu verwenden. Zahlungsinstitute verlangen von Ihnen das Ausfüllen eines Konformitätsberichts (Report on Compliance) (RoC) zur jährlichen Validierung Ihrer PCI-Konformität.
Verwendung von TLS und HTTPS
TLS bezieht sich auf das Verfahren der sicheren Datenübertragung zwischen dem Client – also der auf Kundenseite genutzten App bzw. dem Browser – und Ihrem Server. Ursprünglich wurde hierfür das Secure Sockets Layer-Protokoll (SSL-Protokoll) eingesetzte, dieses ist aber inzwischen veraltet und nicht mehr sicher. SSL wurde daher durch TLS ersetzt. Der Begriff SSL wird jedoch weiterhin umgangssprachlich verwendet, wenn es um TLS und dessen Funktion zum Schutz der übertragenen Daten geht.
Zahlungsseiten müssen eine aktuelle Version (TLS 1.2 oder höher) verwenden, da sich das Risiko von Man-in-the-Middle-Angriffen für Sie und Ihre Kundinnen und Kunden dadurch erheblich verringert. TLS möchte Folgendes erreichen:
- Verschlüsselung und Verifizierung der Integrität des Datenverkehrs zwischen dem Client und dem Server.
- Überprüfen Sie, ob der Client mit dem richtigen Server kommuniziert. Dies bedeutet in der Praxis üblicherweise, dass überprüft wird, ob der Eigentümer der Domäne und der Eigentümer des Servers die gleiche Einheit sind. Dadurch werden Man-in-the-Middle-Angriffe verhindert. Ohne die richtige Kommunikation gibt es keine Garantie, dass Sie den Datenverkehr für den richtigen Empfänger verschlüsseln.
Außerdem ist es für Ihre Kund/innen angenehmer, vertrauliche Informationen auf Seiten zu teilen, die sichtbar über HTTPS bereitgestellt werden, was zu einer höheren Konversionsrate bei Kund/innen führen kann.
Sie können Ihre Integration bei Bedarf ohne HTTPS testen und es aktivieren, wenn Sie zur Annahme von Live-Zahlungen bereit sind. Für alle Interaktionen zwischen Ihrem Server und Stripe muss jedoch HTTPS verwendet werden (d. h. wenn Sie unsere Bibliotheken verwenden).
Einrichten von TLS
Um TLS verwenden zu können, wird ein digital certificate benötigt – eine Datei, die von einer Zertifizierungsstelle ausgestellt wird. Wenn dieses Zertifikat installiert ist, ist dadurch für den Client gewährleistet, dass dieser tatsächlich mit dem Server kommuniziert, mit dem er kommunizieren soll, und nicht mit einem Betrüger. Beziehen Sie ein solches Zertifikat von einem seriösen Zertifikatsanbieter, wie z. B.:
Die Kosten für Zertifikate fallen je nach Zertifikatstyp und Anbieter unterschiedlich. „Let’s Encrypt“ ist eine Zertifizierungsstelle, die Zertifikate kostenlos zur Verfügung stellt.
So richten Sie TLS ein:
- Erwerben Sie ein Zertifikat von einem geeigneten Anbieter.
- Konfigurieren Sie Ihren Server so, dass er das Zertifikat verwendet. Dieser Schritt kann komplex sein. Befolgen Sie daher den Leitfaden Ihres Anbieters.
Da es sich bei TLS um eine komplexe Suite kryptografischer Tools handelt, kann es leicht passieren, dass Dinge übersehen werden. Wir empfehlen Ihnen, den SSL Server Test von Qualys SSL Labs durchzuführen, um sicherzustellen, dass Sie nichts vergessen und alles sicher eingerichtet haben.
Sicherheitsüberlegungen
Durch das Einbinden von JavaScript von anderen Websites machen Sie Ihre eigene Sicherheit von diesen Websites abhängig. Das stellt ein Sicherheitsrisiko dar. Falls diese Websites kompromittiert werden, sind Angreifer möglicherweise in der Lage, beliebigen Code auf Ihrer Website auszuführen. Tatsächlich nutzen viele Websites JavaScript für Dienste wie Google Analytics – auch auf sicheren Seiten. Wir empfehlen Ihnen dennoch, eine solche Nutzung weitestgehend zu vermeiden.
Wenn Sie Webhooks nutzen, sollten Sie TLS für den Endpoint verwenden. So vermeiden Sie, dass Datenverkehr abgefangen wird und Benachrichtigungen verändert werden (in einem Webhook-Ereignis sind niemals vertrauliche Informationen enthalten).
Obwohl die Einhaltung der Datensicherheitsstandards wichtig ist, sollten Sie an dieser Stelle nicht damit aufhören, sich über die Sicherheit Gedanken zu machen. Nachfolgend sind einige gute Ressourcen aufgelistet, um mehr über Websicherheit zu erfahren:
Außerhalb des Geltungsbereichs liegende Kartendaten, die Sie sicher speichern können
Stripe gibt nicht vertrauliche Kartendaten in der Antwort auf eine Zahlungsanfrage zurück. Dazu gehören der Kartentyp, die letzten vier Ziffern der Karte und das Ablaufdatum. Diese Informationen unterliegen nicht der PCI-Konformität, sodass Sie jede dieser Eigenschaften in Ihrer Datenbank speichern können. Darüber hinaus können Sie alle Daten speichern, die von unserer API zurückgegeben werden.
Inhaltssicherheitsrichtlinie
Wenn Sie eine Sicherheitsrichtlinie für Inhalte bereitgestellt haben, sind für Checkout, in Connect eingebettete Komponenten und Stripe.js die folgenden Richtlinien erforderlich: