0

我正在加密一些需要保留在客户端上的数据,Salt、Key 和 IV 也是如此。是否有在客户端处理这些数据的标准方法,以防止人们发现它并加密您的数据?

我可以想出很多东西来掩盖它们,但必须有一种行业标准的方法来处理这个问题。

4

1 回答 1

1

如果 IV 和盐是已知的,则没有额外的安全风险。IV可以安全地储存在透明的环境中,盐有助于防止预计算和彩虹表

所以你真的只是在谈论钥匙。有几个解决方案,每个都有自己的权衡。在您的问题中,您只提到您需要加密客户端上的数据。客户端不需要解密吗?

  • 如果这是 Windows 客户端,您可以使用数据保护 API来保护用户凭据下的密钥。

  • 使用密码保护密钥。如果您不介意每次客户端需要密钥时输入密码,这可以提供合理的保护,并且在大多数密码系统(如 OpenPGP)中都支持。

  • 如果客户端只需要加密,您可以使用带有公钥的混合方法(如 OpenPGP)。在这种情况下,您只需将公钥存储在客户端上,而将私钥存储在安全的地方。加密数据时,您将生成一个随机对称密钥,并在客户端的公钥下对其进行加密。现在,如果有人破坏了机器,他们将无法解密任何会话密钥。

  • 使用专用硬件,如硬件安全模块或智能卡。这是最昂贵的路线,但取决于您的威胁模型可能是可行的。

于 2012-11-28T23:46:34.583 回答