保存解密密钥以解密加密数据库的最佳方法是什么?

时间:2009-06-09 11:40:52

标签: database security encryption

我有一个加密的数据库和解密密钥。如何使解密密钥远离黑客攻击(数据库黑客攻击和未授权访问PC。)?

  1. 装配中的硬编码。
  2. 保持注册。
  3. 保留在RAM中。
  4. 而且,我需要加密数据的算法。在每个解密时间段的安全性中执行此操作的最佳算法是什么?

    1. RSA
    2. AES
    3. Twofish的
    4. RSA vs AES

      谢谢,

4 个答案:

答案 0 :(得分:4)

你提出错误的问题:首先你需要决定你需要多大的安全感。然后你需要决定你是想要对称(思考DES,共享密钥))还是非对称(想想RSA,公钥和私钥),还要考虑密钥管理,因为这往往是弱点。

非对称算法比对称算法慢几个数量级;它们通常用于保护对称密钥,而不是整个数据。

答案 1 :(得分:4)

如果您使用加密数据存储解密密钥,则无法“保持解密密钥远离黑客攻击”。期。密钥管理通常是任何安全策略中最难的部分。

对于加密算法,RSA是一种与AES和twofish非常不同的算法(参见http://en.wikipedia.org/wiki/Symmetric-key_algorithm#Symmetric_vs._asymmetric_algorithms)。

回答这两个问题需要更多信息。究竟为什么要尝试加密数据库?你试图管理什么威胁?

答案 2 :(得分:2)

它永远不会是完全安全的,特别是在物理访问机器的情况下,但是你可以使它变得困难。

使用3DES加密要保护的数据库字段。请注意,您不需要加密每个字段,也不应该。 (两者都是为了速度,因为如果你丢失钥匙,你至少会知道你需要做什么)

不要将密钥存储在数据库服务器上。如果必须,请将其存储在与数据库或Web应用程序不同的驱动器上。

在拇指驱动器或其他东西上备份密钥。不要跳过这一步。

将密钥文件拆分为几个不同的文件,分散在不同的文件夹和不同的驱动器上。不要使用指示文件用途的名称。将位置存储在注册表中。

使用代码读取注册表,获取密钥的各个部分,然后组装它们。自己编写此代码,不要使用表示程序用途的名称。

答案 3 :(得分:0)

我将您的描述解释为必须在数据库计算机上保存解密密钥才能执行您的工作。

如果有足够的专业知识和对硬件的访问权限,则无法保护您的数据库无法突破加密。

对于无法进行物理访问的所有其他情况,您应参考使用大多数平台特有的特定技术为所有主要数据库存在的加密准则。