Guide sur la sécurité en matière d'intégration
Garantissez la conformité PCI et sécurisez les communications client-serveur.
La norme PCI DSS est la norme de sécurité mondiale pour toutes les entités qui stockent, traitent ou transmettent des données d’authentification sensibles ou des données de titulaires de cartes. La norme PCI DSS établit un niveau de protection de base pour les consommateurs et contribue à réduire la fraude et les violations de données dans l’ensemble de l’écosystème de paiement. Toute partie impliquée dans le traitement, le transfert ou le stockage de données de cartes bancaires doit se conformer à la norme de sécurité des données de l’industrie des cartes de paiement (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 exigent la réception de numéros PAN non tokenisés sur une page de paiement. Si votre entreprise traite des données sensibles de carte de crédit directement lorsqu’elle accepte des paiements, vous pourriez avoir l’obligation de respecter les plus de 300 contrôles de sécurité de la norme PCI DSS. Cela pourrait vous obliger à acheter, mettre en œuvre et entretenir des logiciels et du matériel de sécurité dédiés, et à faire appel à des auditeurs externes pour répondre à vos 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 :
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 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 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 :
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é.