PCI-DSS 声明“与数据加密密钥分开存储”是什么意思?

信息安全 pci-dss
2021-08-26 02:21:53

根据 PCI-DSS 3.5.2 要求

使用至少与数据加密密钥一样强的密钥加密密钥进行加密,并且与数据加密密钥分开存储

这是否意味着:

  1. 将密钥(DEK 和 KEK)存储在不同的服务器(服务器 1 和服务器 2)或
  2. 将密钥(DEK 和 KEK)存储在同一台机器上的不同位置路径中。

路径 1(DEK):c:\user\chandru\Document\DEK\DEK.txt

路径 2(KEK):c:\user\chandru\Document\KEK\KEK.txt

或 3. 将密钥(DEK 和 KEK)存储在同一台机器上的不同用户位置。

path1(DEK):c:\user\chandru\Document\DEK\DEK.txt path2(KEK):c:\user\somenewuser\Document\KEK\KEK.txt

根据 PCI-DSS 标准,除了 HSM 之外,还有其他方法可以存储密钥吗?

带 HSM 的专用服务器:

在此处输入图像描述

两个不带 HSM 的专用服务器:

在此处输入图像描述

2个回答

有两种方法可以做到这一点:

简单的仅存储方法

第一种方法是使用一个设备来加密数据,并使用另一个设备来存储它。因此,数据在某些应用程序服务器上被加密,但被存储在数据库服务器上。存储数据的地方没有任何密钥,它只是存储。

更复杂但更安全的方法

第二种方法是使用公钥/私钥对。为您要加密的每个部分生成一个唯一的随机会话密钥。您使用会话密钥加密敏感数据,并使用您的公钥加密会话密钥,然后丢弃您的会话密钥。

然后,您可以将加密的块与用于加密它的公钥存储在同一台服务器上,因为公钥对于解密是无用的。

要解密您的数据,您可以使用私钥来解密会话密钥,并使用会话密钥来解密敏感数据。

这就是 PGP/GPG 之类的工具的工作方式,因此您不需要(也不应该)自己实现它,您只需使用其中一个库存实用程序即可。

所以你有2个问题

3.5.2 要求中单独存储是什么意思?

“分开”的意思是分开,就特定要求而言,您的第 1、第 2、第 3 方法都可以。但是在其他要求中(例如阅读所有要求 3.5 和 3.6)PCI-DSS 希望您确保您的密钥存储是安全的,因此您不仅需要将 KEK 与 DEK 分开,还必须安全地存储 KEK(例如在 HSM 或基于软件的密钥库中)

根据 PCI-DSS 标准,除了 HSM 之外,还有其他方法可以存储密钥吗?

当然可以,PCI-DSS 标准不要求您使用 HSM 进行密钥存储。只要您的密钥(KEK)存储是安全的,就可以了。在我们的项目中,我们完全使用您的“没有 HSM 的两台专用服务器”方法。请注意,您的“密钥服务器”实际上应该提供密钥存储功能和加密/解密功能(因此应该称为其他东西)。这样,您的 KEK(您最“珍贵”的密钥)就不会暴露给客户端代码(在我们的图表中运行在 Application Server 上的应用程序)。