所以我想修改一个PHP / MySQL应用程序,以便安全地存储信用卡,而不是信用卡和银行账户信息。PCI DSS需要1024 RSA/DSA。少数用户将获得私钥,以便解密每月提交给支付处理器的帐户信息批处理文件。我不清楚是否有可能有一个系统,可以让用户谁已经登录与正常的8位数字密码,以修改自己的帐户信息安全。这似乎是不可能的,加密应该是单向的(即每个用户->管理员;永远不允许用户解密自己的信息再次),帐户信息永远不会暴露回用户,即使通过SSL连接。或者,有没有一种正确而简单的方法可以做到这一点,而我不知道的是,它是符合PCI DSS的?
发布于 2009-11-19 21:29:23
PCI DSS不需要1024位RSA即可加密。旧版本的规范在名称上提到了AES和3DES,但我相信新版本只是指定了高度加密。大多数人都在使用AES 256。
使用非对称算法加密静态数据实际上并不起作用。对称算法的效果最好。这允许应用程序在需要时访问卡数据。这并不意味着您必须再次向用户显示数据,它只是意味着当您需要访问数据时,数据就在那里。如果您正在存储信用卡授权信息,则通常需要使用卡号进行结算。(这实际上取决于您的处理器所具有的特性。一些小企业级别的处理器为您存储卡,但这对于Paymentech和FDMS这样的大型处理器是不可行的。)
问题是你必须定期轮换你的加密密钥。这通常是把每个人都搞砸的原因。如果您使用自己的加密,则需要确保您可以指定n个密钥,只要存在使用这些密钥加密的数据,就可以访问这些密钥。在任何时间点,只应使用其中一个密钥进行加密。除非您对PCI方面的加密和密钥管理有深入的了解,否则您可能希望使用商业产品。是的,这些都是昂贵的,但您必须通过构建或购买决策过程来确定最佳路线。
Ingrian (现在的SafeNet)有一个不错的网络HSM产品。它将为您管理密钥并执行加密操作。也可以使用他们的DB级加密集成,这样您就不需要更改您的应用程序。(尽管在我看来,DB级加密的安全性令人怀疑。)
这是一个非常深刻的主题;我在PCI方面做了很多工作,建议您雇佣一些人来指导您正确地完成这项工作。你会在错误的开始和重做工作上花费大量的钱,所以尽早让审计人员参与进来,至少评估你需要的东西,并告诉你如何正确地实现安全性。
https://stackoverflow.com/questions/1763134
复制相似问题