Paypal 如何知道我的卡正在另一个帐户中使用?

信息安全 信用卡 贝宝
2021-08-22 23:07:19

我有一张信用卡保存到我的主要 Paypal 帐户。长话短说,我需要创建另一个与我原来的帐户无关的 Paypal 帐户。

我使用了另一台计算机,它从未登录到我原来的计算机。当我尝试将我的信用卡注册到该帐户时,Paypal 告诉我我无法注册它,正如他们所说

此卡已链接到不同的 Paypal 帐户。

他们怎么可能知道?我的信用卡不应该只在我的帐户下存储一个哈希值吗?Paypal 如何以及为什么将所有注册卡保存在一个大文件中以供交叉参考?

4个回答

Paypal(或更一般地说,任何支付服务)可以知道您是否在多个地方使用过您的卡有几个原因。

您的信用卡在任何可能的地方都被绝对追踪

我的信用卡不应该只在我的帐户下存储一个哈希值吗?

如果您的卡保持散列,则可以轻松地跨帐户进行比较。散列是确定性的,因此对于固定散列算法,给定的信用卡将始终给出相同的散列。因此,如果他们正在存储哈希值,他们可以轻松地跨账户进行比较,并确定卡是否已经存储在其他地方。这样做可能是有利的,因为在这种情况下,它被用来防止欺诈(这意味着如果将同一张卡添加到多个账户,很可能是由于欺诈)。一旦您拥有信用卡的“安全”哈希,就没有理由不在不同的帐户中检查它。贝宝当然可以而且确实可以。

但是,此功能不仅限于 Paypal,更小的商家也可以轻松使用。例如,使用 Stripe(一种常见的符合 PCI 标准的支付方式),商家将获得存储在 Stripe 上的每个信用卡号的唯一标识符。商家不保留(甚至查看)卡号,但他们仍然可以将给定的哈希值与系统中使用的其他卡哈希值进行比较。这可以(并且)很容易用于跟踪用户跨多个账户和匿名交易的购买历史的不那么利他的目的,同时仍然保持 PCI 合规性。

所以要明确一点,您的信用卡在任何地方都会被尽可能多的人跟踪,即使他们自己不知道您的信用卡号码。

Paypal 将您的实际信用卡号存档 - 而不仅仅是哈希

较小的商家可以而且应该确保并且永远不会存储、传输甚至查看实际的卡详细信息。但是,没有要求禁止任何商家保留实际卡号,如果他们愿意的话。一般来说,尽管任何想要保留卡号并保持 PCI 合规性的商家(理论上)都必须经过更严格的验证、安全审计,并且实际上必须支付大量费用。在保持 PCI 合规的同时保留信用卡号码的成本和责任如此之大,以至于任何经营良好的中小型企业都不会尝试。

但是,大型企业可以并且确实选择不这样做。现实情况是,有人必须将卡号存储在某个地方,以便您的卡可以被计费。较大的信用卡处理器(Paypal 肯定是)肯定会存储完整的卡号。他们应该使用强加密和安全密钥/访问控制程序来存储号码。

至于他们如何确定信用卡号码被使用了两次的细节,最终只有 Paypal 才能回答。他们可能有一种直接比较加密卡号的方法,但更有可能的是,他们存储卡号的哈希值并直接比较它们(h/t Jory Geerts)。不过,无论哪种方式,他们都会将您的卡号存档,并且可以将卡号与帐户进行比较。

请注意,这并不意味着它们“将所有已注册的卡保存在一个大文件中以供交叉参考”。他们用于安全卡存储的基础设施肯定比这复杂得多。然而,他们显然有一个引人注目的业务需求,即能够跨账户比较卡,并设置了他们的基础设施,以便他们既可以安全地存储您的卡也可以检查跨账户的重复我同意链接的评论:我猜他们也在计算信用卡号的安全哈希值,并使用它进行简单比较。

PayPal是支付处理器,而不是商家,他们在处理付款时需要将卡号传递给您的银行(或发卡机构),因此他们需要以可以解密回卡的方式存储您的信用卡数字。为了遵守 PCI-DSS,他们必须在其服务器上加密这些信息并遵守所有更严格的 PCI-DSS 要求,但他们不能使用单向哈希来存储信息并仍然能够处理支付。

话虽如此,即使他们以单向哈希存储信息,找到与重复检测完全匹配的数字仍然相当简单。

卡号长期以来一直是 PayPal 风险评估流程的一部分。我们曾经使用他们的 Website Payments Pro 产品,有时我们会遇到一个问题,有人会将他们的卡号放入我们的结帐中,而 PayPal 会拒绝它,因为

  1. 它与带有欺诈警报的 PayPal 帐户相关联(有时由 PayPal 内部评估)
  2. 该卡以前曾在不良演员活动中看到过

这一切都早于 PCI 合规性。#1是有问题的,因为它实际上要求客户致电PayPal并直接解决问题(有时是关闭多年的帐户)。这不是 PayPal 的新活动。

PCI 不一定禁止这样做。卡号可以全部存储,有效期也可以。仅禁止存储 CVV2 编号。如果您这样存储卡数据,则必须满足某些安全标准(有关详细信息,请参阅此问题

他们将有一个规则,一张卡只能链接一次。他们用来探测的图像可能不是纯文本,它可能在散列之前已经“打包”(COMP-3 或 BCD),但它应该足够熵(高基数)以避免冲突。

它不仅是数字,还将是到期日期,可能还有 cvv。所有信用卡号都以 4 位 BIN 开头,并以基于 Luhn 算法的校验位结尾。它们必然会被回收,因为剩下的位数是有限的,尤其是当 Visa 和 MasterCard 银行可能使用接下来的两位或三位数字作为子产品信息时。我知道一家银行将前 10 位数字用于向员工发放的某些卡。所以当你得到另一个号码时,迟早会有人得到你的号码。

探测现有值的索引是一件非常简单的事情。