使用SqlConnection与SQLServer服务器进行连接,ConnectionString中保存有的账号密码能否被截取网络封包解读?不知道SqlConnection与SQLServer的交互通信中,ConnectionString是否已经加密?
SQL Server 登录
Windows 身份验证是用于连接到 SQL Server 的首选方法。但是,如果需要 SQL Server 身份验证,请使用下列语法来指定用户名和密码。在此示例中,星号用来表示有效用户名和密码。
安全说明 |
---|
Persist Security Info 关键字的默认设置为 false。如果将其设置为 true 或 yes,则允许在打开连接后通过连接获取安全敏感信息(包括用户 ID 和密码)。保持将 PersistSecurity Info 设置为 false,以确保不受信任的来源不能访问敏感的连接字符串信息。 |
作为添加的安全措施,默认情况下,SqlConnection 对象的 ConnectionString 属性不持续存在或不返回完整的连接字符串。若要这样做,必须将“持久性安全信息”设置为 true。有关更多信息,请参见 SqlConnection.ConnectionString 属性和 SqlConnection 类。
可以手动加密的
有没有相关资料或链接参考一下呢?
@弎吩锺熱℃: http://www.cnblogs.com/cocoulong/archive/2013/03/27/2985093.html
@yyutudou: 其实我想知道的并不是对web.config的ConnectionString加密的方式,而是ConnectionString在SqlClient内存对象和与SQLServer传输验证登陆过程中是否安全的。与SQLServer传输验证登陆过程中是安全的,这点我已经找到了相关的文档。而ConnectionString在SqlClient内存对象是否安全的,在SqlClient的说明文档中虽然看起来像是安全的,但是无法确认。
可以告诉你的是,网络安全的。
真的吗?也就是ConnectionString在网络传输过程中已被加密的?
数据层 最好,放在服务器端。
服务端这边被网络捉包会不会不安全呢?
配置文件里肯定不安全
若配置文件里面存放的是加密后的连接字串,需要时再解密读取呢?
安全的,数据库连接字符串都是在请求端交由数据库连接驱动程序管理的,数据库驱动程序会内置的保证交给它的信息是安全的。
能不能提供一下相关的参考链接呢?或者相关的搜索关键字,我好了解一下详情。
@弎吩锺熱℃: 没有。根据个人理解分析的。
1、数据库那么重要的东西,如果轻松就让人通过网络数据抓取就破解了密码,那还了得?这样,数据库肯定存在大问题的
2、数据库连接不象我们通过form方式提交数据,而是走了数据库驱动程序,这个有点类似Web访问的Https协议,走http协议的密码,你能通过抓取数据的方式获取密码?这个有个参考:网易的通行证登录。
3、数据库的网络连接只有比https更严密。
@519740105: 虽然我也是像你这样想的,但是我也不确定,所以就来提问了,想得到个确定的答案。
@弎吩锺熱℃: 帐户、密码是安全的,这个可以给你确定的回答!
@519740105: 但是我不能就跟上司说我确定,但是不知道如何确定。。
@弎吩锺熱℃: 那你就把这里的解释给你上司看。
把我的分析一条一条的摆给他听。
如果他不确定,那~~~宁愿辞职也不继续了。
@弎吩锺熱℃: 还有一个办法,就是“忽悠”,告诉他,自己已经通过一个特殊的算法把帐号和密码加密了,至于加密方法嘛,有很多:
1、自己弄服务层,数据库不对外公开
2、对字符串以加密的方式存储起来,使用的时候解密
@519740105:
1.有些软件已经开发在用的,新开发的还能考虑使用这种模式,已有程序修改成本太高。
2.现在就是用的这种模式。。但是解密出来的连接字符串是存储在ConnectionString里面的,然后连接数据库的时候,肯定就要把这个连接发送出去,但是不知道发送出去的数据,是否已经经过加密。如果不被加密,那就可以直接捕捉网络封包,获取到里面的信息了。
数据库一般只能给自己公司的服务器访问,不会直接让客户端直接连接的。
有时候这情况也不能完全避免,就算同处一个网络内被捉包,要是明文传输,也是不安全的。
安全。
但是呢,能不能说具体一点呢?
从《不制作证书是否能加密SQLSERVER与客户端之间传输的数据?》中看到了《SQL Server 连接加密 (1) -- SQL Server connection encyption》,得到了确认的答复。
原文:联机从书上提到过从SQL Server 2005开始,SQL Server和客户端的连接是自动加密的。联机丛书上所说的SQL Server会自动加密连接就是指的这个阶段。这个阶段开始于客户端和SQL Server在TCP/IP协议栈的三次握手,止于客户端成功登陆SQL Server。从SQL Server 2005开始,这个阶段永远是加密的。