Guide sur la sécurité en matière d'intégration
Garantissez la conformité PCI et sécurisez les communications client-serveur.
La Payment Card Industry Data Security Standard (PCI DSS) est la norme mondiale de sécurité applicable à toutes les entités qui stockent, traitent ou transmettent des données de titulaires de carte ou des données d’authentification sensibles. La PCI DSS définit un niveau minimal de protection pour les consommateurs et contribue à réduire la fraude et les violations de données à l’échelle de l’ensemble de l’écosystème des paiements. Toute entité impliquée dans le traitement, la transmission ou le stockage de données de carte bancaire doit se conformer à la PCI DSS.
Valider votre conformité PCI
La conformité PCI est une responsabilité partagée qui s’applique à la fois Stripe et à votre entreprise :
- Stripe est certifié chaque année par un évaluateur de sécurité agréé (QSA) PCI indépendant en tant que fournisseur de services PCI de niveau 1 répondant à toutes les normes PCI.
- En tant qu’entreprise acceptant des paiements, vous devez vous conformer aux normes PCI et attester chaque année de cette conformité.
Consultez les exigences en matière de documentation pour votre entreprise dans votre Dashboard et poursuivez la lecture de ce guide pour découvrir comment Stripe peut vous aider à vous conformer à la norme PCI.
Utiliser des intégrations à faible risque
Certains business models nécessitent la saisie de numéros de carte (PAN) non tokenisés sur une page de paiement. Si votre entreprise traite directement des données sensibles de carte bancaire lors de l’acceptation des paiements, vous pourriez être tenu de respecter plus de 300 exigences de sécurité prévues par la PCI DSS. Cela peut impliquer l’acquisition, le déploiement et la maintenance de logiciels et d’équipements de sécurité dédiés, ainsi que le recours à des auditeurs externes pour répondre aux exigences d’évaluation annuelle.
Les données sensibles des cartes ne sont pas nécessaires pour de nombreux business models. Vous pouvez utiliser l’une de nos intégrations de paiement à faible risque pour collecter et transmettre en toute sécurité les informations de paiement directement à Stripe sans transiter par vos serveurs, ce qui réduit vos obligations PCI.
Données de carte hors champ que vous pouvez stocker en toute sécurité
Stripe renvoie les informations de carte non sensibles dans la réponse à une demande de paiement. Il s’agit notamment du type de carte, des quatre derniers chiffres de la carte et de sa date d’expiration. Ces informations ne sont pas soumises à la conformité PCI, vous pouvez donc stocker n’importe laquelle de ces propriétés dans votre base de données. De plus, vous pouvez stocker toute donnée renvoyée par notre API.
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.
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 :
Vous pouvez tester votre intégration sans utiliser HTTPS si nécessaire, puis l’activer lorsque vous êtes prêt à accepter des paiements en mode production. En revanche, toutes les interactions entre votre serveur et Stripe doivent impérativement utiliser HTTPS (notamment lors de l’utilisation de nos bibliothèques).
Configurer le protocole TLS
Pour configurer le protocole TLS :
- Achetez un certificat auprès d’un fournisseur approprié.
- Configurez votre serveur pour qu’il utilise le certificat. Cette étape est complexe, alors suivez 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 TLS pour votre endpoint afin d’éviter toute interception du trafic ou toute altération des notifications (aucune information sensible n’est incluse dans un événement webhook). Vous devez également vérifier les signatures des webhooks et ajouter les adresses IP de Stripe à votre liste d’autorisation afin de garantir que chaque webhook Stripe reçu provient exclusivement de Stripe.
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 :
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 :
Prise en charge de l’isolation cross-origin
À l’heure actuelle, nous ne prenons pas en charge les sites isolés cross-origin.
L’isolation cross-origin nécessite la prise en charge de toutes les dépendances, et plusieurs dépendances clés qui activent nos offres de paiement ne prennent pas encore en charge cette fonctionnalité.