PIN, 英文全称为personal identification number, 即个人识别码, 或者直接称为PIN number。 是一个关于user 和一个system之间shared numeric password。 PIN number 的作用就是authenticate the user to the system。 例如, 当我们在一个银行办理一张银联卡的时候, 我们常说的这张卡的6位长的密码就是这张卡的PIN number。 当我们在ATM机取钱的时候, 只需输入这张卡密码(即PIN number)即可。注意PIN 码并没有embeded on the card, 更没有被printed on the card,。 我们输入我们的银行卡密码, 或者更严谨的说是PIN码, 那么银行的系统会根据用户的ID(即这张卡的账号)到system查找对应的PIN码, 然后将找到的PIN码与我们输入的密码(PIN码)对比, 如果匹配, 则the user is granted access to the access。
PIN可以用于ATM的point of scale transaction。 当我们网上交易的时候, 登陆网上输入的密码, 也是我们设置的PIN码, 但是这个PIN 码并不是与某张卡的PIN码。
在banking system中, PIN码的管理和安全受国际标准ISO 9564 管理。
PIN码的历史
PIN码的使用源于ATM(1967)的使用。 ATM机通过PIN码, 能够实现an efficient way for banks to dispense cash to their customers。
第一个ATM系统是由Barclays of London 于1967年使用。 当时使用的是一个 cheques with machine-readable encoding, 而非cards, 通过PIN码和cheque 上进行比较以匹配。 1972年, Lloyds Bank issued 了第一张bank card(银行卡)。 使用的是information-encoding magnetic strip, using a PIN for security。
PIN码的长度
ATM机的发明者John Shepherd-Barron, 设计的时候设想的是使用一个6位数字用于customer authentication. 但是他的妻子更加倾向于使用four digits。 所以如今, 4位长的PIN码称为银行最常用的了。
今天, 中国的大部分银行使用的是6位长的密码(即专业上看, PIN码)。
PIN码为4位的或者是6位的(中国大部分银行), 为什么不担心brute-force attack 呢??
设想我们的银行卡被一个人捡取了。 如果我们的密码是4位的, 那么这个拾卡人只需要尝试10, 000 次即可。 因为我们的key space 的size 为10^4. 对于6位密码, 只需要10^6次即可。 这在今天的计算速度相比, 或许只是几秒钟的事情。 但是实际上这是不成立的。 原因如下:
大多说的PIN verification system 仅仅运行尝试3次。 如果你输错了3次, 你的card 将会blocked。 此时你可以当银行挂失补卡了。
thereby giving a card thief a putative 0.03% probability of guessing the correct PIN before the card is blocked. This holds only if all PINs are equally likely and the attacker has no further information available, which has not been the case with some of the many PIN generation and verification algorithms that financial institutions and ATM manufacturers have used in the past.