加密数据库字段的好方法?

Rad*_*Hex 15 python sql sql-server encryption django

我被要求加密数据库中的各种数据库字段.

问题是这些字段在读取后需要解密.


我正在使用DjangoSQL Server 2005.

有什么好主意吗?

nco*_*lan 6

我遇到了同样的问题,并创建了以下解决方案:http://djangosnippets.org/snippets/2489/

我碰巧使用M2Crypto作为密码引擎,但如果需要,可以将其换出.

正如TomTom所说,这样做只会提高攻击者的门槛,而不是无法进行恶意解密 - 除了访问数据库之外,他们现在还需要访问存储密钥派生函数的密码的任何地方.但是,通过以这种方式保护其正在保护的数据的密钥,您至少现在可以选择进一步保护该密钥(例如,使用密钥管理服务器)以提高标准.深度防御是一个很好的策略,但你还需要确定给定应用程序的构成过度杀伤力.

加密任何可能对搜索或排序有用的字段也是一个可怕的想法(我只使用此技巧来存储不支持正确的标记化OAuth连接的Web服务的OAuth凭据).


小智 5

是啊.告诉谁告诉你要变得真实.没有/没什么意义.如果是关于存储的值 - 企业版2008可以存储加密的DB文件.

否则,如果你真的需要(有所有缺点)只需加密它们并将它们存储为字节字段.

  • 不,通常它是零意义的 - 除非您编写类似 LastPass 的程序。如果密钥在服务器(Web 服务器)上的某个地方可用,则它特别是零意义。这是一个完全的 nieche 问题,具有负面影响(搜索超出窗口)。 (2认同)
  • SQL注入呢?字段加密至少可以保护一些敏感信息。 (2认同)
  • 加密字段确实有意义!它避免了SQL转储或备份文件中的数据泄漏.只是不要单独依赖这一点,确保其他安全威胁也得到缓解.请参阅https://security.stackexchange.com/questions/16939/is-it-generally-a-bad-idea-to-encrypt-database-fields (2认同)