从c#应用程序加密

Bra*_*ndi 4 c# sql sql-server encryption public-key

情况:我需要在我的远程数据库和我的c#应用程序之间进行加密.我不知道我在做什么(之前从未做过任何加密),我在网上找到的所有东西都是针对asp.net并处理了web.config文件.

一些相关数据:我的连接字符串包含SQL Server身份验证的密码信息,有一个select和一个delete语句.这三件事需要加密.

我正在使用SQL Server 2008,Visual Studio 2008和C#.

我怀疑这是否相关,但这是在Windows服务中发生的.到目前为止,在winForms中运行的任何SQL相关都在我的服务中起作用,因此任何与winForms相关的帮助也是值得赞赏的.

我需要什么帮助:

  1. 任何不限于asp.net的加密参考都将非常感激.:)

  2. 我看到MSDN页面,它似乎是一个体面的起点,但我有点困惑.看起来这是2个应用程序相互发送文件的方式,而不是将加密的内容发送到SQL Server?使用这个,我不知道SQL Server如何知道如何解密它?

  3. 我是否可以在左侧视野中寻找System.Security.Cryptography?有没有办法在System.Data.SqlClient中指定加密,或者我不得不诉诸于在远程服务器上制作存储过程?

先感谢您!!!:)

摘要:

谢谢大家让我走上正确的道路,很难选择一个答案!:)

我已经得出结论,我需要使用SSL,虽然我对how-tos有很多疑惑,但我知道这需要一个证书,并且一旦证书设置完毕,客户端就可以通过询问来请求加密对于连接字符串中的"Encrypt = yes".幸运的是,我相信我已经有了一个我可以使用的.

还有一点需要注意 - TDE是关于加密数据的好消息,这些数据只是位于数据库中,而SSL则是用于传输加密数据的内容.

以下是我发现最有帮助的几个链接:

http://blogs.msdn.com/b/sql_protocols/archive/2005/10/04/476705.aspx

http://support.microsoft.com/default.aspx?scid=kb;en-us;316898

Dav*_*vid 5

对于应用程序和数据库之间的加密,最好的办法是在SQL Server级别使用SSL证书.这是一篇关于它的Microsoft知识库文章(适用于旧版本的SQL Server). http://support.microsoft.com/kb/316898 这可以防止嗅探器.

我们使用信用卡申请表进行了此操作,非常简单.

此Microsoft.com搜索将帮助您使用较新版本的SQL Server.

本文将帮助SQL Server 2008. http://msdn.microsoft.com/en-us/library/cc278098.aspx


Rem*_*anu 5

您需要的是保护应用程序和 SQL Server 之间的流量。为此,只需执行加密 SQL Server 连接中描述的步骤即可。

接下来的事情是,如果您确实存储敏感数据,您希望将其加密存储在数据库中,以防止意外介质丢失。到目前为止,最好的解决方案是使用透明数据库加密

这些解决方案都不需要在应用程序中更改任何一行代码。它们都是部署时间、管理员控制的设置。尝试推出自己的密码学解决方案将一事无成。在密码学领域很容易搞砸,而且你甚至不知道。只需利用 SQL 提供的加密功能(连接 TLS、存储 TDE),无需更改应用程序即可更容易且更好地满足要求。