可能的重复:
我需要在电子商务网站中存储信用卡号。我不打算存储整个信用卡号,因为这将是非常危险的。我想至少存储前五位数字,以便以后识别发卡的金融机构。理想情况下,我想尽可能多地存储信用号,以帮助将来进行交叉引用等。
我可以安全地存储多少位数字以及哪些特定数字?
例如,我想这不够安全:
5555 5555 555* 4444
因为你可以计算出丢失的数字。
同样,这将是安全的,但没有那么有用:
5555 5*** **** ****
是否有一种公认的模式来存储部分信用号码?
可能的重复:
我需要在电子商务网站中存储信用卡号。我不打算存储整个信用卡号,因为这将是非常危险的。我想至少存储前五位数字,以便以后识别发卡的金融机构。理想情况下,我想尽可能多地存储信用号,以帮助将来进行交叉引用等。
我可以安全地存储多少位数字以及哪些特定数字?
例如,我想这不够安全:
5555 5555 555* 4444
因为你可以计算出丢失的数字。
同样,这将是安全的,但没有那么有用:
5555 5*** **** ****
是否有一种公认的模式来存储部分信用号码?
支付卡数据安全标准规定,如果您正在处理持卡人数据,那么您将受到 PCI DSS 的约束(这是非常全面的,并且需要遵守)。如果您想存储卡号的一部分,并且不想处理标准,那么您需要确保 a) 您存储的数字不超过前 6 位和后 4 位;b) 您永远不会存储、处理或传输更多信息。这意味着必须在数据进入您的控件之前执行截断。
鉴于您正在谈论电子商务网站,我认为您迟早必须处理 PCI DSS(因为如果您没有使用完整的 PAN,则无法处理交易)。实际上,您应该避免存储超过 PAN 的前 6 位和后 4 位;然后,标准不会“关心”这些数据,您可以将其存储为您认为合适的任何形式。例如,如果您存储前 7 位数字,那么标准的要求 3 就会启动(并且您开始必须真正了解加密中的密钥管理)。
我希望这是有用的。
2013 年 3 月编辑:
一个非常相关的资源是PCI 安全标准委员会,该组织于 2006 年由五个全球最大的信用卡品牌(AmEx、Visa、MasterCard、JCB International 和 Discovery)成立,是事实上的安全权威支付卡行业 (PCI) 的事宜。
该组织特别发布了PCI 数据安全标准,目前是 2.0 版,涵盖诸如管理完整或部分信用卡号等问题。该文档如果免费提供,但需要简单的注册和许可条款的确认。
以下为原文,c.2009 年的回答,大部分是正确的,但都是杜撰的。
一种常见的做法(是否合法,我不知道)是存储最后 4 位数字,因为这可用于帮助客户确认他/她的哪些信用卡用于特定交易。
在不显着提高恶意人员猜测完整号码的几率的情况下,可以存储前 4 位数字s,它们代表发行卡的金融机构,如问题中所述。
不要,保存比这 8 个数字更多的数字,因为否则,鉴于LUHN-10 校验和,您可能会提供足够的信息来使猜测完整数字更加合理(如果仍然相对困难,即使从给定的系列使用的洞察力发行人,在给定的时间段内,但应该小心......)
为了使整个事情在技术上和法律上更安全,您可以考虑仅在客户明确允许的情况下存储此类信息。您还应该考虑用一个简单的散列来屏蔽这些信息,以便存储在数据库中。
此外,在特定交易之后,您可以/应该存储的是信用卡处理器在提交交易时提供的交易 ID 。此 ID 是允许定位您甚至需要的大部分(全部?)信息的关键,特定交易是否存在任何问题。这种类型的信息通常可以从处理公司维护的安全网站查询,以及一些汇总报告,其中可能包括按卡类型(美国运通、维萨...)分组,如果这就是您考虑存储的原因前四个。
如果您不需要存储整个信用卡号,为什么还需要存储呢?如果要保存发卡的金融机构,为什么不保存发卡的金融机构呢?
PCI/DSS 文档的第 3.3 节回答了您的具体问题。前六个和后四个是最大的显示。客户(纸质?)收据更具限制性。那些有合法需要知道的人可以看到完整的卡片数据。
我的建议是联系您的商家提供商,看看您可以使用哪些选项。许多现代交易网关具有“保险库”功能,其中敏感信息存储在提供商处,当您想要向客户收费或查看帐户信息时,您只需通过令牌编号引用客户。
同样,交易特定令牌的使用可用于引用存储在提供程序系统上的所需数据。
但是,我不能过分强调阅读和理解 PCI DSS 的重要性。简单地使用安全存储并不会神奇地使您不受 PCI 合规性要求的约束!!这只有在您的系统从不接触完整卡数据时才有可能。
接受的模式是根本不存储它们。
在某些司法管辖区,您存储它们或它们的任何部分可能会触犯法律。
相反,您可以存储信用卡号的单向(因此不可恢复)哈希。
信用卡公司对此有一个标准。您可能会发现它隐藏在您的支付处理器的服务条款中的某个地方,您将遵守此标准。它回答你的问题。你可以在这里找到标准
在加拿大,通常的方法是存储前 4 位数字(用于标识金融机构)和最后 4 位数字以标识信用卡。
但请确保您没有违反任何法律。