0

基本上我正在一个处理信用卡的网站上工作。但是,当进行交易/收费时,我想将有关信用卡的信息存储在数据库中。

现在,我一直在考虑存储前 4 个和后 4 个数字以及到期日期。但我不会将它存储在计划文本中,我创建了自己的加密方法。

这足够安全吗?

4

2 回答 2

4

它足够安全吗?让我想想。嗯,我希望您考虑在过去几年中发生的大量数据泄露事件,这些数据泄露来自人们认为安全的网站。

像 Sony、NHS、EverNote、Yahoo、Ubisoft、Apple、Blizzard 甚至 NSA(你认为他们最擅长保护自己的信息)这样的网站。从这里

在此处输入图像描述

此外,您的本土加密不太可能经受住确定的攻击。

但真正的问题是:你为什么需要这些信息?该信息确实属于卡的所有者,并且任何存储它的网站都会降低该所有者的安全性。如果您需要知道他们使用了多少张不同的卡等信息,最好为客户使用不同的标识符并为卡号存储一个不可逆的哈希值。虽然哈希会在卡号的整个搜索空间中发生冲突,但在单个客户中发生冲突的可能性要小得多。

您可能还会发现,法律限制了您可以存储的内容,具体取决于您所在的司法管辖区。

于 2013-07-29T04:26:34.640 回答
0

从 PCI 合规性的角度来看,仅以纯文本形式存储前四个和后四个是可以的。PCI 实际上允许前六位数字(这称为 IIN 或颁发者标识符范围)和后四位数字(最后一位数字是校验和)的纯文本存储。

这些类似于打印收据的标准,允许打印前六位和后三位数字。

不过,您的问题确实敲响了警钟,这是可以理解的。如果您(或您的系统)可以访问完整的卡号,那么您就在 PCI-DSS 的范围内。监控和维护合规性可能既费时又费钱,尤其是在您的合规性必须由第三方 QSA(合格安全评估员)验证的情况下。

更好的方法是使用已经符合 PCI 的支付网关。他们将能够执行卡授权/结算并向您返回令牌 ID 和/或卡号的哈希值,这些卡号可以安全地存储在您的数据库中。

于 2013-07-29T09:35:43.190 回答