我了解给定卡的相关 PIN 不会以任何方式存储在卡本身上。所以我想知道,当我使用我的卡时,它似乎能够非常快速地验证 PIN,但有时需要很长时间才能完成交易。我一直认为延迟是与金融服务器建立连接,但时间似乎另有说明。是否在不访问这些服务器的情况下验证了 PIN?
借记卡/信用卡读卡器如何如此快速地验证 PIN?
事实上,在很多情况下,PIN 码都在卡中。有很多可能的情况,并不是所有的都有很好的记录,并且随着时间的推移它们会发生变化。
有些卡上根本没有 PIN 码;至少 15 年前的 Amex 卡就是这种情况,因为您可以通过电话更改 PIN。
有些卡的磁条上有 PIN 的加密副本。这可以解密到一些具有相关解密密钥副本的安全设施中;ATM 或销售点可以保持与这些设施之一的实时连接,并且仍然需要一些时间来联系实际管理帐户的银行。
带有芯片的智能卡知道 PIN 码并可以对其进行验证。这就是智能卡的要点:芯片是防篡改的,因此可以保存秘密;这些秘密可以通过使用 PIN 码的身份验证来解锁;如果提供太多错误的 PIN 值,芯片将自动锁定。当卡是智能卡时,PIN 验证的速度与卡芯片的速度一样快,通常只需几分之一秒。
(防篡改智能卡不会阻止整个协议做一些使安全无效的愚蠢行为;例如,请参阅最近的这篇文章,该文章描述了由于协议缺陷导致的实际欺诈案例。)
是否在不访问这些服务器的情况下验证了 PIN?
如何验证 PIN 码很大程度上取决于您的卡和终端。在下文中,我将解释它如何与 Chip/ EVM一起工作,因为它们在世界范围内非常流行,并且磁条已不再真正使用。(除了在美国这样的地方,在这篇文章的第一次修订时,它才刚刚开始慢慢被淘汰。)
终端请求卡的持卡人验证方法(CVM)列表,然后将其与配置进行比较。例如,您的卡片可能包含这样的列表(简化):
- 离线 PIN(明文),如果不成功则转到下一个
- 在线 PIN 码(如果不成功,请移至下一个)
- 纸质签名(如果不成功,请移至下一个)
- 无需 CVM(如果不成功则失败)
然后终端将其与其配置进行比较并从最高优先级开始。例如,如果终端不支持离线 PIN,它将转到下一个验证方法并通过网络与银行验证 PIN。
就离线PIN(即不通过网络比较)而言,主要有两种方式:
- 纯文本
- 加密
加密验证的工作原理是使用持卡人提供的 PIN 并在将其发送到卡之前使用卡的公钥对其进行加密,然后对其进行解密和验证。明文验证通过将 PIN 直接发送到卡来进行。
在线 PIN 始终进行加密。
总结一下:这在很大程度上取决于您的卡和终端如何验证 PIN。
当然,当您用卡付款时,PIN 码并不是唯一需要验证的东西。再次取决于卡和终端,您的购买可能需要获得银行的授权。
例如,Visa Electron 卡始终需要交易的在线授权,以确保您不会透支。因此,例如,当您乘坐飞机飞行时,它们可能无法正常工作。
但这也取决于终端:取决于国家、商家类别和终端可能不需要请求购买授权的金额。在您需要使用拨号上网的那一天,这非常重要,因为在杂货店每购买 6 美元的商品都需要花费大量时间来验证。现在它不那么重要了,但仍然可以使用。
PIN 验证和授权这两个方面没有相互关联,因此您购买所需的时间可能会有很大差异。
如果您的卡和终端支持离线 PIN 并且您低于下限,他们可能根本不需要联系银行。这可以大大加快购买速度。但如果您超过了下限,该卡可能不会联系银行验证您的 PIN,而是授权交易。
总结一下:PIN是否通过银行验证取决于您的卡和终端机。由于快速的互联网或卡本身验证 PIN,它可能很快发生。但无论如何,可能会联系银行以授权购买(以确保您的帐户中有足够的资金),这会增加一些时间。