Is changing your PIN a good idea?
I read an article about a recent wave of card skimming attacks. The bit I found interesting was this bit:
NSW fraud squad head Detective Superintendent Colin Dyson:
"There is sometimes a lag between PINs being compromised and used," he said. "If someone whose details are skimmed changes their PIN quickly, the data can be useless to the criminal."
Now if my understanding of bank card security is correct, then changing your PIN will do absolutely nothing, and if your card has been skimmed, then you will want to speak to the bank. Of course, it is quite possible that I'm not quite with the times, and it is sound advice, so here goes with my explanation of how I think it works:
- You put your card into the ATM
- You type in your PIN
- The ATM reads the magnetic stripe on the card and reads:
- The card number
- Expiration date
- A random number (a nonce)
- Your "PIN offset"
- The ATM then takes most of the data it read (but not the PIN offset) and sends it to a special secure cryptoprocessor.
- The cryptoprocessor encrypts the data using 3DES, and a very secret "master PIN", known only to the bank.
- The encrypted data (longer than 4 digits) is converted into your card's "natural PIN" (4 digits), by a fairly straightforward process.
- The resulting "natural PIN" is output from the secure cryptoprocessor to the less secure innards of the ATM.
- The "PIN offset" is added to the "natural PIN" (without doing carries, so 2468 + 2468 = 4826)
- This number is compared to the number you typed into the ATM, if it matches you are authenticated.
When you go to an ATM and change your PIN, you are just changing the PIN offset, your cards natural PIN doesn't change, and you could even do it at home if you had a magnet and a steady hand :-). If your current PIN is 1234, and you want to change it to 2222, then you read the PIN offset on your card (lets say it was 6789) and (without carry) subtract the new PIN (6789 - 2222 = 4567) and add the old PIN (4567 + 1234 = 5791). Write this number as the PIN offset and you are done.
So, in the scenario that you have your card skimmed, then the attacker knows what PIN you typed in, and what the PIN offset was. When they reproduce the card, it will have the PIN offset from before you changed your PIN, so they can just use your old PIN.
So it is possible that they have changed how it all works. Or maybe just a slight change (e.g. store the nonce at the bank also, change it when the PIN changes, and check that it matches when authenticating). However, this slight change actually changes a whole lot of the security model, because in my model all authentication is done inside the ATM. I can't imagine that making this change would be easy.

RSS