SQL Server 2005中数据库加密的最佳实践

时间:2008-10-16 08:49:26

标签: sql-server-2005 encryption

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

现在,这些数据非常机密,我需要将其以加密形式存储在数据库中。

所以,我想知道最好的做法是什么。我知道SQL Server内置了一些加密功能。是否存在'for dummies'类型的资源,以便我可以快速开始。

或者我认为我可以在我的C#代码中而不是在数据库中加密/解密 - 也许有一个层在数据访问层之上处理它(这是一个好主意)?

4 个答案:

答案 0 :(得分:3)

请查看this link以获取样本的详细介绍。

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

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

答案 1 :(得分:1)

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

它只是Windows 2008 / Vista,但它应该为您提供所需的功能,而且它是专为您设计的。

答案 2 :(得分:0)

在决定使用加密方法之前,您需要访问系统的哪些部分容易受到攻击。如果存在未经授权访问数据库的可能性,您的应用程序是否存在相同的威胁?有人可以通过Reflector运行您的代码,并确定用于加密和解密的方法。您可以使用代码阻塞器在某种程度上减轻这种暴露。如果这种担忧不存在风险,那么您可能会发现在应用程序级别加密数据更容易。

答案 3 :(得分:0)

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

加密在CPU使用方面具有性能开销esp,更重要的是开销取决于用于加密的alogrithim。