Guide sur la sécurité en matière d'intégration
Toute personne participant au traitement, à la transmission ou au stockage des données de carte doit se conformer aux normes de sécurité des données du secteur des cartes de paiement (PCI DSS). Stripe a fait l’objet d’un audit réalisé par un auditeur de la sécurité indépendant (QSA) qualifié PCI, à l’issue duquel elle a obtenu la certification de fournisseur de services PCI de niveau 1, soit le plus haut niveau de certification du secteur des paiements.
La conformité PCI est une responsabilité partagée, qui s’applique tant à Stripe qu’à votre entreprise. Lorsque vous acceptez des paiements, vous devez le faire en conformité avec la norme PCI. Le moyen le plus simple d’y parvenir est de ne jamais voir (ou avoir accès) aux données des cartes. Stripe vous simplifie la tâche, car nous pouvons nous charger de protéger les informations de carte bancaire de vos clients. Vous pouvez ainsi simplifier votre conformité PCI tant que vous :
- Utilisez l’une de nos intégrations de paiement recommandées pour recueillir les informations de paiement, qui sont directement transmises à Stripe de façon sécurisée sans passer par vos serveurs.
- Accédez à vos pages de paiement de façon sécurisée à l’aide du protocole Transport Layer Security (TLS), de façon à ce qu’elles utilisent le HTTPS
- Vérifiez et validez la conformité PCI de votre compte chaque année.
Valider votre conformité PCI
Tous les utilisateurs Stripe doivent valider leur conformité PCI tous les ans. La plupart des utilisateurs peuvent le faire au moyen du formulaire d’autoévaluation (SAQ) fourni par le PCI Security Standards Council. Le type de questionnaire dépend de votre intégration Stripe et des méthodes que vous utilisez pour collecter les données de carte. Certaines méthodes peuvent nécessiter le chargement de documents PCI supplémentaires. Si nécessaire, vous pouvez les charger dans le Dashboard. Si vous utilisez plusieurs des méthodes ci-dessous, vous n’avez pas besoin de charger plusieurs SAQ.
Si vous ne savez pas comment prouver que votre entreprise est conforme à la norme PCI (par exemple, si votre intégration a été intégrée à un tiers), nous vous recommandons de contacter un auditeur de sécurité agréé PCI (QSA) pour déterminer la meilleure façon de valider votre conformité conformément aux directives actuelles du PCI Council.
Exigences de conformité PCI par intégration
Intégration | Exigence | Recommandation |
---|---|---|
API directe | SAQ D | Lorsque vous transmettez directement les informations de carte bancaire à l’API Stripe, votre intégration gère directement ces données. Vous devez alors prouver chaque année votre conformité à la norme PCI à l’aide du formulaire SAQ D, soit le plus exigeant des formulaires SAQ. Pour vous simplifier la tâche :
En outre, notre outil de prévention de la fraude Radar, qui inclut une évaluation des risques et des règles, n’est disponible que lorsque vous utilisez l’une de nos méthodes de tokenisation côté client. |
Checkout ou Elements | SAQ A | Checkout, Stripe.js et Elements hébergent toutes les saisies de données de carte dans un iframe traité à partir du domaine Stripe, et non le vôtre. Ainsi, les informations de carte de vos clients ne transitent jamais par vos serveurs. Cela réduit considérablement les opérations de conformité PCI. |
Connect | SAQ A | Si vous collectez exclusivement les données de carte bancaire via une plateforme Connect (par exemple, Squarespace), nous pouvons déterminer si la plateforme fournit la documentation PCI nécessaire. |
Dashboard | SAQ C-VT | La création manuelle de paiements par carte dans le Dashboard doit être réservée aux situations exceptionnelles. Cette méthode ne doit pas servir à traiter des paiements de façon habituelle. Vos clients doivent saisir les informations de leur carte dans une application mobile ou un formulaire de paiement adapté(e). Lorsqu’elles sont traitées en dehors de Stripe, nous ne pouvons pas vérifier que les informations de carte saisies manuellement sont sécurisées. Vous devez donc protéger les données de carte conformément aux exigences de conformité PCI et remplir le formulaire SAQ C-VT chaque année pour prouver que votre entreprise est conforme à la norme PCI. |
SDK Mobile | SAQ A | Le contrôle du développement et des modifications du SDK mobile de Stripe est conforme à la norme PCI DSS (exigences 6.3 à 6.5) et peut être déployé via nos systèmes agréés PCI. Si vous utilisez uniquement des composants d’interface utilisateur issus de nos SDK officiels pour iOS ou Android, ou si vous créez un formulaire de paiement avec Elements dans une vue Web, les numéros de carte de vos clients sont transmis directement à Stripe, ce qui facilite la conformité PCI. Si vous faites autrement, par exemple si vous rédigez votre propre code pour gérer les informations de paiement, votre entreprise sera probablement soumise à des exigences PCI DSS supplémentaires (6.3 - 6.5) et vous ne pourrez pas remplir le formulaire SAQ A. Contactez un auditeur de sécurité agréé PCI (QSA) pour déterminer la meilleure façon de valider votre conformité conformément aux directives actuelles du PCI Council. Si votre application nécessite que vos clients saisissent leurs informations sur leur propre appareil, vous pouvez remplir le questionnaire SAQ A. Si votre application accepte les informations de carte de plusieurs clients sur votre appareil (p. ex., application de point de vente), consultez un auditeur de sécurité agréé PCI (QSA) pour connaître la meilleure façon de valider votre conformité PCI. |
Stripe.js v2 | SAQ A-EP | Si vous utilisez Stripe.js v2 pour transmettre les données de carte saisies dans un formulaire hébergé sur votre propre site, vous devez remplir le formulaire SAQ A-EP chaque année afin de prouver la conformité de votre entreprise aux normes PCI. Checkout et Elements vous offrent également la flexibilité et la possibilité de personnaliser un formulaire autohébergé, tout en vous permettant de remplir un formulaire SAQ A. |
Terminal | SAQ C | Si vous collectez exclusivement les données de cartes bancaires via Stripe Terminal, vous pouvez les valider à l’aide du formulaire SAQ C. Si vous intégrez Stripe par le biais d’autres méthodes répertoriées dans ce tableau, vous devez démontrer votre conformité pour chacune de ces méthodes, comme décrit. |
Avertissement
Si vous traitez plus de 6 millions de transactions par an avec Visa ou MasterCard, ou plus de 2,5 millions de transactions avec American Express, ou si l’un des réseaux de cartes vous considère comme un fournisseur de niveau 1, vous ne pouvez pas utiliser le questionnaire SAQ pour prouver votre conformité PCI. Dans ce cas, les marques de carte de paiement exigent que vous remplissiez tous les ans un rapport de conformité (RoC) pour valider votre conformité PCI.
Utiliser TLS et HTTPS
TLS désigne le processus de transmission sécurisée des données entre le client (l’application ou le navigateur que votre client utilise) et votre serveur. À l’origine, le protocole Secure Sockets Layer (SSL) effectuait cette opération. Cependant, ce protocole obsolète n’étant plus sécurisé, il a été remplacé par TLS. Le terme SSL est encore parfois utilisé pour désigner le protocole TLS et sa fonction de transmission sécurisée des données.
Les pages de paiement doivent utiliser une version récente (TLS 1.2 ou une version ultérieure), car cela réduit considérablement le risque que vous ou vos clients soyez victimes d’attaques d’intercepteurs. Le protocole TLS vise à :
- Chiffrer et vérifier l’intégrité du trafic entre le client et votre serveur.
- Vérifier que le client communique avec le bon serveur. En pratique, cela signifie généralement que le propriétaire du domaine et le propriétaire du serveur sont la même entité. Cela contribue à éviter les attaques d’intercepteurs. Sans cela, vous n’avez aucune garantie que vous chiffrez le trafic vers la bonne destination.
De plus, vos clients se sentent plus à l’aise de partager des informations sensibles sur des pages accessibles via HTTPS, ce qui peut vous aider à augmenter votre taux de conversion.
Si nécessaire, vous pouvez tester votre intégration sans utiliser le protocole HTTPS, et l’activer au moment de commencer à accepter des paiements réels. Cependant, toutes les interactions entre votre serveur et Stripe doivent utiliser HTTPS (lorsque vous utilisez nos bibliothèques).
Configurer le protocole TLS
Pour utiliser TLS, un certificat numérique (fichier émis par une autorité de certification) est obligatoire. Une fois installé, ce certificat garantit au client qu’il communique avec le bon serveur, et non avec un imposteur. Vous devrez obtenir un certificat numérique d’un fournisseur de certificats fiable, comme :
Le coût des certificats varie en fonction du type de certificat et du fournisseur. « Let’s Encrypt » est une autorité de certification qui fournit des certificats gratuitement.
Pour configurer le protocole TLS :
- Achetez un certificat auprès d’un fournisseur approprié.
- Configurez votre serveur pour utiliser le certificat. Cette étape peut être complexe, c’est pourquoi nous vous invitons à suivre le guide d’installation du fournisseur que vous utilisez.
Puisque le protocole TLS est constitué d’une suite complexe d’outils cryptographiques, certains détails peuvent nous échapper. Nous vous recommandons d’utiliser le test de serveur SSL de Qualys SSL Labs pour vérifier que tout est configuré de façon sécurisée.
Considérations de sécurité
Il peut être risqué d’ajouter JavaScript depuis d’autres sites, puisque votre sécurité dépend alors de la leur. Si ces sites sont compromis, toute personne mal intentionnée peut parvenir à exécuter du code arbitrairement sur vos pages. En pratique, de nombreux sites utilisent JavaScript pour utiliser des services comme Google Analytics, même sur des pages sécurisées. Néanmoins, nous vous conseillons d’éviter de le faire.
Si vous utilisez des webhooks, utilisez le protocole TLS pour l’endpoint afin d’éviter que le trafic soit intercepté et que les notifications soient modifiées (un événement de webhook ne doit jamais contenir d’informations sensibles).
Bien qu’il soit important de respecter les normes de sécurité des données, votre approche de la sécurité ne doit pas s’arrêter là. Voici quelques ressources intéressantes pour en savoir plus sur la sécurité Web :
Données de carte hors champ que vous pouvez stocker en toute sécurité
Stripe renvoie des informations de carte non sensibles en réponse à une demande de paiement. Il s’agit du type de carte, de ses quatre derniers chiffres et de sa date d’expiration. Ces données n’étant pas concernées par la conformité PCI, vous pouvez les stocker dans votre base de données. De plus, vous pouvez stocker toute donnée renvoyée par notre API.
Politique de sécurité du contenu
Si vous avez déployé une politique de sécurité du contenu, les directives imposées par Checkout, les composants intégrés Connect et Stripe.js sont les suivantes :