Je lisais Breaking VISA PIN par L. Padilla. Il a déclaré que changer le PIN changera les données stockées sur la carte. Mais, j'ai essayé plusieurs cartes et changer le PIN n'affecte pas les données stocké sur les pistes 1 et 2.
Comment puis-je interpréter cela?
Existe-t-il un moyen d'extraire PIN de ces données?
Voici quelques exemples de données:
Track1:
PAN:6104XXXXXXXXXXXX
Expiration date:1608
service code:100
Discretionary data: 91516084076901530
Track2:
PAN: same as track1
Expiration date:1608
service code:100
Discretionary data:9154177591894
Utiliser un autre lecteur:
;6104XXXXXXXXXXXX=16081009154177591894?
Dans le passé, ils ont peut-être encodé le PIN sur la carte, mais avec un peu de chance (comme votre test l'indique), ils ont cessé. Il semble que l'article que vous citez date de 2009, ce qui est plutôt de date.
Pour savoir pourquoi ils ne devraient pas coder le PIN sur la carte, consultez la publication spéciale du NIST 800-63-2, la directive d'authentification électronique. Dans le cas de l'authentification multifacteur, elle devrait consiste en une combinaison de "quelque chose que vous savez, quelque chose que vous avez et quelque chose que vous êtes". Pour une carte et un système PIN vous avez quelque chose (la carte) et savez quelque chose (le PIN). Si vous encodez le PIN sur la carte, vous n'avez alors que quelque chose, qui est une authentification à facteur unique et qui n'est pas aussi sécurisé.
Si vous êtes intéressé par la sécurité des codes PIN dans les cartes de crédit, vous pouvez consulter: https://www.pcisecuritystandards.org/documents/PCI_PIN_Security_Requirements.pdf . Il s'agit des exigences PCI pour la sécurisation des PINS.
Quant aux différences dans les données discrétionnaires, elles peuvent provenir de plusieurs sources. D'après ISO/IEC 7813, la longueur d'enregistrement maximale des pistes 1 et 2 est différente. Le DD est utilisé pour remplir la balance des caractères.
Pour les données discrétionnaires, la mise en œuvre est laissée à la discrétion de la société émettrice. Quant à ce qu'il peut contenir, vous pouvez le découvrir en consultant la documentation de la société émettrice (je doute que vous y trouviez autre chose que des choses plus étranges se sont produites). Il peut simplement s'agir d'un remplissage aléatoire pour atteindre la bonne longueur ou il peut contenir des données supplémentaires. Voir https://stackoverflow.com/questions/12239855/discretionary-data-from-magnetic-strip-credit-card-how-to-parse .
L'intérêt de la broche est qu'elle ne se trouve pas sur la carte, mais plutôt dans les ordinateurs de la banque, de sorte que l'accès physique à la carte ne peut pas vous fournir cette information. S'il figurait sur la carte, ce serait simplement un numéro de compte plus long.
Non PIN est stocké sur la piste magnétique. Il existe essentiellement 2 types de stratégies PIN couramment utilisées dans les paiements par carte: PIN hors ligne et en ligne).
Hors ligne PIN nécessite que la valeur PIN soit stockée en toute sécurité dans la puce dans un module inviolable. Lors de la vérification, le titulaire de la carte saisi PIN est envoyée au module pour vérification.
En ligne PIN scénarios envoyer la PIN dans la demande d'autorisation à l'hôte de l'institution financière pour vérification par rapport à la valeur sécurisée PIN dans leur base de données.
Si vous êtes en mesure de modifier un PIN sur une carte à puce, à l'aide de scripts, vous modifiez probablement le mode hors ligne PIN dans la puce. Il n'y a pas visibilité des codes PIN dans la piste magnétique.
Pour ajouter aux deux autres réponses, les données sur la bande magnétique sont stockées en utilisant le codage IEC_781 . Selon Wikipedia les données discrétionnaires peuvent inclure le code PIN. Ce n'est normalement pas le cas.
Je me souviens de la façon dont il utilisait pour travailler était à peu près comme suit, qui à la fois a un certain degré de sécurité et permet hors ligne PIN change.
Je crois que le code sur la bande magnétique peut être appelé PVV (ou "PIN offset"). Voir par exemple ici et ici pour une référence plus ancienne, à partir de la seconde (fin de la section 3.1):
Enfin, pour permettre aux titulaires de carte de modifier leur code PIN, un décalage est ajouté qui est stocké dans la base de données mainframe avec le numéro de compte. Lorsqu'un guichet automatique vérifie un code PIN saisi, il soustrait simplement le décalage de la carte avant de vérifier la valeur par rapport au résultat décimalisé du cryptage.
Voir ici (voir note ci-dessous) pour une référence moderne:
PINCP: PIN Paramètres de contrôle (PINPARM). 6 chiffres:
Si FC = 01, les deux premiers chiffres représentent l'algorithme utilisé pour calculer le PIN, où 00-09 signifie algorithme privé, 10-19 moyenne DEA et les valeurs 20 à 99 sont réservées pour une utilisation future par ISO/TC 68. Les 4 chiffres suivants sont = PIN offset, une valeur complémentaire de PIN pour que les clients puissent changer leur code PIN ou PVV).
Si FC = 02, le premier chiffre représente l'algorithme utilisé pour calculer le PIN, où 0 signifie algorithme privé, 1 signifie DEA et les valeurs 2 à 9 sont réservées pour une utilisation future par ISO/TC 68. Le deuxième chiffre représente une clé pour l'algorithme. Les 4 chiffres suivants sont PIN offset, une valeur complémentaire de PIN afin que les clients puissent changer leur code PIN ou PVV).
Si ce champ n'est pas utilisé, un FS sera en place.
(ce qui précède a été fait de mémoire, puis recherché avec Google, et c'est seulement à ce moment-là que j'ai réalisé que l'article semblait en fait être le même que celui auquel vous avez fait référence).
Le PIN est stocké uniquement dans la puce (probablement sous forme hachée), pas sur la bande magnétique. et des lecteurs PIN.
Notez que l'article cité a été écrit en 2002; il est possible que les anciennes normes soient différentes.
Vous pouvez modifier votre code de service sur la bande magnétique qui est possible, afin que vous puissiez transformer une utilisation électronique prépayée uniquement en espèces sur le guichet automatique.