我的银行借记卡读卡器如何知道我的密码有效?

信息安全 信用卡 银行
2021-08-21 18:30:13

为什么自动柜员机接受任何密码?表示 ATM 不知道我的密码,并且密码也不在卡上。

我的银行有这个系统:

贝尔菲斯读卡器

它分5个阶段工作:

  1. 我在网站上输入我的借记卡号码;
  2. 网站给了我一个 8 位数的密码,让我在机器上输入;
  3. 我将卡插入机器,按M1按钮并输入8位代码;
  4. 输入密码后,机器会询问我的 4 位密码,并立即告诉我是否正确(通过说明“PIN OK”);
  5. 然后机器给我一个 7 位数的代码,让我在网站上输入,这对我进行身份验证。

如果代码不在我的卡上,这台机器怎么知道我的代码是有效的?请注意,M1 和 M2 按钮不是内存按钮,而是启动某个工作流程的按钮:M1 用于向系统进行身份验证,M2 用于对我的交易进行数字签名。

4个回答

卡片知道这一点,读卡器不知道。当您在读卡器中插入一个密码时,会与卡上的微控制器对话以进行验证 - 这也会记录错误的尝试。因此,多个读者会不由自主地猜测某人的密码!
这或多或少是我的知识范围,但它是如何工作的概述。不幸的是,我不知道底层协议。但迄今为止,我见过的最好的公共芯片和引脚研究人员是剑桥人 ( http://www.cl.cam.ac.uk/~rja14/ ),尽管他们面临法律威胁。很快就会有更好的答案出现!

如果您的借记卡有 EMV 芯片(如今几乎所有芯片都基于 EMV),那么它很可能确实知道您的 PIN 码(或者至少知道如何验证输入的 PIN 码)。

是否实际使用该功能取决于交易类型和终端;如果终端能够在线,它还不如直接与您的银行服务器验证 PIN,这些服务器也知道您的 PIN(或一些派生的验证值)。这解释了有关 ATM 的引用问题中的行为;他们只是选择忽略卡的内置 PIN 验证功能。

由于您的读卡器显然没有连接到您的卡以外的任何东西,您输入的 PIN 实际上是由卡上运行的软件验证的,而不是读卡器。

读卡器向卡提供您输入的 PIN。如果它们匹配,则交易可以继续;如果它们不匹配,则卡中的内部计数器会递减,您可以再试一次(但只能再试几次)。

8 位代码很可能在数学上与您的 PIN 相关(即两者的某个哈希值的总和达到预定义的静态值),因此 8 位代码可以用作验证您的 PIN 的挑战和方法。了解有关 Digipass 序列的更多信息的一种可能方法是尝试输入随机(可能不正确)的 8 位代码:该代码是立即被拒绝还是机器拒绝您的 PIN?有关此类系统的更多信息,请参阅:http ://en.wikipedia.org/wiki/Chip_Authentication_Program

这真的意味着“PIN OK”吗?从某种意义上说,您输入了正确的 PIN?我的银行使用类似的系统。我将卡放入读卡器,输入我的 PIN。银行提供了一个 8 位代码,我将其输入阅读器。阅读器返回一个 8 位代码。生成此代码不需要知道输入的 PIN 是否正确。如果我输入了错误的 PIN,它只会返回另一个代码,该代码不会被网站接受。

Card-id + PIN + request code => validation code

当其中一个错误时,将导致错误的代码。您的卡不需要知道 PIN 码即可使用。然而,它可能会有所不同。