Guide de sécurité de l'intégration
Assurez votre conformité PCI et sécurisez les communications client-serveur.
Toute personne qui participe au traitement, à la transmission ou au stockage de données de carte doit se conformer aux normes de sécurité des données de l’industrie des cartes de paiement (PCI DSS). Un évaluateur de sécurité qualifié PCI indépendant a audité Stripe et l’a certifié en tant que fournisseur de services PCI de niveau 1. Il s’agit du niveau de certification le plus élevé du secteur des paiements.
La conformité PCI est une responsabilité partagée et s’applique tant à Stripe qu’à votre entreprise. Lorsque vous acceptez des paiements, vous devez le faire de façon à vous conformer à la norme PCI. La meilleure manière d’y parvenir est de ne jamais voir les données de carte et de ne jamais y avoir accès. Stripe vous permet d’y parvenir, car nous faisons le travail nécessaire pour protéger les coordonnées de carte de vos clients. Vous pouvez donc simplifier votre conformité PCI si 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.
- Servez vos pages de paiement de façon sécurisée à l’aide de Transport Layer Security (TLS) de façon à ce qu’elles utilisent HTTPS
- Vérifiez et validez la conformité PCI de votre compte tous les ans
Validez 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 questionnaire d’autoévaluation (SAQ) fourni par le PCI Security Standards Council. Le type de questionnaire d’autoévaluation dépend de votre intégration Stripe et des méthodes ci-dessous que vous utilisez pour recueillir les données de carte. Certaines méthodes peuvent exiger que vous nous envoyiez de la documentation PCI supplémentaire. Si cela est nécessaire, vous pourrez les téléverser dans le Dashboard. Si vous utilisez plus d’une des méthodes ci-dessous, vous n’avez pas besoin de charger plusieurs questionnaires d’autoévaluation.
Si vous ne savez pas comment prouver que votre entreprise est conforme aux normes PCI (par exemple, un tiers a effectué votre intégration), nous vous conseillons de contacter un évaluateur de sécurité agréé PCI (QSA) pour déterminer la meilleure façon de valider votre conformité selon les directives actuelles du PCI Council.
Exigences de conformité PCI par intégration
Intégration | Exigence | Recommandation |
---|---|---|
API directe | Questionnaire d’autoévaluation D | Lorsque vous transmettez des informations de carte directement à l’API Stripe, votre intégration traite directement ces données et vous devez prouver tous les ans votre conformité PCI à l’aide du questionnaire d’autoévaluation D, le questionnaire d’autoévaluation le plus exigeant. Pour réduire cette contrainte :
En outre, notre outil de prévention de la fraude, Radar, qui comprend une évaluation des risques et des règles, est uniquement disponible lorsque l’une de nos méthodes d’utilisation de jetons côté client est utilisée. |
Checkout ou Elements | Questionnaire d’autoévaluation A | Checkout, Stripe.js et Elements hébergent toutes les saisies de collecte de données de carte dans un iframe traité à partir du domaine Stripe (pas le vôtre), de façon à ce que les informations de carte de vos clients n’atteignent jamais vos serveurs. Vos exigences en matière de conformité PCI sont ainsi simplifiées. |
Connecter | Questionnaire d’autoévaluation A | Si vous collectez exclusivement des données de carte au moyen d’une plateforme Connect (par exemple, Squarespace), nous pourrons déterminer si la plateforme fournit les documents PCI requis. |
Dashboard | Questionnaire d’autoévaluation C-VT | Les paiements manuels par carte via le Dashboard ne sont possibles que dans des circonstances exceptionnelles, et non dans le cadre du traitement des paiements effectués de façon habituelle. Proposez à vos clients un formulaire de paiement adapté ou une application mobile pour qu’ils puissent saisir leurs informations de carte. Nous ne pouvons pas vérifier que les informations de carte saisies manuellement sont sécurisées en dehors de Stripe. Vous devez donc protéger les données de carte conformément aux exigences de conformité PCI et remplir le questionnaire d’autoévaluation C-VT tous les ans pour prouver que votre entreprise est conforme à la norme PCI. |
SDK Mobile | Questionnaire d’autoévaluation A | Le contrôle du développement et des modifications de la trousse SDK mobile de Stripe est effectué conformément à la norme PCI DSS (exigences 6.3 à 6.5) ; il est déployé par le biais de nos systèmes validés PCI. Lorsque vous utilisez uniquement les composants d’interface utilisateur fournis dans nos trousses SDK officielles pour iOS ou Android, ou que vous créez un formulaire de paiement avec Elements dans une vue Web, les numéros de carte de vos clients sont directement transmis à Stripe. Vos exigences en matière de conformité PCI sont ainsi simplifiées. Si vous procédez autrement, par exemple, si vous écrivez votre propre code pour traiter les informations de paiement, vous pourriez être tenu de respecter des exigences de la norme PCI DSS supplémentaires (6.3 à 6.5) et vous ne pourrez pas remplir le questionnaire d’autoévaluation A. Contactez un évaluateur 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 exige que vos clients saisissent leurs informations sur leur propre appareil, vous pouvez remplir le questionnaire d’autoévaluation A. Si votre application accepte les informations de carte pour plusieurs clients sur votre appareil (par exemple, une application de point de vente), consultez un évaluateur de sécurité agréé PCI pour connaître la meilleure façon de valider votre conformité PCI. |
Stripe.js v2 | Questionnaire d’autoévaluation A-EP | L’utilisation de Stripe.js v2 pour transmettre les données de carte saisies dans un formulaire hébergé sur votre propre site nécessite de remplir le questionnaire d’autoévaluation A-EP tous les ans pour prouver que votre entreprise est conforme à la norme PCI. Par ailleurs, Checkout et Elements vous offrent la flexibilité et la personnalisation d’un formulaire autohébergé, tout en répondant aux critères d’admissibilité PCI du formulaire SAQ A. |
Terminal | Questionnaire d’autoévaluation C | Si vous collectez exclusivement des données de carte au moyen de Stripe Terminal, vous pouvez les valider à l’aide du questionnaire d’autoévaluation 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. |
Alerte
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.
Utilisez les protocoles 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. Le protocole SSL (Secure Sockets Layer) effectuait cette fonction initialement, mais il est maintenant obsolète et n’est plus suffisamment sécurisé. Il a donc été remplacé par le protocole TLS, mais le terme SSL est encore parfois utilisé pour faire référence au 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 supérieure) puisque cela réduit de façon importante le risque que vous ou vos clients soyez victimes d’attaques d’intercepteurs. Le protocole TLS vise à :
- Chiffrez le trafic entre le client et votre serveur et vérifiez-en l’intégrité.
- Vérifiez 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.
En outre, vos clients sont plus à l’aise de communiquer des informations sensibles sur les pages utilisant le protocole HTTPS, ce qui peut contribuer à 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).
Configurez le protocole TLS
L’utilisation du protocole TLS nécessite un certificat numérique, un fichier émis par une autorité de certification (AC). L’installation de ce certificat garantit au client qu’il communique réellement avec le serveur auquel il est censé s’adresser, et non pas avec un imposteur. Procurez-vous un certificat numérique auprès d’un fournisseur de certificat réputé, tel que :
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, alors suivez le guide d’installation du fournisseur choisi.
Puisque le protocole TLS est constitué d’une suite complexe d’outils cryptographiques, certains détails peuvent vous é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é
L’ajout de JavaScript depuis d’autres sites rend votre sécurité dépendante de la leur et pose un risque pour la sécurité. Si ces sites sont compromis, un attaquant pourrait parvenir à exécuter du code arbitrairement sur votre page. En pratique, de nombreux sites utilisent JavaScript pour faire fonctionner des services comme Google Analytics, même sur des pages sécurisées. Néanmoins, nous vous recommandons d’en minimiser l’ajout.
Si vous utilisez des webhooks, utilisez le protocole TLS pour le point de terminaison afin d’éviter que le trafic ne soit intercepté et que les notifications ne soient modifiées (un événement 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é du Web :
Données de carte hors de portée 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 une politique de sécurité du contenu, les obligations imposées par Checkout, les composants intégrés Connect et Stripe.js sont :