不制作證書是否能加密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包。

當然這篇文章不是講解這個network monitor抓包工具的,所以輕輕帶過就算了












TIPS:當關閉了SSMS的查詢窗口之后,連接還是存在的
很多人會問,關閉了連接,怎么連接還存在,客戶端為什么還會跟服務器端進行通信?????
實際上,這個是客戶端的連接池機制,客戶端不斷發送keep alive數據包給服務器,下次有同樣的連接進行重用了,不需要再進行三次握手o(∩_∩)o
總結
本人介紹了不使用制作證書的方式來對傳輸的數據進行加密的方法,實際上設置客戶端而不設置服務器端也是可以的
不過設置客戶端比較麻煩,還需要在連接字符串里加上encrypt屬性設置為Yes
設置服務器端和設置客戶端的加密的區別
服務器端:所有的連接都是加密的
客戶端:只是設置了加密的那個連接是加密的,其他沒有設置加密的連接依然是明文傳輸數據
當然,使用SQLSERVER自生成的證書安全性是不及自己制作的證書的安全性高!!
相關連接:
使用自簽名證書加密的 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
文章列表