web-dev-qa-db-fra.com

Pourquoi les guichets automatiques acceptent-ils un code PIN?

L'autre jour, j'ai essayé de retirer de l'argent à un guichet automatique à la hâte et j'ai enfoncé une mauvaise épingle. Je me suis rendu compte que lorsque j'ai appuyé sur le bouton "ok", mais à ma grande surprise, le guichet automatique ne s'est pas plaint. Il a montré le menu habituel, me demandant de sélectionner une opération. Ce n'est que lorsque j'ai sélectionné le retrait que j'ai été invité à indiquer que le code PIN était incorrect et que je lui ai demandé de rentrer. Ce que j'ai fait et reçu l'argent.

Pourquoi les guichets automatiques permettent-ils de saisir des ordures pour un code PIN, de sélectionner une opération et de se plaindre ensuite?

MODIFIER : pour ajouter plus d'informations sur certains points abordés dans les réponses et commentaires: le pays où cela s'est produit est la Nouvelle-Zélande. La carte est une carte à puce qui possède également une bande magnétique, et je n'ai aucune idée si l'ATM peut lire la puce ou non.

98
Andrew Savinykh

Cette réponse s'applique lorsque le GAB utilise la bande magnétique de la carte, pas lorsque la puce de la carte est utilisée.

Le clavier d'un GAB est un appareil complètement séparé avec des fonctionnalités de sécurité matérielle spéciales (comme des puces auto-destructrices si quelqu'un essaie de l'ouvrir, etc.) car c'est le goulot d'étranglement de toute la sécurité du GAB.

Lorsque vous saisissez un code PIN, le GAB lui-même ne recevra pas le PIN en texte clair, mais plutôt le PIN crypté. Lorsqu'il envoie une transaction au serveur principal, il combine cryptographiquement le PIN crypté avec le montant d'argent spécifié dans la transaction pour empêcher les attaquants de modifier ce montant.

Si le GAB aurait vérifié le PIN avant la transaction (en l'envoyant au serveur), la spécification du montant d'argent ne pourrait pas être liée de manière sécurisée à la connaissance du PIN.

Par conséquent, le GAB ne peut pas vérifier si le PIN est valide ou non tant qu'il n'a pas tenté d'émettre une transaction vers les serveurs bancaires principaux (qui savent comment décrypter ou autrement vérifier le code PIN crypté).

113
user19426

Confirmer le PIN lorsque la bande magnétique de la carte est utilisée nécessite de contacter le serveur de la banque. Étant donné que cela prend du temps (et a pris encore plus de temps dans les jours de numérotation), l'ATM combine "vérifier le code PIN "et" retirer de l'argent "en un seul contact.

Le comportement peut être différent si la carte a une puce et que l'ATM la prend en charge.

32
Mark

La plupart des distributeurs automatiques de billets doivent gérer deux types de cartes: les anciennes, les magnétiques et les plus récentes. Les cartes magnétiques ne peuvent pas vérifier le PIN localement. Les cartes à puce ont théoriquement cette capacité - mais cela ne signifie pas que cette fonctionnalité n'est pas limitée.

Le comportement que vous avez décrit correspond parfaitement au flux de la carte magnétique. Mais - la carte à puce doit-elle être vérifiée en utilisant un autre chemin? Il y a 2 raisons pour lesquelles cela ne devrait pas:

1) La mise en œuvre d'une toute nouvelle deuxième voie coûte de l'argent. Le fabricant de GAB souhaite sûrement maintenir les coûts bas et réutiliser autant de code que possible.

2) Présenter une expérience utilisateur cohérente. Il est facile d'imaginer quelqu'un avec 2 cartes, une magnétique et une puce. Ou un client reçoit une nouvelle carte à puce pour remplacer l'ancienne carte magnétique uniquement. Il n'est pas nécessaire de confondre les utilisateurs en leur fournissant 2 chemins différents. Les guichets automatiques sont assez effrayants.

/ edit: Oh, j'ai oublié une chose très importante:

Local PIN sur la carte peut être obsolète.

Dans de nombreuses banques, vous pouvez modifier le code PIN de la carte, mais la puce de la carte ne peut pas le savoir. Donc, si ATM vérifiait PIN localement, il rejetterait le nouveau PIN correct, mais autoriserait un vieux PIN incorrect. Et ofc PIN le contrôle réussirait et la transaction échouer.

21
Agent_L

C'est une question de politique dans le logiciel ATM. De nombreux guichets automatiques do vérifient en fait le PIN avec la banque avant de vous permettre de continuer.

Mais le GAB lui-même ne sait pas si votre PIN est correct. Il doit demander à la banque, et cela prend du temps. Le temps nécessaire déterminera souvent si le GAB sautera ou non cette étape.

Chaque transaction entre le GAB et la banque est distincte, donc chacune doit être authentifiée séparément et donc le PIN est validé avec tous les Cela signifie que d'un point de vue pratique, l'ATM n'a pas besoin techniquement de valider la PIN à l'avance). Il sait qu'une erreur PIN entraînera l'échec de toute autre transaction.

Il y a donc un équilibre à trouver, et chaque GAB peut procéder différemment. Valider le PIN à l'avance peut être plus simple pour l'utilisateur, mais cela peut nécessiter plus de temps si le GAB n'a pas de ligne dédiée ouverte à la banque. Imaginez donc taper votre code PIN et attendre 20 secondes pour que le GAB vous indique si vous l'avez fait correctement. Pour réduire le temps total requis, il peut choisir de sauter cette étape.

14
tylerl

Il n'y a aucune raison de vérifier la broche à ce stade, sinon ce serait mauvais.

  1. Perte de bande passante/de temps à vérifier car elle doit probablement être renvoyée avec l'appel de transaction de toute façon.

  2. Si quelqu'un essaie de deviner la broche, il faut beaucoup plus de temps pour savoir si c'est la bonne broche. Il y a plus de chances que leur visage soit placé sur un appareil photo plus ils se tiennent devant la machine.

  3. Il n'y a aucun moyen de vérifier le code PIN par rapport à la carte, cela doit impliquer la banque pour vérifier sinon vous pourriez faire une vérification hors ligne.
  4. Cela s'applique à la fois aux cartes à bande et aux cartes à puce, la broche ne serait jamais stockée dans aucun de ces emplacements sous aucune forme.
2
Jegsar

l'utilisateur19426 réponse est intéressant - je ne savais pas que les claviers ATM étaient implémentés de cette façon - mais il ne semble pas que cela puisse être l'explication complète car il n'y a toujours aucune raison pour laquelle vous ne pouvez pas vérifier le PIN initialement (sans exposer sa valeur en texte brut), puis utiliser ultérieurement le hachage PIN pour signer la transaction réelle. Dans le cas des cartes à puce, cela ne 't même exiger aucune communication supplémentaire avec la banque.

N'importe qui peut vérifier en privé le PIN pour une carte à puce à tout moment, par exemple en utilisant les claviers d'authentification portables les banques européennes envoient régulièrement des courriers à leurs clients (je suppose que les cartes peuvent se désactiver elles-mêmes après un certain nombre de tentatives erronées.) Un GAB qui rejette un mauvais PIN à l’avance ne fournit aucun vecteur d’attaque non disponible à partir d’un GAB qui vous oblige également à tenter une transaction. Force brute n'est pas un problème, car un délai de 30 secondes signifie simplement qu'il faut 90 secondes de plus pour atteindre le point où la machine confisque la carte.

Pour autant que je sache, il n'y a qu'une seule implication de sécurité à ne pas vérifier le PIN à l'avance. Si je mets votre carte volée dans un guichet automatique, et entrez ce que je pense être votre code PIN, et il dit moi le PIN est faux, alors je m'éloigne et la CCTV montre que je suis coupable d'avoir essayé d'accéder à votre compte. Si je mets le code PIN, puis demande 200 £, la CCTV montre que je suis coupable d'avoir essayé d'accéder à votre compte et d'essayer de lui voler 200 £.

1
bobtato

Cela se produit pour deux raisons:

  1. C'est plus sûr et les banques veulent économiser de la bande passante .

    La banque stocke généralement votre PIN sous forme hachée dans sa base de données. Pour pouvoir vérifier le PIN que vous avez entré au GAB, le GAB doit envoyer au serveur bancaire le hachage du PIN que vous avez entré. Ces deux hachages sont ensuite comparés pour vérifier si le PIN que vous avez entré est correct) et alors seulement, vous êtes autorisé à effectuer des transactions. Bien sûr, c'est une approche rudimentaire de la sécurité. Il y a des choses comme la relecture et les attaques man-in-middle à considérer (pour plus d'informations, lisez Authentification par réponse ).

    Au lieu de cela, la banque peut envoyer votre PIN avec la transaction elle-même, en vérifiant votre PIN et transaction en même temps. Cela économise de la bande passante et est potentiellement plus sûr car la fenêtre d'attaque est réduite. Par exemple, si la banque authentifie votre session à partir du moment où vous avez entré votre code PIN, cela donne à tout attaquant potentiel le temps d'intercepter la connexion et de faire ses propres transactions.

    D'un autre côté, une bonne connexion sécurisée est difficile à implémenter et les bugs font se produisent . Une vérification unique lorsque vous effectuez une transaction permet à la banque de vous identifier en toute sécurité et économise de la bande passante. En fin de compte, cela dépend toujours du guichet automatique en question, car la banque peut toujours vérifier votre PIN au début de chaque session et pour chaque transaction suivante.

  2. Les cartes ATM ne stockent pas votre PIN dans la bande magnétique. (Les cartes à puce le font.)

    Contrairement à certaines réponses, les cartes ATM ne peuvent pas et ne mémoriseront pas votre NIP. Le but de la carte ATM est d'obtenir une authentification à deux facteurs: quelque chose que vous avez (la carte) et quelque chose que vous savez (le code PIN). Il y a eu des cas où la carte ATM a été violée par des attaquants.

    L'ATM doit se connecter aux serveurs bancaires pour vérifier que vous êtes bien ce que vous dites être. Les cartes ATM peuvent et ont été dupliquées auparavant (écrémage). Si le PIN pouvait être vérifié hors ligne en utilisant uniquement les données sur la bande magnétique de la carte ATM, les attaquants pourraient attaquer par force brute tous les 9999 codes PIN possibles assez rapidement avec une attaque hors ligne. Le système est donc conçu pour exiger de contacter la banque pour chaque supposition, ce qui rend plus difficile pour les attaquants de voler votre carte ATM et de retirer tout votre argent.

0
Roy

Un scénario populaire où cela se produit généralement est lorsque la carte que vous utilisez provient d'une banque différente et que le GAB est d'une autre banque.

Pourquoi?:

Différentes banques se connectent les unes aux autres via un commutateur national au niveau du pays qui connecte différentes banques les unes aux autres. Tout comme VISA est un commutateur international, il existe des commutateurs nationaux pour les transactions à l'intérieur du pays.

Lors de l'exécution d'une telle transaction, outre la bande passante, un montant particulier est également déduit en raison de l'utilisation de ce commutateur national, ce montant est basé sur une transaction.

Donc, au lieu d'envoyer deux transactions à ce commutateur et éventuellement à cette banque. Une seule transaction est utilisée dans laquelle PIN et les détails des transactions sont envoyés. Si la transaction PIN est correcte), sinon elle est refusée.

Le scénario ci-dessus peut également être utilisé pour les mêmes transactions bancaires, mais il n'y aura aucun avantage financier car il n'économise pas de frais mais juste une petite bande passante.

0
SajjadHashmi