1

我试图找出一个解决方案来解决我在一个新项目中遇到的“鸡和蛋”问题。

有问题的系统正在处理信用卡数据,因此卡号等需要加密存储在数据库中。为了符合 PCI 要求,我们为每个“商户”使用唯一的密钥对加密了数字,因此如果一个商户受到威胁,则应该无法访问另一个商户的持卡人数据。

当涉及到人类与系统的交互时,这很好,因为人类可以输入密码来解锁私钥,然后解密数据,但是当涉及需要访问数据的自动化服务时(即处理交易在以后的日期)如何最好地向服务/守护进程提供凭据存在问题。

系统的一些背景知识:

  • 卡号使用非对称密钥对加密
  • 私钥受密码保护
  • 然后使用“主”密钥对加密此密码
  • 然后,获得许可的操作员知道解锁主私钥的密码(实际上,他们使用自己的密钥对加密了它的副本,他们只知道密码)。
  • 守护进程将作为自己的用户和组在 linux 系统上运行。

为了使守护程序能够解密数据,我正在考虑以下内容:

  • 设置一个类似于.pgpass工作方式的密码短语文件
  • 将文件存储在守护程序用户的主目录中
  • 将文件的权限设置为 0600
  • 设置文件完整性监控系统,例如 Tripwire,以通知安全组(或类似的)文件或权限的任何更改。
  • 禁用守护程序用户的登录,因为它仅用于进程。

鉴于上述情况,我想知道这是否足够。显然,弱点在于系统管理员 - 在安全系统上受信任的这些(即 2 个)很少 - 因为他们可以提升他们的权限(即 root),然后更改文件的所有权或能够读取的权限密码 - 然而,这很可能再次通过监视文件的校验和更改、FIM 校验和等来缓解。

那么我是以错误的方式解决这个问题,还是有其他关于如何处理这个问题的建议?

4

1 回答 1

2

不确定这将有多大帮助,因为您的目标是遵守 PCI-DSS,您需要说服的人就是您的 QSA。

大多数 QSA 公司都乐于以咨询的身份工作并帮助您找到合适的解决方案,而不是纯粹以评估的身份工作,因此请尽早让他们参与并与他们合作以获得他们乐于签署合规的解决方案。

可能值得让他们记录为什么它就足够了,这样如果您将来更改 QSA,您可以随身携带推理,以防主题再次出现。

基于上述解决方案,他们可能会提到的一件事是密钥管理的拆分知识。听起来单个管理员拥有访问密钥所需的所有知识,而 PCI (3.6.6) 需要拆分知识和双重控制来手动明文密钥管理程序。

于 2012-02-20T21:52:09.010 回答