TL;博士
我多年来一直使用借记卡,对安全问题知之甚少。然而,从逻辑上思考,我发现通过提供卡数据(即卡号、有效日期、CVV 代码、持卡人姓名)进行支付的做法从安全角度来看本质上是被破坏的。我想了解我的推理是否正确,如果正确,为什么系统会这样设计。或者,如果我错了,我的推理有什么问题。
背景
在一些在线服务/离线业务中,可以通过直接向供应商提供借记(信用卡)卡数据(卡号、有效日期、CVV 代码、持卡人姓名)进行支付。(我认为也是离线的,通过写在纸上,或通过电话口述。)然后,供应商将使用这些数据向帐户收费。(我想,基本上,他将这些数据连同要收取的金额一起传递给信用卡公司,例如 Visa 或 Master,它们会检查它们是否有效,然后指示银行收取的金额。)
我看到(至少)这个过程有两个问题:
- 没有什么能保证我,供应商将真正收取商定的金额,而不是更多。
- 没有什么可以保证供应商(现在知道必要的数据)不会再次向我的卡收费。
- (让我们暂时忘记卡数据泄露等问题。)
如果我想将其与现金支付进行比较,在我看来流程是这样的:
我把我的整个钱包都给了供应商。
我走出房间。
小贩从我的钱包里拿出他认为正确的东西。
我回去,拿回我的钱包,只在我在家时才数剩余的钱,而不是在小贩面前。(如果有问题,我可以稍后再回去投诉,但与此同时,供应商已经有我的钱了。)
从现在开始,供应商可以无限制地访问我的钱包,他可以随时取款。
可能的解决方案
我认为这是一个足够安全的解决方案:每当有人试图向我的卡收费时,我都会收到一个一次性令牌发送给我(例如通过 SMS)。为了使交易成功,我也必须提供这个令牌。这个解决方案看起来很简单,但它可以防止(或至少使更难)大多数信用卡欺诈。该过程如下所示:我收到一条带有令牌的短信。我是否为短信中写的服务付费?是的 --> 我将代币交给我的银行,以确认交易。否 --> 我向银行报告了欺诈企图。
评论
- 我知道如果取款是欺诈性的,就有可能发生拒付。但是,为什么不完全防止上述欺诈的可能性呢?
- 另外,我知道您可以为交易设置限制,但它仍然不能消除至少损失一些钱的风险。
- 我也知道,您可以拥有例如用于在网络上支付的虚拟卡。您可以将相应的帐户始终保持为空,并且仅在您想用该卡购买东西时才将钱存入其中。但是,在您已将钱存入卡但尚未花掉的小时间窗口内,有人会窃取您的钱的可能性仍然很小。(在所有情况下,这都是一种解决方法,而不是解决根本问题。)
- 在卡上添加额外的安全代码(例如 CVV)在这方面没有多大帮助(供应商会得到它,如果他愿意,可以重复使用它)。
- 这个问题虽然相关,但在我看来并不是重复的。原因是,该问题提出了另一种解决方案(中间人),据我所知,它归结为规定供应商不应存储信用卡数据的规则/法律。(但我的问题是:为什么供应商必须接收他愿意随时重复使用的数据?)
- 同样从上述问答中,我了解到有法律禁止供应商存储(和重复使用)卡数据。但这似乎很弱。这就像说有法律禁止供应商从我的钱包里拿走比他应得的更多的钱,而我没有看……
- 一些酒店/汽车租赁等有一些(在我看来非常可疑/不道德)的做法,即预先授权商定的价格,然后最终再次收取价格。(预授权交易最终会被清除,但与此同时,卡的用户可能数周都无法使用他的钱。)通过我的一次性令牌建议,这也可以很容易地阻止(我会简单地拒绝第二笔交易)。
问题
(您可以在答案中明确解决的这些问题越多越好。)
我的理解是否正确,这种支付方式的安全性被破坏了?它是否像我认为的那样被破坏了?
如果是,那么以这种方式设计卡片的原因是什么?
如果不是,那我的推理哪里错了?(特别是,用我的卡支付所有数据(持卡人姓名,卡号,有效日期,CVV)与将我的钱包交给某人,以便他自己取出钱,这有什么区别,而我没看?我能想到的唯一区别是,与卡的交易至少记录在某个地方。)
我要问的问题有一个众所周知的名字吗?(当然,在来之前我尝试过用谷歌搜索信用卡安全,但我只得到了非常特殊的结果,比如芯片的安全问题,并且没有一个在模型中解决这个问题。)
为什么银行不使用我上面建议的为银行生成一次性令牌的(看似微不足道的)方法?这对于汇款非常有效(至少在我的银行中,我总是通过短信获得一个唯一的号码,我必须用它来确认转账)。那么为什么这个问题的答案也不适用于汇款呢?(换句话说,为什么银行使用一次性代币进行转账?为什么他们不让任何转账交易默认成功,如果交易被证明是欺诈性的,有可能要求退款? )