web-dev-qa-db-fra.com

Les codes de sécurité des cartes de crédit sont-ils déjà théoriquement peu sûrs (s'ils ne sont pas entièrement cassés)?

Je lisais l'article Wikipedia sur les codes de sécurité des cartes (CSC, CVD, CVV, CVC, V-code, SPC, CID, CV2, CVN2, CAcronym2, etc.) et une certaine affirmation a attiré mon attention ( c'est moi qui souligne):

Le CSC pour chaque carte (formulaires 1 et 2) est généré par l'émetteur de la carte lors de l'émission de la carte. Il est calculé en chiffrant le numéro de carte bancaire et la date d'expiration (deux champs imprimés sur la carte) avec des clés de chiffrement connues uniquement de l'émetteur de la carte, et décimalisant le résultat.

La description ressemble beaucoup à un HMAC utilisant uniquement des informations déjà publiques comme entrée principale - mais en tout état de cause, étant donné le nombre de numéros de cartes de crédit compromis (avec les codes de sécurité de la carte) existant, il doit sûrement être possible de derive la clé de chiffrement de l'émetteur maintenant? (Est-ce important que ce soit un cryptage symétrique ou asymétrique?)

Si c'est vrai, alors je suis surpris que le système soit conçu comme ça au lieu de générer une clé ou un numéro secret unique, par carte, dont le CSC est dérivé au lieu d'une clé à l'échelle de l'institution - ce que ma question présuppose peut être dérivé du grand nombre de valeurs de sortie étant donné la connaissance de toutes les entrées en clair) sortie (codes CSC compromis).

29
The D

La dérivation de la clé de chiffrement de l'émetteur à l'aide d'une collection de numéros de carte de crédit avec leurs codes de sécurité respectifs serait un exemple d'attaque connue en clair (KPA).

Pour être considéré comme sûr, un chiffrement doit être résistant aux attaques de texte en clair connu, c'est-à-dire que le chiffrement du chiffrement même avec un grand nombre de paires de texte en clair ne doit pas être beaucoup plus rapide que le forçage brutal. Il s'agit d'une exigence de base pour que les chiffres soient même pris en compte pour une application pratique.

Dans la conception et l'évaluation de chiffrement, il est supposé que l'attaquant possède autant de paires de texte clair-chiffré connues qu'il le souhaite, et peut en produire de nouvelles en alimentant les textes en clair à chiffrer (CPA). En sécurité informatique, les textes en clair connus sont acquis - par exemple, cette page vous est servie cryptée via HTTPS, mais tout attaquant peut obtenir la plupart de son texte en clair en visitant le site Web. Si cela leur avait permis de dériver la clé privée, HTTPS aurait été rendu inutile.

Les chiffrements modernes tels que l'AES et même les plus obsolètes sont résistants au KPA s'ils sont utilisés correctement. La seule utilisation de paires texte en clair-texte chiffré serait de vérifier si votre clé correspond.

Les chiffrements obsolètes et pré-informatiques n'étaient pas sécurisés et pouvaient en effet être rompus avec KPA; c'est ce qui est arrivé à l'Enigma. Il est également possible de casser les chiffres modernes avec KPA/CPA s'ils sont utilisés de manière incorrecte, par exemple avec IVs et nonces répétés. Une mauvaise utilisation peut réduire la sécurité de n'importe quel chiffrement à un simple XOR, donc un schéma sécurisé prend plus qu'un bon chiffrement. Que des banques l'aient si mal foutu ... j'espère que non.

42
ZOMVID-20