我以前从来没有处理过PCI合规性问题。我一直在看他们的文件,上面说我需要保护信用卡号码,有效期和持卡人的名字。从来没有储存过安全代码。
在他们的文档中,只写着保护。这是说我需要加密数据库中的这3列吗?我以为只有数字才是需要加密的数据。不管怎样,我都没意见。
如果我需要加密所有三列,我是共享一个证书并拥有3个对称密钥,还是只需要每个证书中的1个,并在所有3列上使用该对称密钥?我问这个问题的原因是在关于加密列的BoL文档中,密钥是根据它们要加密的列来命名的。
谢谢你的帮助!
发布于 2010-02-10 22:22:43
如果你存储PAN (卡号),那么它绝对必须加密。
如果你存储了持卡人姓名、到期日、发行号(它们可以链接到PAN),那么它们应该被加密,但(我的理解)并不是绝对必要的。PCI-DSS仅规定至少PAN必须被加密。
CV2/AVS/CSC代码不能在授权后存储,理想情况下你需要证明它根本没有存储(例如-在执行授权时只保存在内存中)
关于证书/密钥-您可以只使用一个密钥来加密所有与卡相关的数据。最佳实践是不要将密钥用于多个目的,因此,如果您有其他(与卡无关的)数据被加密,则使用单独的密钥。
最困难的部分是你没有真正详细提到的部分--那就是密钥管理。为了满足PCI要求,密钥必须存储在数据库的单独物理盒中,并且您需要能够至少每年更改一次密钥。SQL2008通过Extensible Key Management (EKM)支持这一点
所有这些要点都最好与独立的QSA (合格安全评估员)讨论,您在某些时候需要他参与进来,以满足PCI合规性。您的QSA将能够指导您解决此类问题,最终他/她建议您遵循他/她的建议以满足合规性要求。
值得一提的是,大多数人很快就意识到PCI合规的负担有多大,并希望通过使用第三方支付网关将负担降至最低。大多数支付网关将允许您执行授权/结算,并将卡详细信息存储在其(已符合PCI标准的)服务器上。然后,如果您需要对该卡执行进一步的收费/退款,则只需存储引用这些付款详细信息的TokenId。
祝你好运!
发布于 2010-02-10 04:07:07
来自规范:https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml
要求3:保护存储的持卡人数据
加密、截断、掩码和散列等保护方法是持卡人数据保护的关键组件。如果入侵者绕过其他网络安全控制,在没有适当密钥的情况下获得对加密数据的访问权限,则该人将无法读取和使用这些数据。应将保护存储数据的其他有效方法视为潜在的风险缓解机会。例如,最小化风险的方法包括除非绝对必要,否则不存储持卡人数据,如果不需要满PAN,则截短持卡人数据,以及不在未加密的电子邮件中发送PAN。
我认为这强烈地表明你应该
除非你必须对部分进行加密,否则不进行存储如果必须,请存储一部分if you
https://stackoverflow.com/questions/2211685
复制相似问题