5

我需要存储信用卡详细信息(不存储不是一种选择)。

使用 mcrypt 和 mcrypt_dev_random 生成 init_vector 需要不同的时间来加密/解密,但似乎是最“安全”的选项。mcrypt_dev_urandom 更快,但不适合长期存储 - 正如我所读到的。

将 GnuPG 视为一种可能的替代方案,如果可能的话,希望得到一些意见/建议。

4

3 回答 3

6

如果你真的想安全地存储信用卡信息,有一个标准:支付卡行业数据安全标准。而且它比使用一种特定的加密算法要复杂得多。它要求您将部分卡详细信息存储在两台物理上独立的机器上,等等。即使您严格遵守 PCI 标准,专家仍认为您仍然没有完全安全。任何低于此的内容都几乎不值得详细讨论,因为整体安全级别非常低,几乎没有什么区别。

于 2012-10-22T14:39:12.857 回答
4

请记住:密码学的第一条规则是“不要自己动手”。

MCRYPT_DEV_URANDOM 对于强大的加密来说已经足够了,但是“管理信用卡信息”比简单地“加密它们并让上帝自己整理”要复杂得多

“不存储不是一种选择”对我来说听起来好像你(或者更好的是,你上面的人)做错了。不应该对此进行研究,也不应该成为提出解决方案的人。不要成为秋天的家伙。

https://www.pcisecuritystandards.org/merchants/how_to_be_compliant.php

于 2012-10-22T14:55:10.097 回答
3

对您而言,最重要的问题是,您需要什么才能实现 PCI 合规性。不要产生一些自制加密。阅读它需要什么,最好将信用卡的东西委托给专门的支付处理器。

使用 mcrypt 和 mcrypt_dev_random 生成 init_vector 需要不同的时间来加密/解密,但似乎是最“安全”的选项。mcrypt_dev_urandom 更快,但不适合长期存储 - 正如我所读到的。

这说明了一些误解。一方面,静脉注射不需要保密。随机数的质量不太重要。

但即使对于密钥,/dev/urandom也足够好,只要它最初具有足够的熵。

于 2012-10-22T14:39:00.167 回答