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