【发布时间】:2011-02-28 21:43:16
【问题描述】:
情况: 我需要在我的远程数据库和我的 c# 应用程序之间进行加密。我不知道我在做什么(之前从未做过任何加密),我在网上找到的所有东西都是针对 asp.net 并处理 web.config 文件的。
一些相关数据: 我的连接字符串包含 SQL 服务器身份验证的密码信息,有一个选择和一个删除语句。这三样东西都需要加密。
我正在使用 SQL Server 2008、Visual Studio 2008 和 C#。
我怀疑这是否相关,但这发生在 Windows 服务中。到目前为止,在 winForms 中工作的任何与 SQL 相关的东西在服务中都对我有用,所以任何与 winForms 相关的帮助也很感激。
我需要什么帮助:
任何不限于 asp.net 的加密参考将不胜感激。 :)
我看到了MSDN page,这似乎是一个不错的起点,但我有点困惑。这似乎是 2 个应用程序相互发送文件的方式,而不是向 SQL Server 发送加密的内容?使用这个,我不明白 SQL Server 怎么知道如何解密它?
我在 System.Security.Cryptography 的左侧字段中是否有出路?是否有某种方法可以在 System.Data.SqlClient 中指定加密,或者我将不得不求助于在远程服务器上创建存储过程?
提前谢谢你!!! :)
总结:
感谢大家让我走上正确的道路,很难只选择一个答案! :)
我已经得出结论,我需要使用 SSL,虽然我对操作方法有很多困惑,但我知道这需要证书,并且一旦设置了证书,客户端就可以请求通过在连接字符串中询问“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 和您的应用程序之间的结果集(希望如此),这是有道理的 - 使用 SSL。
-
是的,加密结果集!敏感数据将保存在远程数据库中,我需要一种安全的方式将其取出。 :)
标签: c# sql sql-server encryption public-key