web-dev-qa-db-fra.com

Tous les 0 (zéros) dans un code CVV de carte bancaire

Ma carte bancaire a récemment expiré. J'en ai eu un nouveau et celui-ci s'est avéré "chanceux": son code CVC était 000 .

CVC code is 000

Pendant quelques mois, je l'ai largement utilisé, en ligne et hors ligne, sans aucune difficulté - jusqu'au jour où j'ai entré les détails de ma carte sur Booking.com. J'ai rempli le formulaire, cliqué sur "soumettre" - seulement pour voir la page rejeter la valeur dans le champ CVC et demander que je la ressaisisse.

J'ai contacté le support. Ils ont confirmé que le code CVC "000" n'est pas acceptable car il n'est pas considéré comme suffisamment sécurisé (pas un devis exact malheureusement, car la conversation était en estonien), et ils ont suggéré que je commande une nouvelle carte bancaire où le code CVC serait différent de "000".

Cela m'a intrigué. En tant qu'ancien testeur, je suis assez habitué aux situations où je pense que je signale un bug et ensuite on me dit que c'est en fait une fonctionnalité, mais cette fois, c'était un peu contraire au bon sens. Mon travail actuel est également lié à la sécurité de l'information et je peux penser à trois raisons pour lesquelles leur revendication n'a pas de sens:

  1. CVC n'est pas seulement un nombre aléatoire, il y a certain algorithme pour le générer. Ceci, à son tour, signifie que toutes les valeurs sont également probables et que certains nombres ne peuvent pas simplement être exclus de celle-ci.
  2. J'ai déjà utilisé cette carte avec un certain nombre d'autres services en ligne, y compris Amazon Web Services, dont la sécurité est hors de tout doute.
  3. Je ne comprends pas très bien ce que signifie "pas suffisamment sécurisé". "111" ou "999" sont-ils suffisamment sécurisés? Sinon, que diriez-vous de "123" ou "234"? Encore une fois, ce n'est pas quelque chose que je choisis moi-même, c'est quelque chose que me donne une banque, et si la banque pense que c'est sûr, alors il doit être traité comme tel.

Leur réponse a été très polie mais pas très utile: " Nous comprenons parfaitement votre frustration et nous sommes vraiment désolés de vous causer des désagréments. Nous avons remis votre raisonnement à notre direction - ils ont répondu que 000 est considéré comme invalide, et ceci est aussi une façon dont les banques indiquent que la carte est un faux ".

J'ai transmis la chaîne de courrier à ma banque et j'ai demandé leur avis. Ils m'ont dit qu'ils émettraient une nouvelle carte gratuitement, ce qui a résolu le problème pour moi.

Cependant, je me demande toujours:

  1. Existe-t-il des réglementations/prescriptions officielles (de Visa/MC ou ailleurs) ou des meilleures pratiques concernant les codes CVC/CVV "tous nuls"? Surtout le fait que les banques utilisent prétendument 000 pour indiquer une contrefaçon - cela me semble complètement absurde. J'ai essayé de googler, mais je n'ai rien trouvé.
  2. D'un point de vue pratique, dans quelle mesure est-il raisonnable de décliner "000" comme précaire? J'ai énuméré mes préoccupations ci-dessus, mais peut-être que je manque quelque chose?

Mise à jour : Choix difficile sur quelle réponse accepter ... J'ai bien aimé le réponse d'Alexander O'Mara beaucoup - il est détaillé et au point. La dernière révision de réponse de Harper semble également très raisonnable. Pourtant, j'ai finalement décidé d'accepter le réponse de Zoey - il semble le plus pertinent, car il, en plus de tout le reste, met également en lumière les aspects internes de l'hôtellerie.

Merci à tous pour vos réponses et commentaires! Ce que je vais faire maintenant, c'est contacter à nouveau l'assistance Booking.com et insister pour que cela soit corrigé. Vous fera connaître le résultat.

Mise à jour 2 : Après plusieurs mois à essayer de contacter le support de Booking.com, j'abandonne officiellement. Je ne suis pas allé plus loin qu'un nombre incalculable de tickets d'assistance qui n'ont même pas été confirmés, sans parler d'avoir réagi, et quelques appels téléphoniques où j'ai expliqué la situation et qui n'ont reçu qu'un e-mail en conserve "nous essayons très difficile de résoudre votre problème ". Conclusion: le support de Booking.com ne fonctionne pas - à moins que votre problème ne soit très standard, il ne sera pas résolu ni transmis à une direction supérieure.

Le bug existe toujours. Je suis maintenant assuré qu'il ne s'agit que d'un bogue logiciel, car CVC "000" est parfaitement accepté lorsque vous ajoutez une nouvelle carte , mais il ne fonctionne pas ne fonctionne pas lorsque vous essayez de mettre à jour une carte expirée (ou non valide). Voici les étapes de repro:

  1. Créez une nouvelle réservation qui nécessite un paiement immédiat.
  2. Saisissez une carte invalide (expirée ou bloquée).
  3. Lorsque le système envoie une notification indiquant que la carte ne peut pas être traitée, sélectionnez "Mettre à jour les détails de la carte" et entrez les détails d'une carte valide avec le code CVC 000.

Résultat attendu: les données de la carte sont acceptées pour un traitement ultérieur.

Résultat réel: le code CVC entré est rejeté et la fenêtre de dialogue se plaint que le code CVC n'est pas entré.

234
Vlad Nikiforov

Alexander O'Mara a fourni un bonne réponse , mais ayant travaillé dans un hôtel qui utilisait booking.com, je pense pouvoir fournir des informations supplémentaires sur la raison pour laquelle CVV a été refusé.

Chaque jour, l'hôtel dans lequel je travaillais recevrait environ 50 réservations, un quart de ces réservations utiliseraient de fausses informations de carte de crédit et environ 90% des personnes utilisant de fausses informations de carte de crédit ne se présenteraient pas.

Cela a entraîné beaucoup de conjectures lors de l'attribution des chambres, nous essayions souvent de deviner si la personne se présenterait uniquement en fonction des détails de sa carte de crédit, et prendrait parfois en considération le nom, l'emplacement, le nombre de jours de séjour, etc. Nous essayons également d'appeler la veille pour confirmer les réservations, afin que ces fausses réservations entraînent une interruption minimale de l'activité.

Bloquer CVV 000 n'est qu'une tentative paresseuse de booking.com de réduire le nombre de fausses réservations. Certains autres CVV sont également bloqués.

La raison pour laquelle booking.com bloque le CVV et les autres sites Web ne le fait pas parce que d'autres sites Web tentent généralement de débiter la carte de crédit immédiatement, tandis que booking.com ne transmet les informations qu'aux hôtels qui facturent la carte de crédit le jour de l'arrivée.

186
Zoey

Le seul argument faible auquel je peux penser pour rejeter un tel CVV serait que si quelqu'un essayait de forcer brutalement votre code à 3 chiffres, il pourrait Commencer avec 000 d'abord (mais rejetteraient-ils également 001?).

D'un point de vue pratique, dans quelle mesure est-il raisonnable de décliner "000" comme précaire?

Ce n'est pas vraiment raisonnable. Soit vous pouvez charger la carte avec le code CVC/CVV fourni, soit vous ne pouvez pas. Il n'y a aucune bonne raison de rejeter ce code, car il est valide, et vous ne pouvez pas vraiment être sûr si les codes d'une carte de crédit sont valides jusqu'à ce que vous essayez de le facturer.

Malheureusement, une validation d'entrée mal conçue est trop courante. Certains développeurs ont tendance à supposer simplement que certaines valeurs ne sont pas valides sans vérifier la spécification, ou ne testent pas correctement leurs validations d'entrée.

Quelques exemples:

  • Adresse IP 1.1.1.1
  • Vérification des versions bogues comme "10" <"9" si seul le premier caractère de la chaîne vérifie
  • Noms avec caractère non alpha (comme l'apostrophe en mon nom)

Il n'est pas rare non plus que les membres du service client répondent à vos rapports de bogue avec quelque chose du genre "ce n'est pas un bogue, c'est une fonctionnalité" sans même consulter les développeurs.

147
Alexander O'Mara

Il s'agit d'un défi de cadre des revendications de l'entreprise. Un nombre aléatoire dans la plage 000-999 est plus sûr que 001-998, le rejet de valeurs l'affaiblit .

C'est un bug logiciel. Ils ne peuvent pas l'admettre.

Un seul exemple: disons, quelque part dans la pile, ils utilisent un langage avec des variables non typées (c'est-à-dire où la même variable peut contenir 123,45, "tard pour le dîner", une chaîne de 0 caractères, un jeton "non défini", etc.). Il est courant d'écrire ceci:

if ($CVC) # is CVC field present?

Dans un langage non typé, une chaîne vide est évaluée à 0 (faux) comme prévu par le programmeur, mais il en va de même pour 000! Il existe de meilleures façons de le faire.

Dans ce cas, nous savons que le problème ne vient pas de l'interface utilisateur Web publique que vous utilisez, mais de la plate-forme principale que vous partagez tous les deux. L'agent doit ouvrir un bogue à ce sujet dans le système de billetterie.

Alors pourquoi ont-ils revendiqué ce qu'ils ont dit? Parce que les entreprises normales sont très réticentes à admettre ce type d'erreur structurelle qui les rend incompétentes. Mais elles ne peuvent pas non plus vous envoyer un "je ne sais pas", car cela a le même effet. Ils doivent donc vous dire quelque chose en ce moment qui leur semble vendable.

De toute évidence, c'est faux; comme le prouve toutes les autres personnes avec qui vous faites affaire qui n’ont aucun problème avec cela. Mais essayez-le vous-même; essayez une plateforme de réservation concurrente et voyez comment ça se passe.

92

J'ai actuellement une carte de crédit qui a sans doute un pire numéro CVV: 123

Jusqu'à présent, cela n'a jamais été refusé, mais d'un point de vue de la sécurité, je n'aime pas cela car j'ai l'impression que cela pourrait très bien être la première chose qu'un voleur taperait s'il avait en quelque sorte mes numéros mais pas ma carte.

Du point de vue du site Web, à mon humble avis, il est insensé de traiter délibérément un numéro valide comme non valide. (Encore plus si les chances que cela se produise ne sont que de 1 sur 1000.) Comme il serait extrêmement facile pour le site de tenter une toute petite autorisation pour confirmer la carte de crédit, ou même de laisser l'hôtel décider par lui-même, je ne le fais pas '' t d'accord avec l'argument "prévenir les faux numéros". Cela étant dit, une recherche rapide produit pas mal de personnes avec le même problème sur divers sites Web au fil des ans. Donc tu n'es pas seul. :)

10
TTT

En toute honnêteté, booking.com doit transmettre des informations à des dizaines de milliers de systèmes de réservation d'hôtels pour qu'ils les traitent. J'espère que booking.com peut se permettre un développeur qui sait que (000) == FALSE en JavaScript ... mais cela vaut-il la peine de leur temps pour essayer de diagnostiquer exactement le même bogue pour les centaines d'hôtels qui ont probablement ce bogue dans leur systèmes de réservation? Absolument pas.

Je suppose que c'est en fait une tentative plutôt raisonnable d'atténuer les erreurs de traitement des données qui se produisent plus loin dans la chaîne et dans les systèmes qui sont hors du contrôle de booking.com.

En tant que marchand de traitement de cartes, ils sont obligés de traiter des cartes valides, donc ils enfreignent probablement les règles du marchand ici et pourraient avoir des problèmes avec VISA (ou qui que ce soit) ... mais je peux presque voir la logique.

5
hiburn8

J'ai ici quelques problèmes avec la simple théorie du "bug stupide". Je ne doute pas que la personne à qui vous parliez tirait ce non-sens de nulle part (comme certains services à la clientèle ont l'habitude de le faire). 000 est parfaitement valide et vous n'êtes pas la première personne sur Internet à signaler avoir le numéro.

Mais il y a une échelle ici que les gens n'apprécient pas.

  • La possibilité naturelle d'obtenir 000 car votre CVV est de 0,1%
  • Booking.com est une entreprise qui a généré 8 milliards de dollars de revenus bruts en 2017, la plupart sur les transactions par carte. Cela représente environ cinquante mille réservations moyennes par jour.
  • Booking.com doit donc rencontrer 000 50 fois par jour. Pour un montant de 25k $ perdu pour Booking.com et, beaucoup, beaucoup plus en termes de réservations réelles non transmises.

Le rejet de 0,1% des transactions par carte représente une perte de revenus de 9 millions de dollars. Dans les entreprises [ très beaucoup plus petites] pour lesquelles je travaille, l'analyse des flux de réservation signalerait cela assez rapidement dans la chaîne. Ces types d'entreprises (je travaille tangentiellement dans les systèmes de réservation de vacances), l'expérience du panier est la partie la plus suivie ... Je trouve très difficile de croire qu'une entreprise qui s'appuie sur l'analyse manquerait quelque chose d'aussi simple qu'une validation de carte problème.

Donc, si nous supposons que cela ne peut pas exister à cette échelle, nous devons proposer quelques suggestions qui limitent la portée ...

  1. Il s'agit d'un bug local.

    De nombreuses multinationales mettent de l'argent sur des comptes locaux et le font rebondir à des fins fiscales. Il se peut que Booking.com autorise ses bureaux locaux à modifier le code à ce sujet pour gérer les bizarreries locales (monnaie, schémas de paiement entiers qui ne sont pas mondiaux) et, ce faisant, permettant aux bogues de se glisser qui n'existent pas ailleurs.

    La possibilité de cela est accrue car le pays cible est la Croatie. Ils utilisent le Kuna là-bas, pas l'euro. Il pourrait bien y avoir une multitude de différences comptables et de fournisseurs de mécanismes.

    Cela explique également en partie pourquoi cela est passé sous le radar. 0,1% de l'argent à destination de la Croatie va être bien inférieur au revenu mondial.

  2. 000 n'est pas aussi courant que 0,1%

    Comme JPhi1618 le fait remarquer dans les commentaires, l'autre facteur limitant la portée est que peut-être les banques n'émettent pas 000 très souvent. Il n'y a aucune raison pour qu'ils ne le fassent pas et comme je l'ai dit, il y a des preuves en ligne d'autres personnes avec 000 cartes, mais cela ne veut pas dire que c'est courant.

    [~ # ~] i [~ # ~] n'ai aucun moyen de vérifier cela. Peut-être que quelqu'un avec un journal de traitement des cartes qui comprend des CVV peut exécuter une analyse.

Néanmoins, si vous rencontrez des problèmes comme celui-ci, signalez-les. Ignorez l'équipe du service client, car ils ne savent tout simplement pas ce qui se passe. Allez voir le PDG ou l'équipe de sécurité, car ils vont tous les deux prendre cela très au sérieux pour des raisons légèrement différentes. Une perte de revenus de 9 millions de dollars est un bon facteur de motivation.

3
Oli

Notez que sur certains logiciels de cartes de crédit, un CVC avec la valeur magique 000 signifie qu'un CVC a été fourni mais a été supprimé depuis (en raison de contraintes PCI). C'est probablement ce que fait Booking, et cela explique pourquoi ils ne l'acceptent pas.

0
Luk