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相关的帮助也是值得赞赏的.
我需要什么帮助:
任何不限于asp.net的加密参考都将非常感激.:)
我看到MSDN页面,它似乎是一个体面的起点,但我有点困惑.看起来这是2个应用程序相互发送文件的方式,而不是将加密的内容发送到SQL Server?使用这个,我不知道SQL Server如何知道如何解密它?
我是否可以在左侧视野中寻找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
对于应用程序和数据库之间的加密,最好的办法是在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
您需要的是保护应用程序和 SQL Server 之间的流量。为此,只需执行加密 SQL Server 连接中描述的步骤即可。
接下来的事情是,如果您确实存储敏感数据,您希望将其加密存储在数据库中,以防止意外介质丢失。到目前为止,最好的解决方案是使用透明数据库加密。
这些解决方案都不需要在应用程序中更改任何一行代码。它们都是部署时间、管理员控制的设置。尝试推出自己的密码学解决方案将一事无成。在密码学领域很容易搞砸,而且你甚至不知道。只需利用 SQL 提供的加密功能(连接 TLS、存储 TDE),无需更改应用程序即可更容易且更好地满足要求。