文章出處

不制作證書是否能加密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會使用自生成的自簽名證書,加密客戶端發過來的登陸用戶名和密碼
數據傳輸階段,如果不使用證書,那么數據是使用明文在網絡上進行傳送的
大家可以看一下這篇文章:
 
 
網上有很多制作證書的教程,但是制作證書都比較麻煩,客戶端和服務器端都要弄很多東西。
 
詳細制作證書的過程可以參考園子里的這篇文章:

當然這篇文章不是講解這個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 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()