Question:
Comment Paypal peut-il savoir que ma carte est utilisée dans un autre compte?
TheAsh
2019-07-29 06:29:42 UTC
view on stackexchange narkive permalink

J'ai une carte de crédit enregistrée sur mon compte Paypal principal. Pour faire une histoire courte, j'avais besoin de créer un autre compte Paypal qui ne serait pas connecté à mon compte d'origine.

J'ai utilisé un ordinateur différent, 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 le savoir? Ma carte de crédit ne doit-elle pas être stockée avec un hash sous mon compte uniquement? Comment et pourquoi Paypal conserve-t-il toutes ses cartes enregistrées dans un seul gros fichier pour référence croisée?

Les commentaires ne sont pas destinés à une discussion approfondie;cette conversation a été [déplacée vers le chat] (https://chat.stackexchange.com/rooms/96934/discussion-on-question-by-theash-how-can-paypal-know-my-card-is-being-utilisé dans un).
Cinq réponses:
Conor Mancone
2019-07-29 08:42:50 UTC
view on stackexchange narkive permalink

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.

Votre carte de crédit est absolument suivie partout où cela est possible

Ma carte de crédit ne devrait-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 pourraient facilement comparer entre 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 à une fraude). Une fois que vous disposez d'un hachage "sécurisé" d'une carte de crédit, il n'y a aucune raison ne pas de le vérifier sur différents comptes. Paypal peut certainement le faire et le fait.

Cependant, cette capacité n'est pas limitée à Paypal et peut facilement être disponible pour des marchands beaucoup plus petits. Par exemple, avec Stripe (un mode de paiement commun 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 (ni ne voit) 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 d'achat d'un utilisateur sur plusieurs comptes et transactions anonymes, tout en maintenant 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 elles-mêmes votre numéro de carte de crédit.

Paypal conserve votre numéro de carte de crédit réel dans ses fichiers - pas seulement un hachage

Les petits commerçants peuvent et doivent s'assurer de ne jamais stocker, transmettre ou même consulter les détails de la carte. Cependant, aucune exigence n'interdit à tout commerçant de conserver le numéro de carte réel s'il le souhaite. En général, tout commerçant qui souhaite conserver les numéros de carte dans ses fichiers et rester conforme à la norme PCI devra (théoriquement) passer par une validation plus stricte, un audit de sécurité et doit effectivement payer une tonne d'argent en frais. L'augmentation des coûts et de la responsabilité liés à la conservation des numéros de carte de crédit tout en restant conforme à la norme PCI est si grande que toute petite ou moyenne entreprise moyennement bien gérée n'essaiera 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 pour que votre carte puisse être facturée. Les plus gros processeurs de cartes de crédit (ce que Paypal est certainement) stockent certainement le numéro de carte complet. Ils doivent stocker les numéros en utilisant un cryptage fort et des clés sécurisées / des 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 carte cryptés, mais il est plus probable qu'ils aussi stockent un hachage des numéros de carte et les comparent directement ( h / t Jory Geerts). Quoi qu'il en soit, ils conservent votre numéro de carte dans leurs fichiers et peuvent comparer les numéros de carte à ceux des 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 manifestement un besoin commercial impérieux de pouvoir comparer les cartes entre les comptes et ont configuré leur infrastructure de manière à pouvoir à la fois stocker vos cartes en toute sécurité et également vérifier 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.

"Je suis sûr qu'ils ne font que comparer directement les numéros de carte de crédit."Alors si quelqu'un les pirate, nous sommes tous foutus?
@TheAsh oui.Idem si quelqu'un pirate Visa.Bien qu'en réalité, c'est là que la conformité PCI est censée aider.Là encore, ce n'est pas seulement Paypal: une société de jeux bien connue pour laquelle j'ai travaillé pour stocker des numéros de carte de crédit complets pour tous leurs abonnés MMO populaires - mais encore une fois, en pleine conformité avec PCI.
@Denis au moins ils l'ont fait de manière conforme à PCI.J'ai travaillé à contrat pour un grand nombre de petites entreprises liées au commerce électronique et je connaissais au moins l'une d'entre elles qui, en fait, conservait des copies en texte brut des détails de la carte sur les ordinateurs de bureau.Ils ont au moins fait du commerce B2B, donc n'ont jamais causé de problèmes aux entreprises et pas aux consommateurs ...
"Je suis sûr qu'ils ne font que comparer directement les numéros de carte de crédit."Autant que je sache, PCI-DSS nécessite des choses comme le cryptage.Décrypter tout est assez cher (en termes de temps CPU).De plus, il place le «service de comparaison de numéros de cartes» dans une «portée» plus élevée (ce qui signifie «beaucoup de règles») par rapport à quelque chose qui compare simplement certains hachages mais ne touche jamais à un numéro de carte réel.Donc, à mon avis, comparer les hachages est beaucoup plus facile que de comparer les chiffres réels.
@JoryGeerts Bon point.Je voulais juste souligner le fait qu'ils ont en fait tous les détails de leur carte de crédit sous la main, plutôt que d'essayer de faire des déclarations fermes sur la façon dont ils pourraient réellement faire la comparaison.En conséquence, j'ai mis à jour cette section.
J'avais l'habitude de développer un logiciel ATM pour gagner ma vie et ce n'est pas aussi facile que vous le faites paraître.Tout d'abord, je suis certain que les "détails complets de la carte de crédit" ne sont pas stockés car il est interdit de stocker le code de sécurité de la carte (ou la bande magnétique complète mais cela est moins pertinent pour Paypal).De plus, pour le cryptage, nous avons utilisé un module de cryptage matériel dédié où seuls les deux agents de sécurité possédaient la moitié de la clé et il n'a pas de commande "décrypter" (juste des commandes pour crypter les données sous une autre clé qui doit avoir été saisie manuellement auparavant)
"Paypal conserve les détails de votre carte de crédit dans le dossier".Malheureusement, avec votre dernière modification, vous n'avez effectivement pas répondu à la question.Bien sûr, ils conservent les informations dans leurs fichiers (sinon je ne pourrais rien acheter), ma question est la suivante: ont-ils un grand mégafichier non crypté montrant tous les comptes et numéros de carte de crédit liés?Ou stockent-ils simplement les informations de la carte sous chaque compte sans jamais comparer les informations, comme je le pensais?
@TheAsh encore une mise à jour pour vous.Ils n'ont certainement pas un gros méga fichier non chiffré.
J'ai travaillé pour une entreprise qui stockait les numéros de carte de crédit.Ils étaient cryptés via HSM, de sorte que personne ne pouvait mettre la main sur les clés pour le décryptage hors ligne, et le trafic réseau vers le HSM était fortement restreint et surveillé.
@ConorMancone et en raison de cette modification, j'ai accepté votre réponse.
@MatthieuM.La façon dont cela devrait être!Et pourtant, le vol de cartes de crédit est toujours une grosse affaire.Il y a trop de gens qui ne font pas les choses correctement (même si la sécurité de votre stockage de carte de crédit n'a pas d'importance si un attaquant s'injecte ailleurs dans le processus, ce qui s'est produit d'innombrables fois. Https: //www.theregister.co.uk / 2018/09/12 / feedify_magecart_javascript_library_hacked /
@TheAsh Ironiquement, cela vient de sortir aujourd'hui: https://gizmodo.com/a-hacker-stole-capital-one-data-on-106-million-customer-1836806812.Ce qui veut dire qu'en effet, lorsque les institutions financières elles-mêmes sont piratées, les consommateurs se font foutre.
Est-ce que je fais mal le calcul?Un hachage que vous pouvez rechercher sur des cartes de crédit est sans valeur.~ 4 chiffres de l'ID de l'émetteur laisse 12 chiffres de n'importe quel caractère aléatoire réel;rechercher un billion de hachages est trivial.Pour éviter cela, vous avez besoin d'un sel très fort, et un tel sel rend la recherche par hachage peu pratique.
Les cartes de crédit @Yakk ont encore moins d'entropie que cela.Le premier chiffre est la société, le dernier chiffre est un chiffre de contrôle, et il existe d'autres petites contraintes sur le numéro de carte.Vous pouvez augmenter le facteur de coût sur de nombreux algorithmes de hachage, mais je suis curieux de savoir comment un numéro CC ** serait ** haché en toute sécurité - c'est encore pire que les mots de passe.Je pense que certaines grandes entreprises utilisent des hachages, et je suppose donc qu'il existe une «bonne» façon de le faire, mais l'une ou l'autre de ces déclarations pourrait être erronée.
@ConorMancone * nod *, même avec un mégaoctet de sel, qui bloque les tables arc-en-ciel mais n'améliore pas beaucoup le rapport attaque / utilisation.
@Yakk et c'est pourquoi vous devriez généralement considérer votre numéro de carte de crédit comme une information publique.Alors que le CVC doit être quelque peu privé, tout ce qui est imprimé sur le devant de votre carte est simplement trop facile à copier.
@ConorMancone Pour les besoins du PO, une base de données peut très bien être comparable à un «méga fichier», mais bien sûr, ils ne seront pas en texte brut.
@Yakk Votre commentaire est précisément l'intention de ma question.
Lie Ryan
2019-07-29 08:46:53 UTC
view on stackexchange narkive permalink

PayPal est un processeur de paiement, pas un commerçant, ils doivent transmettre le numéro de carte à votre banque (ou à l'émetteur de la carte) lorsqu'ils traitent les paiements, ils doivent donc stocker votre carte de crédit de manière à pouvoir être décryptée retour aux numéros de carte. 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 à sens unique 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 nombres qui correspondent exactement à la détection des doublons.

Machavity
2019-07-30 03:38:51 UTC
view on stackexchange narkive permalink

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 paiement et PayPal le rejetait car

  1. Il était associé à un PayPal compte avec une alerte de fraude (parfois telle qu'évaluée en interne par PayPal)
  2. La carte avait déjà été vue dans une activité de mauvais acteur

Tout cela était antérieur à la conformité PCI. Le n ° 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 activité nouvelle de PayPal.

PCI ne l'interdit pas nécessairement. 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)

mckenzm
2019-07-30 10:40:15 UTC
view on stackexchange narkive permalink

Ils auront une règle selon laquelle 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 numéro, 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 limité 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.

Clockwork-Muse
2019-07-30 00:17:23 UTC
view on stackexchange narkive permalink

Les autres réponses supposent que Paypal stocke tous les détails, plus un hachage pour effectuer la comparaison.

Ceci est probablement incorrect en général. Dans la sécurité moderne des cartes de crédit, en particulier pour les transactions de commerce électronique, les numéros de compte de carte de crédit sont remplacés par des jetons, souvent limités à un seul commerçant:

Visa card tokenization

(D'après un document explicatif disponible sur le site de Visa).

Un commerçant recevra probablement un jeton constant pour chaque carte. Des détails supplémentaires - tels que le numéro de compte de l'utilisateur - peuvent également être retournés. En fonction de la façon dont la tokenisation est gérée, il est possible que ces jetons soient inutilisables par d'autres marchands, ce qui élimine peut-être le besoin de hachage ou de chiffrement.

Vous ne comprenez pas la question.Il ne s’agit pas de tokenisation
@Machavity - comment cela?Si un jeton est constant pour le commerçant (c'est-à-dire PayPal), il pourra nécessairement comparer le jeton à la place du numéro de carte.
À l'étape 1, le client entre son PAN ** et Visa le stocke **.C'est ce que PayPal fait à l'OP.De plus, s'ils émettaient le même jeton pour le même PAN à chaque fois, il serait beaucoup plus facile de procéder à une rétro-ingénierie du jeton pour déterminer le PAN.Il n'y a aucune garantie que le PAN fasse même partie du processus de génération de jetons.Plus important encore, PayPal le fait depuis plus d'une décennie
@Machavity - Le processus serait - donner le PAN à PayPal, PayPal le passe à Visa, le jeton de retour Visa (ou un autre identifiant), PayPal stocke / utilise un jeton.Cela limite les soucis de conformité PCI de PayPal.La principale raison d'utiliser PayPal est que les sites Web n'ont pas à se soucier de l'intégration avec Visa eux-mêmes.Et la technologie sous-jacente aurait certainement pu évoluer avec le temps.`De plus, s'ils émettaient le même jeton pour le même PAN à chaque fois, il serait beaucoup plus facile de faire de l'ingénierie inverse sur le jeton pour déterminer le PAN. '... vous voulez dire, comme hacher le PAN?
@Clockwork-Muse N'oubliez pas que [PayPal n'est pas un marchand] (https://security.stackexchange.com/a/214247/88532).En fait, ils fournissent des services de paiement aux commerçants.Si un commerçant peut obtenir un jeton via PayPal, PayPal doit générer ce jeton et doit avoir les détails de la carte d'origine en main afin de traiter les paiements contre la vraie carte, pas le jeton.
Il leur serait possible de faire appel à des fournisseurs de cartes de crédit pour faire du travail en leur nom, mais il n'est pas nécessaire qu'ils le fassent;ils doivent simplement payer des frais plus élevés et passer des contrôles de sécurité plus stricts pour avoir le privilège de stocker eux-mêmes les cartes de crédit.Même certains grands commerçants le font, et je serais surpris qu'un processeur de paiement ne fasse pas son propre traitement des paiements: sinon, où est leur modèle commercial?Qu'est-ce qui empêche Visa d'offrir les mêmes services directement aux clients de Paypal et de les mettre en faillite?
@jpaugh - Parce qu'ils gèrent plus que simplement Visa, ils gèrent plusieurs types de cartes, la valeur stockée, etc.Si je programme une application Web, je ne veux pas gérer plusieurs processeurs / passerelles - je veux juste un seul largement reconnu, et en finir avec.
Mastercard fait aussi quelque chose de similaire: https://masterpass.com/en-us.html
@Clockwork-Muse C'est un bon point;mais c'est aussi une raison supplémentaire pour laquelle ils auraient besoin de stocker des cartes de crédit pour avoir un modèle économique: ils ne peuvent pas s'attendre à ce que Visa et Master Card offrent leurs services de la même manière;donc ils devraient faire leur propre «travail de jambe» (pour ainsi dire) afin de fournir une expérience cohérente aux commerçants.
@jpaugh - cela n'a aucun sens.Avec des ensembles de données aussi volumineux, un flux et une base de données par émetteur ne sont pas improbables.Les adaptateurs et les classes de mappage sont presque certains, _ même s'ils stockent le nombre complet_.De plus, étant donné que vous pouvez utiliser des éléments tels que des comptes bancaires ou des «crédits de remboursement» dans PayPal, le moyen le plus simple d'offrir une expérience marchande cohérente consiste simplement à renvoyer au commerçant un identifiant de transaction avec «succès».Pas de détails de carte, rien du tout (pour un certain nombre de raisons, ils retournent probablement certains détails, cependant).PayPal cache les différences entre émetteurs pour les commerçants.
@Clockwork-Muse À ce stade, l'un ou l'autre de nous est probablement en train de deviner;mais pour renvoyer un identifiant de transaction * cohérent *, je suppose qu'ils devraient d'abord en créer un, car Visa et MasterCard ne sont pas obligés de renvoyer le même type de numéro ou d'offrir une expérience cohérente aux clients de PayPal.Visa peut avoir un ID de transaction d'un hachage de la date et du montant en dollars tandis que le MC peut renvoyer un GUID.Là encore, PayPal pourrait en fait avoir un SLA qui oblige Visa et MasterCard à présenter les identifiants de transaction (et les jetons ou autre) de la même manière.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...