Security 如何为守护进程或服务提供加密密钥?
我正试图找出一个解决“鸡和蛋”问题的方法,我在一个新的项目中遇到了这个问题,我正在为一个新的企业工作 有问题的系统正在处理信用卡数据,因此卡号等需要加密存储在数据库中。为了符合PCI要求,我们为每个“商户”使用唯一的密钥对加密数字,因此,如果一个商户受到威胁,则不可能访问另一个商户的持卡人数据 当涉及到人与系统的交互时,这是很好的,因为人可以输入密码短语来解锁私钥,然后解密数据,但是当涉及到需要访问数据的自动化服务时(即在以后处理事务)如何最好地向服务/守护进程提供凭据存在一个问题 系统的一些背景知识:Security 如何为守护进程或服务提供加密密钥?,security,cryptography,daemon,pci-dss,pci-compliance,Security,Cryptography,Daemon,Pci Dss,Pci Compliance,我正试图找出一个解决“鸡和蛋”问题的方法,我在一个新的项目中遇到了这个问题,我正在为一个新的企业工作 有问题的系统正在处理信用卡数据,因此卡号等需要加密存储在数据库中。为了符合PCI要求,我们为每个“商户”使用唯一的密钥对加密数字,因此,如果一个商户受到威胁,则不可能访问另一个商户的持卡人数据 当涉及到人与系统的交互时,这是很好的,因为人可以输入密码短语来解锁私钥,然后解密数据,但是当涉及到需要访问数据的自动化服务时(即在以后处理事务)如何最好地向服务/守护进程提供凭据存在一个问题 系统的一些背
- 卡号是用非对称密钥对加密的
- 私钥受密码短语保护
- 然后使用“主”密钥对该密码短语进行加密
- 解锁主私钥的密码短语随后被授予权限的操作员知道(实际上,他们使用自己的密钥对加密了密钥副本,而他们只知道密码短语)
- 守护进程将作为自己的用户和组在linux系统上运行
- 设置密码短语文件,其工作原理与
- 将文件存储在守护程序用户的主目录中
- 将文件的权限设置为0600
- 设置文件完整性监视系统(如Tripwire),以通知安全组(或类似组织)对文件或权限的任何更改
- 禁用守护程序用户的登录,因为它仅用于进程
那么,我是不是走错了路,还是有其他关于如何处理的建议?不确定这会有多大帮助,因为你的目标是遵守PCI-DSS,你需要说服的人是你的QSA 大多数QSA公司乐于以咨询的身份工作,并帮助您找到合适的解决方案,而不是单纯以评估的身份工作,因此尽早让他们参与进来,并与他们合作,以获得他们乐于签署为合规的解决方案 也许值得让他们记录为什么它是足够的,这样如果你在将来改变QSA,你可以与你一起推理,以防主题再次出现
基于上述解决方案,他们可能会提到的一件事是用于密钥管理的拆分知识。听上去,单个管理员拥有访问密钥所需的所有知识,而PCI(3.6.6)要求对手动明文密钥管理过程进行拆分知识和双重控制。我们与QSA讨论了这一点(这可能是自审计以来关系中最有价值的部分)他建议我们使用一个运营商帐户(只有用户知道密码)来解锁服务帐户的详细信息。这有点像一个嵌套的俄罗斯玩偶设置,但它似乎可以工作,这意味着我们可以根据需要轻松地旋转关键点。