J'ai une carte de crédit enregistrée sur mon compte Paypal principal. Pour faire une longue histoire, je devais créer un autre compte Paypal qui ne serait pas connecté à mon compte d'origine.
J'ai utilisé un autre ordinateur, qui n'avait jamais été connecté à mon ordinateur d'origine. Lorsque j'ai essayé d'enregistrer ma carte de crédit sur le compte, Paypal m'a dit que je ne pouvais pas l'enregistrer, comme ils l'ont dit
cette carte est déjà liée à un autre compte Paypal.
Comment peuvent-ils savoir cela? Ma carte de crédit ne devrait-elle pas être stockée avec un hachage sous mon compte uniquement? Comment et pourquoi Paypal conserve-t-il toutes ses cartes enregistrées dans un grand fichier pour référence croisée?
Il y a plusieurs raisons pour lesquelles Paypal (ou plus généralement tout service de paiement) peut savoir si vous avez utilisé votre carte à plusieurs endroits.
Ma carte de crédit ne doit-elle pas être stockée avec un hachage sous mon compte uniquement?
Si votre carte est hachée, elle peut être facilement comparée entre les comptes. Les hachages sont déterministes, donc pour un algorithme de hachage fixe, une carte de crédit donnée donnera toujours le même hachage. Par conséquent, s'ils stockaient des hachages, ils pouvaient facilement comparer les comptes et déterminer si la carte était déjà stockée ailleurs. Cela peut être avantageux, car dans ce cas, il est utilisé pour prévenir la fraude (cela implique que si la même carte est ajoutée à plusieurs comptes, elle est probablement due à la fraude). Une fois que vous disposez d'un hachage "sécurisé" d'une carte de crédit, il n'y a aucune raison de ne pas le vérifier sur différents comptes. Paypal peut et fait certainement.
Cependant, cette capacité n'est pas limitée à Paypal et peut être facilement accessible à des commerçants beaucoup plus petits. Par exemple, avec Stripe (une méthode de paiement conforme à la norme PCI), le commerçant recevra un identifiant unique pour chaque numéro de carte de crédit stocké sur Stripe. Le marchand ne conserve pas (ou ne voit même pas) le numéro de carte, mais il peut toujours comparer le hachage donné avec d'autres hachages de carte qui ont été utilisés dans leurs systèmes. Cela peut (et est) facilement utilisé dans le but moins altruiste de suivre l'historique des achats d'un utilisateur sur plusieurs comptes et transactions anonymes, tout en conservant la conformité PCI.
Donc, pour être clair, votre carte de crédit est suivie absolument partout par autant de personnes que possible, même si elles ne connaissent pas votre numéro de carte de crédit.
Les petits commerçants peuvent et doivent s'assurer et ne jamais stocker, transmettre ou même consulter les détails réels de la carte. Cependant, aucune exigence n'interdit à un commerçant de conserver le numéro de carte réel s'il le souhaite. En général, cependant, tout commerçant qui souhaite conserver les numéros de carte dans un fichier et rester conforme à la norme PCI devra (théoriquement) passer par une validation plus stricte, un audit de sécurité et devra effectivement payer une tonne d'argent en frais. Les coûts accrus et la responsabilité de conserver les numéros de carte de crédit dans un fichier tout en restant conformes à la norme PCI sont si importants que toute petite et moyenne entreprise bien gérée ne tentera jamais.
Cependant, les grandes entreprises peuvent et choisissent de faire autrement. La réalité est que quelqu'un doit stocker les numéros de carte quelque part afin que votre carte puisse être facturée. Les plus gros processeurs de cartes de crédit (ce qui est certainement Paypal) stockent certainement le numéro de carte complet. Ils doivent stocker les numéros à l'aide d'un cryptage fort et de clés sécurisées/procédures de contrôle d'accès.
Quant aux détails sur la façon dont ils déterminent réellement qu'un numéro de carte de crédit est utilisé deux fois, en fin de compte, seul Paypal peut y répondre. Ils peuvent avoir une méthode pour comparer directement les numéros de cartes cryptés, mais plus probablement ils aussi stockent un hachage des numéros de cartes et les comparent directement ( h/t Jory Geerts ). Quoi qu'il en soit, ils conservent votre numéro de carte dans le dossier et peuvent comparer les numéros de carte avec les comptes.
Notez que cela ne signifie pas qu'ils "conservent toutes les cartes enregistrées dans un seul gros fichier pour référence croisée". Leur infrastructure de stockage sécurisé des cartes est certainement beaucoup plus compliquée que cela. Cependant, ils ont évidemment un besoin impérieux de pouvoir comparer les cartes entre les comptes et ont configuré leur infrastructure afin qu'ils puissent à la fois stocker vos cartes en toute sécurité et vérifie également les doublons entre les comptes. Je suis d'accord avec le commentaire lié: je suppose qu'ils calculent également un hachage sécurisé du numéro de carte de crédit et l'utilisent pour des comparaisons faciles.
Paypal est un processeur de paiement, pas un commerçant, il doit transmettre le numéro de carte à votre banque (ou à l'émetteur de la carte) lors du traitement des paiements, il doit donc stocker votre carte de crédit de manière à pouvoir être déchiffrée de nouveau sur la carte. Nombres. Pour se conformer à PCI-DSS, ils devront crypter ces informations sur leurs serveurs et se conformer à toutes les exigences PCI-DSS les plus strictes, mais ils ne peuvent pas utiliser un hachage unidirectionnel pour stocker les informations et toujours en mesure de traiter le paiement.
Cela dit, même s'ils stockent les informations dans un hachage à sens unique, il est toujours assez simple de trouver des chiffres qui correspondent exactement à la détection des doublons.
Les numéros de carte font depuis longtemps partie du processus d'évaluation des risques de Paypal. Nous avions l'habitude d'utiliser leur produit Website Payments Pro, et parfois nous avions un problème où quelqu'un mettait son numéro de carte dans notre caisse et Paypal le rejetait parce que
Tout cela était antérieur à la conformité PCI. # 1 était problématique car il obligeait littéralement le client à appeler Paypal et à résoudre le problème directement (parfois sur des comptes fermés pendant des années). Ce n'est pas une nouvelle activité de Paypal.
PCI n'interdit pas nécessairement cela. Les numéros de carte peuvent être stockés en totalité, tout comme les dates d'expiration. Seuls les numéros CVV2 sont interdits de stockage. Si vous stockez les données de la carte comme ça, vous devez répondre à certains critères de sécurité ( voir cette question pour plus de détails )
Ils auront pour règle qu'une carte ne peut être liée qu'une seule fois. L'image qu'ils utilisent pour sonder peut ne pas être du texte brut, et elle peut avoir été "compressée" (COMP-3 ou BCD) avant le hachage, mais elle doit être suffisamment entropique (cardinalité élevée) pour éviter les collisions.
Ce ne sera pas seulement le nombre, ce sera aussi la date d'expiration, et éventuellement le cvv. Tous les numéros de carte de crédit commencent par un BIN à 4 chiffres et se terminent par un chiffre de contrôle basé sur l'algorithme de Luhn. Ils sont nécessairement recyclés car il reste un nombre fini de chiffres, en particulier lorsque les banques Visa et MasterCard peuvent utiliser les deux ou trois chiffres suivants pour les informations sur les sous-produits. Je connais une banque qui a utilisé les 10 premiers chiffres pour certaines cartes émises au personnel en tant qu'employés. Tôt ou tard, quelqu'un d'autre obtient votre numéro lorsque vous obtenez un autre numéro.
Il est très simple de sonder un index pour une valeur existante.