6 mysql database encryption credit-card
我已经阅读了在MySQL数据库中保存信用卡信息?并存储信用卡信息.
我知道存储信用卡信息需要PCI合规,这不是一件容易的事.
这不是这个问题的意思.我的问题如下:
什么是加密用户信用卡的安全方式?想到的最简单和最简单的方法是使用私钥并使用它加密CC.这似乎不太安全,因为密钥必须存储在服务器上,如果攻击者可以获取我的数据库,他们也可能获得密钥.
我希望能够做的是使用该用户密码加密每个CC作为加密过程的一部分.如果有人获得数据库,他们无法解密任何东西,因为密码存储为盐渍哈希.这对于交易购买非常有用 - 用户点击"购买",输入密码作为确认,我解密他们的CC并收取费用.它们的密码仅在请求期间在内存中,并且永远不会写入磁盘.
不幸的是,这对我正在尝试构建的东西不起作用 - 这项服务收取经常性费用(例如,每月一次),无论用户是否在我需要收费时登录.
鉴于这种情况,是否有一种存储用户CC的安全方式?
由于您需要能够解密,因此总有加密密钥泄漏的可能性,并且您将丢失所有内容。因此,您将永远无法获得绝对的安全性,但可以使攻击者更难获取数据。
除了您之外,没有人可以真正判断您应该拥有的安全级别(或含糊不清)。这很可能是数据库大小,可见性等的函数。
对于泄漏,不幸的是,您必须假设所有内容都会泄漏,迟早(例如,对弱密码的暴力攻击)您在泄漏时并不会获得太多收益。
鉴于最近发生的信用卡泄漏丑闻-最糟糕的丑闻有3位数(CVV)号码与常规信用卡号一起保存,信用卡公司明确禁止这样做(这就是为什么即使有人遇到了这种情况,您也必须再次给它的原因您存档的信用卡信息)
如果您不想承担保存和处理此类数据的责任,那么使用外部支付服务是个不错的选择-让他们进行处理,并向您断言已处理了付款。您必须为他们的服务付费,但也需要为实施自己的解决方案和承担风险付费。
您需要对卡信息进行可逆加密。解密信息必须来自某个地方。您说过数据不能来自用户,并且您不希望将其存储在服务器上,因此它必须位于可能更安全的单独设备上。如果您有能力回忆起这些信息,那么破坏您系统的攻击者也有能力回忆起这些信息。因此,推测在解密过程中,易受攻击的主机不会检索到解密信息。
也许可以考虑一种可以加密并向其发送信息的第三方服务,也许是专门从事 PCI 合规性的服务。当您第二次发送信用卡信息并收取费用时,它可能能够解密信用卡信息,或者它可能实际上存储卡信息以供以后使用。它甚至可能为您执行重复交易。
http://www.authorize.net/solutions/merchantsolutions/merchantservices/automatedrecurringbilling/
我只是谷歌搜索了一下,我不推荐他们。但这只是一个例子。