8

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

现在,这些数据是高度机密的,我需要将其以加密形式存储在数据库中。

所以,我想知道这方面的最佳实践是什么。我知道 SQL Server 内置了一些加密功能。是否有“傻瓜”类型的资源,以便我可以快速开始。

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

4

4 回答 4

3

查看此链接以获取有关示例的良好介绍。

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

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

于 2008-10-16T09:57:34.297 回答
1

您是否考虑过在文件系统级别加密数据?

它仅适用于 Windows 2008/Vista,但它应该能够满足您的需求,这正是它的设计目的。

于 2008-10-16T11:22:00.007 回答
0

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

于 2008-11-05T18:20:55.693 回答
0

根据应用程序的不同,加密需要在几个不同的地方进行。例如,使用信用卡信息的消费者网站需要对网络连接进行加密,以防止中间人攻击或窥探。当数据存储在数据库中时,您需要对数据进行加密,以便低级别的销售代表无法读取和访问客户的信用卡信息,如果您在此之外,您可能还需要执行列级加密作为适当的权限。担心有一天您的数据中心的管理员可能会窃取您的一份备份,然后您需要实施 TDE 来在磁盘级别加密数据。

加密有性能开销,尤其是 CPU 使用率,更重要的是开销取决于用于加密的算法。

于 2014-02-07T15:01:01.733 回答