2008-10-16 90 views
8

我需要开发一个将数据存储在SQL Server 2005数据库中的应用程序(应用程序本身将是WCF服务或Asp.Net Web服务)。SQL Server 2005中数据库加密的最佳实践

现在,这些数据是绝对保密的,我需要将它以加密的形式存储在数据库中。

所以,我想知道最佳做法是围绕这一点。我知道有一些SQL Server内置的加密功能。是否有一个'傻瓜'类型的资源,以便我可以快速前进。

或者我想我可以在我的C#代码中进行加密/解密,而不是在数据库中 - 可能有一个处理数据访问层上方的层(这是个好主意)?

回答

3

请参阅this link以获得有关样品的良好介绍。

我认为在应用程序中进行数据加密更好,因为在这种情况下传输的数据已经被加密。否则,您必须在应用程序和数据库服务器之间使用安全通道。

这取决于您的需求,我会说。

1

您是否考虑过在file-system级别对数据进行加密?

它只是Windows 2008/Vista,但它应该给你你需要的东西,它就是它的设计目的。

+0

永远不要使用位寄存器,如果你甚至读过你发布的维基百科文章,你应该知道这一点。 – 2008-12-18 14:57:10

0

在决定加密方法之前,您需要访问系统的哪些部分易受攻击。如果存在未授权访问数据库的可能性,您的应用程序是否存在相同的威胁?有人可以通过Reflector运行你的代码,并确定用于加密和解密的方法。你可以在一定程度上用代码晦涩难耐来缓解这种风险。如果这种担忧不是风险,那么您可能会发现在应用程序级别对数据进行加密更容易。

0

加密需要发生在几个不同的地方,这取决于应用程序。例如,使用信用卡信息的消费者网站需要通过网络对连接进行加密,以防止中间人攻击或窥探。当数据存储在数据库中时,您需要对数据进行加密,以便低级销售代表无需阅读并访问客户的信用卡信息,除此之外,您可能希望实施列级别加密作为适当的权限,如果您的担心有一天数据中心的看门人可能会窃取你的备份中的一个,那么你需要使用TDE工具来加密磁盘级别的数据。

加密的性能开销尤其与CPU使用有关,更重要的是开销取决于用于解密的alogrithim。