2017-10-02 1 views
2

Stripe est un service de traitement de paiement qui fonctionne plus ou moins comme ceci:Pourquoi Stripe autorise-t-il les clients qui ne prennent en charge TLS 1.0 que s'ils appliquent TLS 1.2 sur le serveur?

  • Un utilisateur visite notre application web et les remplissages dans leur numéro de carte sous une forme
  • Certains JavaScript fourni par Stripe et chargé dans un <script> tag sur la page fait une demande asynchrone aux serveurs de Stripe, qui échangent les détails de la carte pour un jeton
  • Le jeton est envoyé à notre application backend, qui le renvoie à Stripe. Cela provoque une charge à la banque de l'utilisateur

Notre serveur est only allowed to communicate with Stripe's API over TLS 1.2.

Toutefois, le front-end Stripe JavaScript prend en charge IE9 et IE10, qui ne gèrent pas TLS 1.2 dès sa sortie de l'emballage. Par conséquent, certains utilisateurs de ces navigateurs demanderont le JavaScript Stripe en utilisant le plus faible TLS 1.0. Qu'est-ce qui empêche quelqu'un usurpant le Stripe JavaScript pour ces utilisateurs et manquant ses détails de carte?

Répondre

3

Bonne question!

Le Conseil des normes de sécurité PCI a fixé la date de fin de contrat TLS 1.0 au 30 juin 2018 [1]. Dans le but de faciliter la transition, Stripe a commencé à appliquer TLS 1.2 pour les comptes créés après le 1er juillet 2016 [2] et supprime progressivement la prise en charge de TLS 1.0 et 1.1 pour les comptes plus anciens. Cela dit, pour les bibliothèques côté client (Checkout et Stripe.js), Stripe permet toujours TLS 1.0/1.1 comme vous l'avez noté. C'est parce que Stripe ne veut pas inutilement empêcher les clients de payer, même s'ils utilisent des navigateurs/OS plus anciens qui ne sont pas capables d'utiliser TLS 1.2. Bien sûr, d'ici le 30 juin 2018, les clients utilisant un navigateur TLS 1.0 ne pourront plus payer via Stripe (ou tout autre processeur de paiement en ligne).