两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種驗證tcp連接安全性的方法

文檔序號:7774204閱讀:257來源:國知局
一種驗證tcp連接安全性的方法
【專利摘要】本發(fā)明公開了一種驗證TCP連接安全性的方法,利用NDIS修改客戶端發(fā)起連接時的SYN包數(shù)據(jù)。在選項區(qū)或者數(shù)據(jù)區(qū)中加入額外的驗證信息,服務(wù)器只有檢測到此驗證信息且驗證信息正確的情況下,才允許進(jìn)行后續(xù)的連接動作完成接入。否則掛斷連接,或丟棄此包,使連接無法完成,后續(xù)的攻擊及竊取等也無法完成,通過此途徑,可以在第一時間有效的保護(hù)服務(wù)器的安全。
【專利說明】—種驗證TCP連接安全性的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種驗證TCP連接安全性的方法。
【背景技術(shù)】
[0002]在現(xiàn)存的網(wǎng)絡(luò)系統(tǒng)中(局域網(wǎng)、互聯(lián)網(wǎng)),主要通過TCP/IP協(xié)議來連接交互數(shù)據(jù)。而TCP/IP協(xié)議在70年代確定的時候,主要是軍事用途,用于封閉的網(wǎng)絡(luò)。并沒有想到會獲得如此巨大的應(yīng)用,當(dāng)然也完全沒有考慮安全性風(fēng)險。
[0003]現(xiàn)有的防火墻等安全系統(tǒng),可以比較有效的防止來自外部發(fā)起的攻擊。但是對于內(nèi)部信任區(qū)域的電腦,無法做出更為精確的控制。舉例來說,用戶想要保護(hù)ー個重要的數(shù)據(jù)庫系統(tǒng),只有在客戶端電腦中安裝有殺毒軟件及第三方審計軟件后,才允許訪問數(shù)據(jù)庫。現(xiàn)有的防火墻等安全系統(tǒng),無法對此需求給出解決方案。

【發(fā)明內(nèi)容】

[0004]本發(fā)明所要解決的技術(shù)問題是提供一種驗證TCP連接安全性的方法,第一時間有效的保護(hù)服務(wù)器的安全。
[0005]為了解決上述技術(shù)問題,本發(fā)明所提供的技術(shù)方案是:一種驗證TCP連接安全性的方法,包括以下步驟:
[0006]①在客戶端,當(dāng)指定的程序向指定的服務(wù)器地址及端ロ發(fā)送TCP連接請求時,利用NDIS修改TCP連接時的數(shù)據(jù)包,使其能夠附帶填充數(shù)據(jù)作為驗證信息;
[0007]②在服務(wù)器端,當(dāng)接收到TCP客戶端連接請求吋,首先通過檢測TCP數(shù)據(jù)包的選項區(qū)中是否有附帯數(shù)據(jù),來確定是否允許接入;如果沒有附帯數(shù)據(jù),再通過檢查TCP數(shù)據(jù)包的數(shù)據(jù)區(qū)是否有附帯數(shù)據(jù),來確定是否允許接入;
[0008]③在完成TCP連接后,客戶端開發(fā)數(shù)據(jù)吋,通過SEAL算法以及事先保存起來的密鑰對數(shù)據(jù)進(jìn)行加密;
[0009]④服務(wù)器在收到數(shù)據(jù)后,通過事先保存起來的密鑰以及SEAL算法,對接收到的數(shù)據(jù)進(jìn)行解密。
[0010]所述步驟①具體為:首先對TCP數(shù)據(jù)包填充附帶數(shù)據(jù);然后將生成的附帯數(shù)據(jù)直接放置于原始SYN包的尾部,同時與原始SYN包相比,修改之后的包多了 32字節(jié)的數(shù)據(jù),為此,相應(yīng)的也要修改IP包中表示IP包長度的“Total Length”字段。
[0011]所述TCP數(shù)據(jù)包中填充的附帶數(shù)據(jù)可以為固定的數(shù)據(jù),也可以為可變動的數(shù)據(jù)。
[0012]所述對TCP數(shù)據(jù)包填充可變動附帶數(shù)據(jù)的具體方法為:根據(jù)事先設(shè)定的靜態(tài)值、客戶端地址、客戶端端ロ、服務(wù)器地址、服務(wù)器端ロ、SYN包中的SEQ序列號、發(fā)送時間,用MD5算法將其計算出一 HASH值(16字節(jié)),此值放置于校驗區(qū);同時生成一隨機(jī)的16字節(jié)密鑰,此值放置于密鑰區(qū),(并且將此值在本機(jī)保存下來);此時得到的附帯數(shù)據(jù)為明文,為保護(hù)密鑰不被泄密,用RSA算法公鑰加密此數(shù)據(jù)。
[0013]所述TCP數(shù)據(jù)包中填充的附帶數(shù)據(jù)可以置于TCP數(shù)據(jù)包頭部的選項區(qū),也可放置于TCP數(shù)據(jù)包的數(shù)據(jù)區(qū)。
[0014]所述步驟②具體為:服務(wù)器端接收到TCP連接請求后,首先查看選項區(qū)中是否有附帯數(shù)據(jù),若有附帯數(shù)據(jù),則判斷其是否符合規(guī)則特征,若符合則允許接入,若不符合則拒絕接入,并丟棄此包或RST掛斷連接;若沒有附帶數(shù)據(jù),則判斷是否有數(shù)據(jù)區(qū),若沒有數(shù)據(jù)區(qū)則拒絕接入,并丟棄此包或RST掛斷連接;若有數(shù)據(jù)區(qū),則檢查數(shù)據(jù)長度;若數(shù)據(jù)長度為16字節(jié),則判斷其是否符合規(guī)則特征,若符合則允許接入,若不符合則拒絕接入,并丟棄此包或RST掛斷連接;若數(shù)據(jù)長度為32字節(jié),則用RSA算法解密此數(shù)據(jù),然后判斷前16字節(jié)是否符合規(guī)則特征,若符合則允許接入,并將后16字節(jié)保存以便用于連接后傳輸?shù)臄?shù)據(jù)解密,若不符合則拒絕接入,并丟棄此包或RST掛斷連接。
[0015]所述判斷附帶是否符合規(guī)則特征的具體方法為:首先用RSA算法私鑰解密附帯數(shù)據(jù);然后檢驗TCP連接是否可信任,算法與客戶端相同,根據(jù)事先設(shè)定的靜態(tài)值、客戶端地址、客戶端端ロ、服務(wù)器地址、服務(wù)器端ロ、SYN包中的SEQ序列號、發(fā)送時間,用MD5算法將其計算出一 HASH值(16字節(jié));如果此值與附帶數(shù)據(jù)中的校驗值一致,則表明連接可信任,允許接入,繼續(xù)后續(xù)的連接過程,同時將附帶數(shù)據(jù)中的密鑰保存起來;反之,則拒絕或忽略請求。
[0016]采用了上述技術(shù)方案后,本發(fā)明具有以下的有益效果:本發(fā)明在進(jìn)行數(shù)據(jù)傳輸之前的握手的過程中,加入對連接信息的檢驗,只有當(dāng)含有特定信息的連接包,才允許連接,而其他普通的連接請求包,則掛斷連接,或丟棄此包,使連接無法完成,后續(xù)的攻擊及竊取等也無法完成,通過此途徑,可以在第一時間有效的保護(hù)服務(wù)器的安全。
【專利附圖】

【附圖說明】
[0017]為了使本發(fā)明的內(nèi)容更容易被清楚地理解,下面根據(jù)具體實施例并結(jié)合附圖,對本發(fā)明作進(jìn)ー步詳細(xì)的說明,其中
[0018]圖1為TCP協(xié)議在連接時的時序圖。
[0019]圖2為標(biāo)準(zhǔn)的TCP連接時的數(shù)據(jù)包結(jié)構(gòu)圖。
[0020]圖3為利用TCP數(shù)據(jù)包的選項區(qū)來放置附帯數(shù)據(jù)的結(jié)構(gòu)圖。
[0021]圖4為利用TCP數(shù)據(jù)包的數(shù)據(jù)區(qū)來放置附帯數(shù)據(jù)的結(jié)構(gòu)圖。
[0022]圖5為客戶端生成可變動附帶數(shù)據(jù)的流程圖。
[0023]圖6為服務(wù)端處理TCP連接時的流程圖。
【具體實施方式】
[0024](實施例1)
[0025]本實施例主要針對使用TCP協(xié)議的應(yīng)用。對于TCP協(xié)議來說,在進(jìn)行數(shù)據(jù)傳輸之前,必須要經(jīng)過握手連接。如果在握手的過程中,加入對連接信息的檢驗,只有當(dāng)含有特定信息的連接包,才允許連接,而其他普通的連接請求包,則掛斷連接,或丟棄此包,使連接無法完成,后續(xù)的攻擊及竊取等也無法完成,通過此途徑,可以在第一時間有效的保護(hù)服務(wù)器的安全。
[0026]見圖1至圖4,根據(jù)TCP協(xié)議,TCP頭部可以有選項區(qū),其最大可以空間為40字節(jié),而在客戶端向服務(wù)器連接握手的第一個步驟中,其可能會用到的選項有=MSS最大報文段長度,Kind=2,4 字節(jié)。Window Scale 窗ロ擴(kuò)大因子,Kind=3, 3 字節(jié)。SACK-Permit 選擇性確認(rèn),Kind=4, 2字節(jié),Timestamp時間戳選項,Kind=8, 10字節(jié),對齊之后,其最大可能利用的空間為20字節(jié),即還有20字節(jié)的可用空間??梢岳眠@20字節(jié)的可用空間,傳送ー些我們指定的數(shù)據(jù),用以檢驗連接的可信度。比如,約定” 1234abcd”為TCP客戶端和服務(wù)端雙方認(rèn)可的數(shù)據(jù),則在客戶端發(fā)起連接時,通過NDIS修改SYN信息,在選項區(qū)的末尾,再加入” 1234abcd”。當(dāng)服務(wù)器端接收到TCP連接信號時,檢測選項區(qū),如果有比正常選項區(qū)還要多的數(shù)據(jù),并且其為” 1234abcd”,則認(rèn)為該連接來自一信任的電腦,反之則忽略或掛斷連接。
[0027]除使用固定的數(shù)據(jù)外,還可以使用根據(jù)一定算法生成得到的值作為雙方檢驗的依具。比如在IP層,我們可以得到源IP地址,目的IP地址。在TCP層我們可以得到源端ロ號,目的端口號,SEQ序號等變量,另外可再填入事先確定的干攏碼,將此類變量組合,再經(jīng)過MD5/SHA1等哈希算法,或者AES等可逆算法,計算后得到ー個數(shù)值。然后將其填入選項區(qū),當(dāng)服務(wù)器接收到連接請求時,如果檢查發(fā)現(xiàn)選項區(qū)中有額外的數(shù)據(jù),則逐個得到這些變量的值,然后按照客戶端相同的算法進(jìn)行計算,如果其與選項中存放的值相同,則表明該TCP連接來自于可信任的客戶端。反之則忽略或掛斷連接。
[0028]利用上述方法,可以對此應(yīng)用進(jìn)一步擴(kuò)展,即在驗證連接是否來自信任電腦的同吋,對后續(xù)的TCP傳送的數(shù)據(jù)進(jìn)行加密,進(jìn)ー步加強(qiáng)安全性。方法如下:客戶端發(fā)起連接吋,其附帯的數(shù)據(jù)包含兩部分,前半部為用以檢測連接是否信任,后半部分用以傳輸密鑰。當(dāng)客戶端發(fā)起連接請求時,首先上述方法填充用作檢驗區(qū)的前半部分,然后生成ー個隨機(jī)的值作為密鑰填入后半部分(同時將此隨機(jī)密鑰保存起來),得到完整的附帯數(shù)據(jù)(明文)。然后用RSA算法的公鑰加密此數(shù)據(jù)(密文)。然后填入選項區(qū)。當(dāng)服務(wù)器收到此附帶數(shù)據(jù)時,用RSA算法的私鑰將其解密,首先利用附帯數(shù)據(jù)的前半部分檢測該連接是否可信任,如果信任,則允許連接,并將后半部分的附帯數(shù)據(jù)(也就是隨機(jī)密鑰),保存起來。當(dāng)握手連接建立完成以后,客戶端傳送數(shù)據(jù)時,首先用其保存的密鑰通過對稱算法(DES\AES\SEAL\RC4等)將數(shù)據(jù)進(jìn)行加密,然后再發(fā)送。當(dāng)服務(wù)器接收到數(shù)據(jù)時,利用保存下來的密鑰解密數(shù)據(jù)。
[0029]如果因為所需附帶的數(shù)據(jù)量比較大,選項區(qū)無法全部放置。則可以在SYN時,將數(shù)據(jù)放置于TCP包的數(shù)據(jù)區(qū)。其實現(xiàn)過程與將附帶數(shù)據(jù)放置于選項區(qū)相同。
[0030]綜上所述,本實施例的驗證TCP連接安全性的方法,包括以下步驟:
[0031]①在客戶端,當(dāng)指定的程序向指定的服務(wù)器地址及端ロ發(fā)送TCP連接請求時,利用NDIS修改TCP連接時的數(shù)據(jù)包,使其能夠附帶填充數(shù)據(jù)作為驗證信息。
[0032]所述步驟①具體為:首先對TCP數(shù)據(jù)包填充附帶數(shù)據(jù);然后將生成的附帯數(shù)據(jù)直接放置于原始SYN包的尾部,同時與原始SYN包相比,修改之后的包多了 32字節(jié)的數(shù)據(jù),為此,相應(yīng)的也要修改IP包中表示IP包長度的“Total Length”字段。
[0033]TCP數(shù)據(jù)包中填充的附帶數(shù)據(jù)可以為固定的數(shù)據(jù),也可以為可變動的數(shù)據(jù)。
[0034]見圖5,對TCP數(shù)據(jù)包填充可變動附帶數(shù)據(jù)的具體方法為:根據(jù)事先設(shè)定的靜態(tài)值、客戶端地址、客戶端端ロ、服務(wù)器地址、服務(wù)器端ロ、SYN包中的SEQ序列號、發(fā)送時間,用MD5算法將其計算出一 HASH值(16字節(jié)),此值放置于校驗區(qū);同時生成一隨機(jī)的16字節(jié)密鑰,此值放置于密鑰區(qū),(并且將此值在本機(jī)保存下來);此時得到的附帯數(shù)據(jù)為明文,為保護(hù)密鑰不被泄密,用RSA算法公鑰加密此數(shù)據(jù)。[0035]TCP數(shù)據(jù)包中填充的附帶數(shù)據(jù)可以置于TCP數(shù)據(jù)包頭部的選項區(qū),也可放置于TCP數(shù)據(jù)包的數(shù)據(jù)區(qū)。
[0036]②在服務(wù)器端,當(dāng)接收到TCP客戶端連接請求吋,首先通過檢測TCP數(shù)據(jù)包的選項區(qū)中是否有附帯數(shù)據(jù),來確定是否允許接入;如果沒有附帯數(shù)據(jù),再通過檢查TCP數(shù)據(jù)包的數(shù)據(jù)區(qū)是否有附帯數(shù)據(jù),來確定是否允許接入。
[0037]見圖6,步驟②具體為:服務(wù)器端接收到TCP連接請求后,首先查看選項區(qū)中是否有附帯數(shù)據(jù),若有附帯數(shù)據(jù),則判斷其是否符合規(guī)則特征,若符合則允許接入,若不符合則拒絕接入,并丟棄此包或RST掛斷連接;若沒有附帯數(shù)據(jù),則判斷是否有數(shù)據(jù)區(qū),若沒有數(shù)據(jù)區(qū)則拒絕接入,并丟棄此包或RST掛斷連接;若有數(shù)據(jù)區(qū),則檢查數(shù)據(jù)長度;若數(shù)據(jù)長度為16字節(jié),則判斷其是否符合規(guī)則特征,若符合則允許接入,若不符合則拒絕接入,并丟棄此包或RST掛斷連接;若數(shù)據(jù)長度為32字節(jié),則用RSA算法解密此數(shù)據(jù),然后判斷前16字節(jié)是否符合規(guī)則特征,若符合則允許接入,并將后16字節(jié)保存以便用于連接后傳輸?shù)臄?shù)據(jù)解密,若不符合則拒絕接入,并丟棄此包或RST掛斷連接。
[0038]其中判斷附帶是否符合規(guī)則特征的具體方法為:首先用RSA算法私鑰解密附帯數(shù)據(jù);然后檢驗TCP連接是否可信任,算法與客戶端相同,根據(jù)事先設(shè)定的靜態(tài)值、客戶端地址、客戶端端ロ、服務(wù)器地址、服務(wù)器端ロ、SYN包中的SEQ序列號、發(fā)送時間,用MD5算法將其計算出一 HASH值(16字節(jié));如果此值與附帶數(shù)據(jù)中的校驗值一致,則表明連接可信任,允許接入,繼續(xù)后續(xù)的連接過程,同時將附帶數(shù)據(jù)中的密鑰保存起來;反之,則拒絕或忽略請求。
[0039]③在完成TCP連接后,客戶端開發(fā)數(shù)據(jù)吋,通過SEAL算法以及事先保存起來的密鑰對數(shù)據(jù)進(jìn)行加密。
[0040]④服務(wù)器在收到數(shù)據(jù)后,通過事先保存起來的密鑰以及SEAL算法,對接收到的數(shù)據(jù)進(jìn)行解密。
[0041]以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)ー步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種驗證TCP連接安全性的方法,其特征在于:包括以下步驟: ①在客戶端,當(dāng)指定的程序向指定的服務(wù)器地址及端ロ發(fā)送TCP連接請求時,利用NDIS修改TCP連接時的數(shù)據(jù)包,使其能夠附帶填充數(shù)據(jù)作為驗證信息; ②在服務(wù)器端,當(dāng)接收到TCP客戶端連接請求吋,首先通過檢測TCP數(shù)據(jù)包的選項區(qū)中是否有附帯數(shù)據(jù),來確定是否允許接入;如果沒有附帯數(shù)據(jù),再通過檢查TCP數(shù)據(jù)包的數(shù)據(jù)區(qū)是否有附帯數(shù)據(jù),來確定是否允許接入; ③在完成TCP連接后,客戶端開發(fā)數(shù)據(jù)吋,通過SEAL算法以及事先保存起來的密鑰對數(shù)據(jù)進(jìn)行加密; ④服務(wù)器在收到數(shù)據(jù)后,通過事先保存起來的密鑰以及SEAL算法,對接收到的數(shù)據(jù)進(jìn)行解密。
2.根據(jù)權(quán)利要求1所述的ー種驗證TCP連接安全性的方法,其特征在于:所述步驟①具體為:首先對TCP數(shù)據(jù)包填充附帶數(shù)據(jù);然后將生成的附帯數(shù)據(jù)直接放置于原始SYN包的尾部,同時與原始SYN包相比,修改之后的包多了 32字節(jié)的數(shù)據(jù),為此,相應(yīng)的也要修改IP包中表示IP包長度的“Total Length”字段。
3.根據(jù)權(quán)利要求2所述的ー種驗證TCP連接安全性的方法,其特征在于:所述TCP數(shù)據(jù)包中填充的附帶數(shù)據(jù)可以為固定的數(shù)據(jù),也可以為可變動的數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的ー種驗證TCP連接安全性的方法,其特征在于:所述對TCP數(shù)據(jù)包填充可變動附帶數(shù)據(jù)的具體方法為:根據(jù)事先設(shè)定的靜態(tài)值、客戶端地址、客戶端端ロ、服務(wù)器地址、服務(wù)器端ロ、SYN包中的SEQ序列號、發(fā)送時間,用MD5算法將其計算出一HASH值(16字節(jié)),此值放置于校驗區(qū);同時生成一隨機(jī)的16字節(jié)密鑰,此值放置于密鑰區(qū),(并且將此值在本機(jī)保存下來);此時得到的附帯數(shù)據(jù)為明文,為保護(hù)密鑰不被泄密,用RSA算法公鑰加密此數(shù)據(jù)?!?br> 5.根據(jù)權(quán)利要求2至4之一所述的ー種驗證TCP連接安全性的方法,其特征在于:所述TCP數(shù)據(jù)包中填充的附帶數(shù)據(jù)可以置于TCP數(shù)據(jù)包頭部的選項區(qū),也可放置于TCP數(shù)據(jù)包的數(shù)據(jù)區(qū)。
6.根據(jù)權(quán)利要求1所述的ー種驗證TCP連接安全性的方法,其特征在于:所述步驟②具體為:服務(wù)器端接收到TCP連接請求后,首先查看選項區(qū)中是否有附帯數(shù)據(jù),若有附帯數(shù)據(jù),則判斷其是否符合規(guī)則特征,若符合則允許接入,若不符合則拒絕接入,并丟棄此包或RST掛斷連接;若沒有附帯數(shù)據(jù),則判斷是否有數(shù)據(jù)區(qū),若沒有數(shù)據(jù)區(qū)則拒絕接入,并丟棄此包或RST掛斷連接;若有數(shù)據(jù)區(qū),則檢查數(shù)據(jù)長度;若數(shù)據(jù)長度為16字節(jié),則判斷其是否符合規(guī)則特征,若符合則允許接入,若不符合則拒絕接入,并丟棄此包或RST掛斷連接;若數(shù)據(jù)長度為32字節(jié),則用RSA算法解密此數(shù)據(jù),然后判斷前16字節(jié)是否符合規(guī)則特征,若符合則允許接入,并將后16字節(jié)保存以便用于連接后傳輸?shù)臄?shù)據(jù)解密,若不符合則拒絕接入,并丟棄此包或RST掛斷連接。
7.根據(jù)權(quán)利要求6所述的ー種驗證TCP連接安全性的方法,其特征在于:所述判斷附帶是否符合規(guī)則特征的具體方法為:首先用RSA算法私鑰解密附帯數(shù)據(jù);然后檢驗TCP連接是否可信任,算法與客戶端相同,根據(jù)事先設(shè)定的靜態(tài)值、客戶端地址、客戶端端ロ、服務(wù)器地址、服務(wù)器端ロ、SYN包中的SEQ序列號、發(fā)送時間,用MD5算法將其計算出一 HASH值(16字節(jié));如果此值與附帯數(shù)據(jù)中的校驗值一致,則表明連接可信任,允許接入,繼續(xù)后續(xù)的連接過程,同時將附帶數(shù)·據(jù)中的密鑰保存起來;反之,則拒絕或忽略請求。
【文檔編號】H04L12/26GK103532964SQ201310500299
【公開日】2014年1月22日 申請日期:2013年10月22日 優(yōu)先權(quán)日:2013年10月22日
【發(fā)明者】邱文喬 申請人:邱文喬
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
乐平市| 六安市| 萍乡市| 成武县| 新安县| 山阳县| 晋江市| 西吉县| 新平| 桐庐县| 临朐县| 马龙县| 苏尼特左旗| 巢湖市| 鄂尔多斯市| 诸暨市| 新宾| 乌兰察布市| 禄劝| 绵阳市| 平南县| 宜都市| 汝阳县| 山东省| 裕民县| 类乌齐县| 玛多县| 哈密市| 琼海市| 开化县| 科技| 全州县| 鄱阳县| 嘉兴市| 海淀区| 沾化县| 安乡县| 沭阳县| 穆棱市| 柯坪县| 全州县|