如何存储加密的设置?

时间:2011-03-02 16:25:57

标签: security encryption passwords cryptography

我们已在某些应用程序中对设置实施加密。

当我们忘记这些设置的内容时,将会到来。存储它们的好方法是什么?他们需要我们团队的某些成员访问。

有一种我不喜欢的方式:我们的管理员使用维基。这个wiki是否可访问。没有简单的方法可以查看团队成员有哪些登录信息。

我可以想到两种可能性:

  1. 加密它们并将它们保存在Subversion中。只有在项目上工作的团队成员才有密钥来解密它们。

  2. 使用专为解决此问题而定制的应用程序

  3. 什么是保存秘密并让某些成员可以访问的好方法?

    编辑1

    以下是我们可能遇到的问题的示例:

    我们有一个在网络服务器上运行的Web应用程序。配置有一些安全关键设置,如支付提供商。如果系统崩溃,我们必须将应用程序移动到新服务器,我们无法使用加密配置。我们必须有一个明文并在新服务器上加密它。

    重新创建配置是不可行的。我们真的必须将它的一部分以明文形式存储在保存位置。

3 个答案:

答案 0 :(得分:2)

你可以做到这一点的一种方法是用密钥对它进行加密,然后在usb驱动器或其他类似的驱动器上为每个用户提供1/2的密钥。这样他们就不能滥用它并直接窃取信息,但需要与拥有密钥其他部分的其他人合作。如果USB驱动器/文件被盗,整个帐户不会受到损害。此外还有冗余,这样如果丢失或被盗,您仍然可以获得访问权并重新加密数据。

答案 1 :(得分:1)

您可以编写一个程序来保存授权用户列表,并且只允许他们通过程序查看某些加密文件。授权用户可以通过公钥数字签名与程序进行通信 - 这样管理员就可以知道哪些用户仍然被授权,但他们仍然需要对自己进行身份验证才能访问安全数据。

但是你在编辑中提供的例子,我有点困惑。这听起来像是一个略有不同的情况。但是,您永远不应该存储未加密的安全数据 - 通过默默无闻来破坏目的和安全性是不可接受的解决方案!为什么不直接存储密钥来解密设置文件,这样如果需要移动到其他服务器,你可以解密它并(如果需要)用新密钥加密它?

答案 2 :(得分:0)

首先,密码绝不能加密,因为这是CWE-257标识的漏洞。在你不得不最终解雇某人之后,不要忘记“内幕威胁”。然后用户也经常重复使用密码。在这种情况下,我将实现一个sudo类似的功能,您可以在其中控制帐户。或者大多数应用程序都有一个简单的“忘记密码”。

如果这些是相互秘密的话。例如,需要共享的随机生成的根密码,然后加密是良好的解决方案。请记住,如果你解雇某人,那么这个秘密就会受到损害,你将不得不重新发明这些秘密。