【问题标题】:What to do with Key and Salt when encrypting on the client?在客户端加密时如何处理 Key 和 Salt?
【发布时间】:2012-11-29 07:59:10
【问题描述】:

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

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

【问题讨论】:

  • 这描述了密钥如何通过 http 工作。我的情况不同。我有一个客户端,根本没有服务器。我需要在客户端加密一些东西。我不知道应该将 Key、IV 和 Salt 存放在哪里。
  • @Kelly:如果您将密钥与数据存储在同一设备上,则不会增加任何安全性。

标签: encryption


【解决方案1】:

如果知道 IV 和盐,则不会有额外的安全风险。 IV's 可以安全存放在透明的地方,盐可以帮助prevent precomputation and rainbow tables

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

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

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

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

  • 使用专用硬件,例如 hardware security module 或智能卡。这是最昂贵的途径,但取决于您的威胁模型可能是可行的。

【讨论】:

  • 我确实需要在客户端解密,但我相信你的答案有我需要的。谢谢。
猜你喜欢
  • 2023-03-15
  • 2018-06-05
  • 1970-01-01
  • 2016-05-29
  • 2014-12-03
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
相关资源
最近更新 更多