不制作证书是否能加密SQLSERVER与客户端之间传输的数据?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了不制作证书是否能加密SQLSERVER与客户端之间传输的数据?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3784字,纯文字阅读大概需要6分钟。
内容图文
![不制作证书是否能加密SQLSERVER与客户端之间传输的数据?](/upload/InfoBanner/zyjiaocheng/532/db91b01ba5e74ab0ad2078d916dd17e7.jpg)
不 制作 证书 是否 能 加密 SQLSERVER与 客户 端 之间 传输 的 数据 ? 在做实验之前请先下载network monitor抓包工具 微软官网下载: http://www.microsoft.com/en-us/download/details.aspx?id=4865 Microsoft Network Monitor 这是微软提供的网络抓包工具
不制作证书是否能加密SQLSERVER与客户端之间传输的数据?
在做实验之前请先下载network monitor抓包工具
微软官网下载:http://www.microsoft.com/en-us/download/details.aspx?id=4865
Microsoft Network Monitor
这是微软提供的网络抓包工具
虽然它是微软提供的,但所有的协议parser解析代码全部都是开源的,采用其支持的特有脚本语言编写,易理解、易扩展;
它自带协议parser比较全面,同时有一个开源社区提供持续支持;
另外,它也提供API帮助我们开发自己的网络抓包、协议分析工具。
针对TDS协议解析需求:
Network Monitor自带TDS协议解析器和UI比较友好
Network Monitor自带TDS协议解析器在解析和结果展示方面更全面,以下是一个画面片段,显示了一个SQL Batch包。
先了解一下SQLSERVER的加密阶段
一共有两个阶段
在认证阶段,SQLSERVER会使用自生成的自签名证书,加密客户端发过来的登陆用户名和密码
在数据传输阶段,如果不使用证书,那么数据是使用明文在网络上进行传送的
大家可以看一下这篇文章:
SQL Server 连接加密 (1) -- SQL Server connection encyption
网上有很多制作证书的教程,但是制作证书都比较麻烦,客户端和服务器端都要弄很多东西。
详细制作证书的过程可以参考园子里的这篇文章:
在SQL Server 2005 中开启SSL(图文结合)
当然这篇文章不是讲解这个network monitor抓包工具的,所以轻轻带过就算了
那么,不制作证书怎么加密传输的数据啊????
答案就是:同样使用在认证阶段的自生成的自签名证书
详细步骤:
步骤1:在SQLSERVER服务器端这边设置强行加密
步骤2:重启SQLSERVER,只有重启SQLSERVER设置才能生效
步骤3:打开network monitor,新建一个capture
步骤4:启动capture,开始捕获
步骤5:在客户端这边连上服务器端的SQLSERVER,然后你会在network monitor里的看到SSMS这个进程已经出现在Network Conversations窗口
步骤6:选中他,你会在Frame Summary窗口看到帧信息
步骤7:如果你在服务器端开启了“强行加密”,那么收到的数据包都会是加密的
大家在Protocol Name这一栏看到的是TLS协议,而不会是TDS协议
步骤8:查看帧数据
步骤9:如果没有加密的明文数据,network monitor就能够查看出来,并且Protocol Name这一栏显示的是TDS协议,因为数据包并没有使用TLS协议进行封装
TIPS:当关闭了SSMS的查询窗口之后,连接还是存在的
很多人会问,关闭了连接,怎么连接还存在,客户端为什么还会跟服务器端进行通信?????
实际上,这个是客户端的连接池机制,客户端不断发送keep alive数据包给服务器,下次有同样的连接进行重用了,不需要再进行三次握手o(∩_∩)o
总结
本人介绍了不使用制作证书的方式来对传输的数据进行加密的方法,实际上设置客户端而不设置服务器端也是可以的
不过设置客户端比较麻烦,还需要在连接字符串里加上encrypt属性设置为Yes
设置服务器端和设置客户端的加密的区别
服务器端:所有的连接都是加密的
客户端:只是设置了加密的那个连接是加密的,其他没有设置加密的连接依然是明文传输数据
当然,使用SQLSERVER自生成的证书安全性是不及自己制作的证书的安全性高!!
相关连接:
加密与 SQL Server 的连接
使用自签名证书加密的 SSL 连接不提供强安全性。它们容易在传输中途受到攻击。在生产环境中或在连接到 Internet 的服务器上,不应依赖使用自签名证书的 SSL。
始终要对客户端应用程序与 SQL Server 连接时传输的凭据(在登录数据包中)进行加密。SQL Server 将使用可信证书颁发机构颁发的证书(如果可用)。如果未安装可信证书,则在启动实例时 SQL Server 将生成自签名证书,并使用自签名证书对凭据进行加密。自签名证书有助于提高安全性,但它不提供针对通过服务器进行的身份欺骗的保护。如果使用自签名证书,并且 ForceEncryption 选项的值设置为“是”,则将使用自签名证书对通过网络在 SQL Server 和客户端应用程序之间传输的所有数据进行加密
有关SQL server connection Keep Alive 的FAQ(3)
有关SQL server connection Keep Alive 的FAQ(2)
有关SQL server connection Keep Alive 的FAQ(1)
SQL Server 连接加密 (1) -- SQL Server connection encyption
SQL Server 连接加密 (2) -- SQL Server connection encyption
如有不对的地方,欢迎大家拍砖o(∩_∩)o
内容总结
以上是互联网集市为您收集整理的不制作证书是否能加密SQLSERVER与客户端之间传输的数据?全部内容,希望文章能够帮你解决不制作证书是否能加密SQLSERVER与客户端之间传输的数据?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。