專利名稱:基于流量分析的ssl vpn協(xié)議檢測方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)安全領(lǐng)域的協(xié)議檢測方法,具體是一種基于流量分析的 SSL VPN協(xié)議檢測方法。
背景技術(shù):
安全套接層協(xié)議(SSL),用以保障在Internet上數(shù)據(jù)傳輸之安全,利用數(shù) 據(jù)加密技術(shù),可確保數(shù)據(jù)在網(wǎng)絡(luò)上之傳輸過程中不會被截取及竊聽。SSL協(xié)議位 于TCP/IP協(xié)議與各種應用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。HTTPS安全超文本傳輸協(xié)議,是以安全為目標的HTTP通道,簡單講是HTTP 的安全版。即HTTP下加入SSL層,HTTPS協(xié)議使用443端口,而不是象HTTP那 樣使用端口 80來和TCP/IP進行通信。SSL VPN工作在傳輸層和應用層之間,使用了瀏覽器自帶的SSL協(xié)議,當集 團的員工希望連接到總部網(wǎng)絡(luò)時,可以盡情使用手頭任何可接入Internet的設(shè) 備。通過在瀏覽器中輸入總部SSL VPN的網(wǎng)絡(luò)地址,ActiveX控件會自動被下載 并安裝,利用管理員發(fā)布的帳號和密碼,員工就可以隨時接入到內(nèi)網(wǎng)。雖然SSL VPN使用的也是SSL協(xié)議,但是使用SSL的并不都是SSL VPN,比 如說使用HTTPS登錄網(wǎng)絡(luò)郵箱如Hotmail、 Gmail等。雖然也有一個安全的HTTP 隧道,但是并不能滿足SSL VPN的web服務以及端口和諸多應用的需要。SSL VPN避開了部署及管理必要客戶軟件的復雜性和人力需求,SSL在Web 的易用性和安全性方面架起了一座橋梁SSL VPN簡單,容易配置,不需麻煩的 安裝和配置客戶端軟件,而且兼容性很好。在目前的企業(yè)應用中已經(jīng)超越了 IPSec VPN的使用數(shù)量。和IPSec VPN不同的是,SSL VPN不像IPSec VPN—樣工作在網(wǎng)絡(luò)層,所以 不會有接入地點的限制。同時,也不會收到NAT網(wǎng)絡(luò)地址轉(zhuǎn)換網(wǎng)關(guān)的影響,能夠 真正做到端到端的安全。由于SSLVPN的迅猛發(fā)展,所帶來的安全隱患也日益增加,因為一般組織的防火墻對HTTPS和SSL VPN所采用的TCP 443端口都采取放行的策略。對加密的 內(nèi)容,不會進行檢査。雖然SSLVPN被攻擊后的后果沒有對IPSec VPN嚴重。作 為一個良好的安全管理人員,對SSL VPN的管理和審査也應該非常小心。但是 SSL VPN和HTTPS都采用的是TCP 443端口的SSL協(xié)議報文,如何進行區(qū)分是一 個難題。
經(jīng)査新,國內(nèi)外沒有這方面工作的報道,在目前的安全管理中, 一般不區(qū)分 SSL VPN和HTTPS的流量,很大的原因是兩者使用了相同的協(xié)議,另外一個原因 是管理還不夠細致。
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有技術(shù)的不足,提供一種基于流量分析的SSL VPN協(xié)議檢測方 法,使其利用SSL VPN和HTTPS在流量特征上的不同,基于流量監(jiān)控,提取SSL VPN的加密算法等信息,并且在有其它HTTPS報文混雜的情況下仍然適用。本發(fā) 明使用HASH表來作為數(shù)據(jù)庫,具有查詢速度快、穩(wěn)定的特點。
所述的SSL VPN和HTTPS在流量特征上的不同,是指SSL VPN —般有一段 比較長的持續(xù)時間,這段時間內(nèi)會有大量相同IP并且有可能是相同會話ID的 SSL數(shù)據(jù)包。相比之下HTTPS持續(xù)的時間一般比較短,通常只有一個短暫的認證 過程。因此,本發(fā)明根據(jù)連接的持續(xù)時間這種流量特征,來在SSL報文流內(nèi)檢測 SSL VPN連接的存在。
本發(fā)明是通過以下技術(shù)方案實現(xiàn)的,本發(fā)明包括如下步驟
步驟一在智能代理或者探針設(shè)備上把網(wǎng)卡設(shè)為混雜模式,并通過調(diào)用 libpc印網(wǎng)絡(luò)抓包庫函數(shù)進行循環(huán)監(jiān)聽,設(shè)置BPF抓包過濾器來抓取所有TCP 443 端口的報文,也即SSL報文,通過設(shè)置回調(diào)函數(shù)callback為基于流量分析的SSL VPN檢測函數(shù),每次抓到報文就會自動調(diào)用基于流量分析的SSL VPN檢測函數(shù)進 行處理;回調(diào)函數(shù)callback是由系統(tǒng)接收到消息自動調(diào)用的函數(shù)。
本發(fā)明把基于流量分析的SSL VPN檢測方法的函數(shù)地址作為參數(shù)設(shè)置為回 調(diào)函數(shù)。因此,當Libpcap抓到符合過濾規(guī)則(TCP 443端口)的報文,就會自 動去調(diào)用基于流量分析的SSL VPN檢測函數(shù)。
歩驟二在回調(diào)函數(shù)中也即基于流量分析的SSLVPN的檢測方法函數(shù)中執(zhí)行 流量分析。該方法對于抓到的每個SSL報文,根據(jù)IP和會話ID去數(shù)據(jù)庫中查詢 其歷史信息,從而判斷抓到的SSL數(shù)據(jù)包是否屬于SSL VPN連接。也就是SSL VPN的檢測。步驟三根據(jù)上一步驟檢測出來的SSLVPN,在SSL協(xié)商響應報文中尋找的 Cipher Suite,解析出SSL VPN報文中所采用的加密算法、哈希算法、認證算法、 群組簽名算法等,從而檢測出SSL VPN的重要信息。步驟四在循環(huán)調(diào)用回調(diào)函數(shù)之前設(shè)置定時器,定時執(zhí)行清理工作。 步驟五退出該應用的時候,結(jié)束監(jiān)聽,使網(wǎng)卡退出混雜模式,釋放程序所 占用的內(nèi)存資源。步驟一中,進行循環(huán)監(jiān)聽并抓取SSL報文,具體為第一步.指定網(wǎng)卡或査找網(wǎng)卡指定網(wǎng)卡或調(diào)用pcap—lookupdev,選擇監(jiān)聽的網(wǎng)卡設(shè)備。 第二步.打開設(shè)備監(jiān)聽調(diào)用pcap—open—live,設(shè)置使用混雜模式。 第三步.設(shè)定監(jiān)聽規(guī)則調(diào)用pcap—compile對抓包過濾條件(BPF)進行編譯,然后調(diào)用 pcap_setfilter實施該規(guī)則。 第四步.處理特定分組調(diào)用pcap一lo叩,將接收分組數(shù)設(shè)為-1,表示無限循環(huán)。設(shè)定SSLVPN的檢 測方法為回調(diào)函數(shù)。即每次抓到一個符合BPF的數(shù)據(jù)包就調(diào)用該方法進行分析和 提取。第五步.關(guān)閉監(jiān)聽調(diào)用pcap—close,結(jié)束監(jiān)聽。步驟二中,所述的基于流量分析的SSL VPN檢測函數(shù),具體方法為① 建2個散列表作為數(shù)據(jù)庫。第l個散列表的關(guān)鍵字為字符串,其值等于客 戶端IP+服務器IP,第2個散列表的關(guān)鍵字也為字符串,其值等于Session ID。 兩個散列表有共同的域為時間值first一time, last_time,和表示是否已經(jīng)報告 的值re。這一步驟僅在第一次進入該流量分析的SSL VPN檢測方法時執(zhí)行。② 以客戶端IP+服務器IP為關(guān)鍵字査找散列表1:③ 若沒找到,則在表中添加一項,firstjime和last—time置為當前時間, re置為false。 若找到,則置last—time為當前時間,并比較first_time和當前時間⑤ 若兩者相差比閥值大,則查看re:
⑥ 若re值為false,則報告該SSL VPN,并置re值為true。
⑦ 若是Client Hello或Server Hello數(shù)據(jù)包,則以Session ID為關(guān)鍵字 査找散列表2:
⑧ 若沒找到,則在表中添加一項,first—time和last—time置為當前時間, re置為false。
⑨ 若找到,則置last_time為當前時間,并比較first_time和當前時間
⑩ 若兩者相差比閥值大,則查看re-
O若re值為false,則報告檢測出該SSL VPN,并置re值為true,算法結(jié)束。
所述的采用IP和Session ID來判斷一個SSL連接是否屬于SSL VPN,需要 注意一點根據(jù)客戶使用的的瀏覽器不同會有不同的特征。Session ID是一個 SSL會話的標識符??蛻舳丝梢哉埱笾赜靡郧暗腟ession ID,服務器可以同意, 也可以不同意而使用新的Session ID。 Internet Explorer從版本5. 0起,就強 制每2分鐘使用新的Session ID,但Firefox瀏覽器傾向于重用Session ID。
所述的Client Hello和Server Hello是SSL握手協(xié)議中的報文。 SSL協(xié)議可分為兩層SSL記錄協(xié)議(SSL Record Protocol):它建立在可 靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功 能的支持。SSL握手協(xié)議(SSL Handshake Protocol):它建立在SSL記錄協(xié)議 之上,用于在實際的數(shù)據(jù)傳輸開始前,通訊雙方進行身份認證、協(xié)商加密算法、 交換加密密鑰等。
SSL握手協(xié)議是用來在客戶端和服務器端傳輸應用數(shù)據(jù)之前建立安全通信機 制。首次通信時,雙方通過握手協(xié)議協(xié)商密鑰加密算法、數(shù)據(jù)加密算法和文摘算 法。然后互相驗證對方身份,最后使用協(xié)商好的密鑰交換算法產(chǎn)生一個只有雙方 知道的秘密信息,客戶端和服務器各自根據(jù)這個秘密信息確定數(shù)據(jù)加密算法的參 數(shù)(一般是密鑰)。
所述的SSL握手協(xié)議具體過程描述如下
1) Client發(fā)送Client Hello消息給Server, Server回應Server Hello。 這個過程建立的安全參數(shù)包括協(xié)議版本、會話標識、加密算法、壓縮方法。另外,還交換2個隨機數(shù)ClientHello. random和ServerHello. random,用以計算會 話主密鑰。
2) Hello消息發(fā)送完后,Server會發(fā)送它的證書或密鑰交換信息,如果 Server被認證,它會請求Client的證書,然后Server發(fā)送Hello-done消息以 示握手協(xié)議完成。
3) Server請求Client證書時,Client要返回證書或"沒有證書"的提示, 然后Client發(fā)送密鑰交換消息。
4) Server回答"握手完成"消息。
5) 握手協(xié)議完成后,Client和Server就可以傳輸加密數(shù)據(jù)。
步驟三中,所述的在SSL協(xié)商響應報文中尋找的Cipher Suite,具體為 一個SSL數(shù)據(jù)包是一個源或者目的端口為443的TCP包。TCP層之上是SSL 層,SSL層中第一個字節(jié)標識是Content Type, 0x16表示握手層協(xié)議。如果是 握手層協(xié)議,第六個字節(jié)標識Handshake Type, 0x01表示Client Hello, 0x02 表示Server Hello。如果數(shù)據(jù)包是Client Hello或者Server Hello,則SSL層 中第44個字節(jié)標識Session ID Length,假定其值為sessionid_len,因此以后 的字節(jié)偏移量都與該值有關(guān),是變長的。接下去的連續(xù)sessionicLleri個字節(jié)都 標識了該SSL會話的Session ID。如果是Server Hello數(shù)據(jù)包中,再接下去的 (即第45+sessionicLlen個字節(jié))兩個字節(jié)標識Cipher Suite,即SSL VPN中 很重要的加密算法、認證算法、哈希算法、組簽名算法等信息。
所述的判斷一個包是否為Client Hello或者Server Hello的條件具體為 ①整個包大小〉以太網(wǎng)頭大小+IP頭大小+TCP頭大小。
Content Type (偏移0字節(jié))值為0x16 (Handshake)。 ③Handshake Type (偏移5字節(jié))值為0x01 (Client Hello)或0x02 (Server Hello)。
所述的步驟四,具體為
① 遍歷2個散列表,對于表中的每一項,比較last—time和當前時間;
② 若兩者差值比閥值大,則刪除該項。
本發(fā)明通過對SSL協(xié)議流量進行分析,可以區(qū)分HTTPS和SSL VPN的流量, 并且能夠從SSL VPN流量中提取VPN的關(guān)鍵信息,使用者雙方的IP地址,還有使用的加密算法、哈希算法、認證算法等??梢詾榘踩芾砣藛T提供更加精確的 管理信息。可以應用在防火墻、IDS和智能代理中。本發(fā)明實現(xiàn)簡單,效率高, 可以實現(xiàn)千兆線速的分析。
圖1本發(fā)明實施例應用架構(gòu)圖
圖2本發(fā)明實施例總體流程圖
圖3本發(fā)明實施例SSL VPN的檢測流程圖
具體實施例方式
下面結(jié)合附圖對本發(fā)明的實施例作詳細說明本實施例在以本發(fā)明技術(shù)方 案為前提下進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保 護范圍不限于下述的實施例。
如圖1所示,SSL VPN監(jiān)察系統(tǒng)分為中心端和代理端兩部分,結(jié)合SSL VPN 監(jiān)察系統(tǒng)具體說明本實施例
代理端分布配置在各單位邊界網(wǎng)絡(luò)中的交換機鏡像端口,代理端有兩個網(wǎng) 絡(luò)接口, 一個用來抓包, 一個用來和中心端通信。SSL VPN流量會流經(jīng)邊界網(wǎng)絡(luò) 的交換機,并被監(jiān)察系統(tǒng)代理端所抓取到,其中包括SSL VPN的SSL協(xié)議報文。 監(jiān)察代理按照基于流量分析的SSL VPN檢測方法進行分析,提取其中的關(guān)鍵信息, 并把分析出的數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送到中心端,而中心端主要負責將各個代理點匯報 的數(shù)據(jù)進行匯總、分析和數(shù)據(jù)挖掘以及報警管理,并向前臺管理員用戶把抓到的 各IPSec VPN關(guān)鍵信息以圖形化方式展示。
代理端以2. 6內(nèi)核以上Linux系統(tǒng)為基礎(chǔ),并在Linux系統(tǒng)中安裝了 Libpcap 的網(wǎng)絡(luò)抓包庫。Libpcap是一個C語言庫,英文意思為Packet Capture library, 其功能是通過網(wǎng)卡抓取以太網(wǎng)中的數(shù)據(jù)包,為不同平臺提供了統(tǒng)一的編程接口。
代理端分為兩個模塊,主模塊負責向中心端通報SSL VPN信息,接受來自 中心端的配置更新等命令。子模塊則負責在特定端口抓包,并進行分析和提取。 子模塊的具體過程如下,如圖2所示
步驟一在智能代理或者探針設(shè)備上把網(wǎng)卡設(shè)為混雜模式,并通過調(diào)用 libpcap網(wǎng)絡(luò)抓包庫函數(shù)進行循環(huán)監(jiān)聽,設(shè)置BPF抓包過濾器來抓取所有TCP 443 端口的報文,也即SSL報文,通過設(shè)置回調(diào)函數(shù)callback為基于流量分析的SSL VPN檢測函數(shù),每次抓到報文就會自動調(diào)用基于流量分析的SSL VPN檢測函數(shù)進行處理;回調(diào)函數(shù)callback是由系統(tǒng)接收到消息自動調(diào)用的函數(shù)。
本發(fā)明把基于流量分析的SSL VPN檢測方法的函數(shù)地址作為參數(shù)設(shè)置為回
調(diào)函數(shù)。因此,當Libpc鄰抓到符合過濾規(guī)則(TCP 443端口)的報文,就會自
動去調(diào)用基于流量分析的SSL VPN檢測函數(shù)。
步驟二在回調(diào)函數(shù)中也即基于流量分析的SSL VPN的檢測方法函數(shù)中執(zhí)行
流量分析。該方法對于抓到的每個SSL報文,根據(jù)IP和會話ID去數(shù)據(jù)庫中查詢
其歷史信息,從而判斷抓到的SSL數(shù)據(jù)包是否屬于SSL VPN連接。也就是SSL VPN
的檢測。具體有以下幾個步驟,如圖3所示
① 建2個散列表作為數(shù)據(jù)庫。第1個散列表的關(guān)鍵字為字符串,其值等于客 戶端IP+服務器IP,第2個散列表的關(guān)鍵字也為字符串,其值等于Session ID。 兩個散列表有共同的域為時間值first—time, last_time,和表示是否已經(jīng)報告 的值re。這一步驟僅在第一次進入該流量分析的SSL VPN檢測方法時執(zhí)行。
② 以客戶端IP+服務器IP為關(guān)鍵字查找散列表1:
③ 若沒找到,則在表中添加一項,first—time和last_time置為當前時間, re置為false。
若找到,則置last—time為當前時間,并比較first—time和當前時間
⑤ 若兩者相差比閥值大,則查看re:
⑥ 若re值為false,則報告該SSL VPN,并置re值為true。
⑦ 若是Client Hello或Server Hello數(shù)據(jù)包,則以Session ID為關(guān)鍵字 査找散列表2:
⑧ 若沒找到,則在表中添加一項,first—time和last—time置為當前時間, re置為false。
⑨ 若找到,則置last一time為當前時間,并比較first—time和當前時間
⑩ 若兩者相差比閥值大,則査看re:
O若re值為false,則報告檢測出該SSL VPN,并置re值為true,函數(shù)結(jié)束。
所述的采用IP和Session ID來判斷一個SSL連接是否屬于SSL VPN,需要 注意一點根據(jù)客戶使用的的瀏覽器不同會有不同的特征。Session ID是一個 SSL會話的標識符??蛻舳丝梢哉埱笾赜靡郧暗腟ession ID,服務器可以同意, 也可以不同意而使用新的Session ID。 Internet Explorer從版本5. 0起,就強制每2分鐘使用新的Session ID,但Firefox瀏覽器傾向于重用Session ID。 步驟三根據(jù)上一步驟檢測出來的SSL VPN,在Server Hello報文中尋找
Cipher Suite,解析出SSL VPN報文中所采用的加密算法、哈希算法、認證算法、
群組簽名算法等,從而檢測出SSLVPN的重要信息。如果檢測出的SSLVPN不符
合安全管理的規(guī)則,那么就觸發(fā)報警或者記錄日志等操作。
步驟四在循環(huán)調(diào)用回調(diào)函數(shù)之前設(shè)置定時器,定時執(zhí)行清理算法。 步驟五退出該應用的時候,結(jié)束監(jiān)聽,使網(wǎng)卡退出混雜模式,釋放程序所
占用的內(nèi)存資源。
該SSL VPN監(jiān)察系統(tǒng)能夠從SSL報文中發(fā)現(xiàn)SSL VPN流量,區(qū)分HTTPS和 SSL VPN。該監(jiān)察系統(tǒng)使用的基于流量分析的SSL VPN協(xié)議檢測方法簡單,易于 實現(xiàn),并且檢測速度很塊??梢詮V泛應用到防火墻,入侵檢測系統(tǒng),以及各種智 能代理或探針中。該系統(tǒng)使用了一款基于酷睿2平臺的雙千兆口工控主機,能夠 實現(xiàn)千兆線速的SSL VPN抓包速度。
該系統(tǒng)的準確性用誤報率和漏檢率兩個指標來衡量。
誤報率分析
該深度檢測方法能識別出SSL VPN和HTTPS流量之間的區(qū)別,只有當HTTPS 的流量特征非常接近于SSLVPN的流量特征的話,會引起誤報,這種情況通常比
較少見。
漏檢率分析
漏檢率在SSL VPN流量特征非常接近于HTTPS的情況下會發(fā)生,很可能是 SSL VPN連接不成功,并沒有真正連上就斷開了。這種情況也比較少見。
權(quán)利要求
1、一種基于流量分析的SSL VPN協(xié)議檢測方法,其特征在于,包括如下步驟步驟一在智能代理或者探針設(shè)備上把網(wǎng)卡設(shè)為混雜模式,并通過調(diào)用libpcap網(wǎng)絡(luò)抓包庫函數(shù)進行循環(huán)監(jiān)聽,設(shè)置BPF抓包過濾器來抓取所有TCP 443端口的報文,也即SSL報文,通過設(shè)置回調(diào)函數(shù)callback為基于流量分析的SSLVPN檢測函數(shù),每次抓到報文就會自動調(diào)用基于流量分析的SSL VPN檢測函數(shù)進行處理;回調(diào)函數(shù)callback是由系統(tǒng)接收到消息自動調(diào)用的函數(shù),把基于流量分析的SSL VPN檢測方法的函數(shù)地址作為參數(shù)設(shè)置為回調(diào)函數(shù),因此,當Libpcap抓到符合過濾規(guī)則的報文,就會自動去調(diào)用基于流量分析的SSL VPN檢測函數(shù);步驟二在回調(diào)函數(shù)中也即基于流量分析的SSL VPN的檢測方法函數(shù)中執(zhí)行流量分析,對于抓到的每個SSL報文,根據(jù)IP和會話ID去數(shù)據(jù)庫中查詢其歷史信息,從而判斷抓到的SSL數(shù)據(jù)包是否屬于SSL VPN連接,也就是SSL VPN的檢測;步驟三根據(jù)上一步驟檢測出來的SSL VPN,在SSL協(xié)商響應報文中尋找的Cipher Suite,解析出SSL VPN報文中所采用加密算法,從而檢測出SSL VPN的重要信息;步驟四在循環(huán)調(diào)用回調(diào)函數(shù)之前設(shè)置定時器,定時執(zhí)行清理工作;步驟五退出該應用的時候,結(jié)束監(jiān)聽,使網(wǎng)卡退出混雜模式,釋放程序所占用的內(nèi)存資源。
2、 根據(jù)權(quán)利要求1所述的基于流量分析的SSL VPN協(xié)議檢測方法,其特征是,步驟一中,進行循環(huán)監(jiān)聽并抓取SSL報文,具體為 第一步.指定網(wǎng)卡或査找網(wǎng)卡指定網(wǎng)卡或調(diào)用pcap—lookupdev,選擇監(jiān)聽的網(wǎng)卡設(shè)備;第二步.打開設(shè)備監(jiān)聽調(diào)用pcapjpenjive,設(shè)置使用混雜模式;第三步.設(shè)定監(jiān)聽規(guī)則調(diào)用pcap—compile對抓包過濾條件進行編譯,然后調(diào)用pcap—setfilter 實施該規(guī)則;第四步.處理特定分組調(diào)用pc印一lo叩,將接收分組數(shù)設(shè)為-1,表示無限循環(huán),設(shè)定SSLVPN的檢 測方法為回調(diào)函數(shù),即每次抓到一個符合BPF的數(shù)據(jù)包就調(diào)用該方法進行分析和 提??;第五步.關(guān)閉監(jiān)聽調(diào)用pcap_cl0Se,結(jié)束監(jiān)聽。
3、 根據(jù)權(quán)利要求1所述的基于流量分析的SSL VPN協(xié)議檢測方法,其特征 是,步驟二中,鎖住基于流量分析的SSL VPN檢測函數(shù),具體方法為① 建2個散列表作為數(shù)據(jù)庫,第l個散列表的關(guān)鍵字為字符串,其值等于客 戶端IP+服務器IP,第2個散列表的關(guān)鍵字也為字符串,其值等于Session ID, 兩個散列表有共同的域為時間值first—time, last—time,和表示是否已經(jīng)報告 的值re,這一步驟僅在第一次進入該流量分析的SSL VPN檢測方法時執(zhí)行;② 以客戶端IP+服務器IP為關(guān)鍵字查找散列表1;③ 若沒找到,則在表中添加一項,first—time和lastjime置為當前時間, re置為false; 若找到,則置last_time為當前時間,并比較first_time和當前時間;⑤ 若兩者相差比閥值大,則查看re;⑥ 若re值為false,則報告該SSL VPN,并置re值為true;⑦ 若是Client Hello或Server Hello數(shù)據(jù)包,則以Session ID為關(guān)鍵字 查找散列表2;⑧ 若沒找到,則在表中添加一項,firstjime和last—time置為當前時間, re置為false;⑨ 若找到,則置last—time為當前時間,并比較first—time和當前時間;⑩ 若兩者相差比閥值大,則查看re;O若re值為false,則報告檢測出該SSL VPN,并置re值為true,函數(shù)結(jié)束。
4、 根據(jù)權(quán)利要求1所述的基于流量分析的SSL VPN協(xié)議檢測方法,其特征 是,步驟二中,所述的SSL VPN的檢測,是采用IP和Session ID來判斷一個SSL連接是否屬于SSL VPN。
5、 根據(jù)權(quán)利要求1所述的基于流量分析的SSL VPN協(xié)議檢測方法,其特征 是,步驟三中,所述的在SSL協(xié)商響應報文中尋找的Cipher Suite,具體為一個SSL數(shù)據(jù)包是一個源或者目的端口為443的TCP包,TCP層之上是SSL 層,SSL層中第一個字節(jié)標識是Content Type, 0xl6表示握手層協(xié)議,如果是 握手層協(xié)議,第六個字節(jié)標識Handshake Type, 0x01表示Client Hello, 0x02 表示Server Hello,如果數(shù)據(jù)包是Client Hello或者Server Hello,則SSL 層中第44個字節(jié)標識Session ID Length,假定其值為sessionidjen,因此以 后的字節(jié)偏移量都與該值有關(guān),是變長的,接下去的連續(xù)sessionicLlen個字節(jié) 都標識了該SSL會話的Session ID,如果是Server Hello數(shù)據(jù)包中,再接下去 的兩個字節(jié)標識Cipher Suite,即SSL VPN中很重要的算法信息。
6、 根據(jù)權(quán)利要求5所述的基于流量分析的SSL VPN協(xié)議檢測方法,其特征是,所述的判斷一個包是否為Client Hello或者Server Hello,具體條件為① 整個包大小〉以太網(wǎng)頭大小+IP頭大小+TCP頭大?。虎?Content Type值為0x16, 0x16代表Handshake, Content Type在SSL報 文中偏移量為O字節(jié);③ Handshake Type值為0x01或0x02, Handshake Type在SSL報文中的偏 移量為5字節(jié),0x01代表Client Hello, 0x02代表Server Hello。
7、 根據(jù)權(quán)利要求1所述的基于流量分析的SSL VPN協(xié)議檢測方法,其特征 是,步驟四中,所述的在循環(huán)調(diào)用回調(diào)函數(shù)之前設(shè)置定時器,定時執(zhí)行清理工作, 具體為-① 遍歷2個散列表,對于表中的每一項,比較last—time和當前時間;② 若兩者差值比閥值大,則刪除該項。
全文摘要
一種基于流量分析的SSL VPN協(xié)議檢測方法,用于網(wǎng)絡(luò)安全領(lǐng)域。本發(fā)明首先在智能代理或探針機器上打開網(wǎng)卡的混雜模式進行循環(huán)監(jiān)聽,并且設(shè)置BPF過濾器抓取HTTPS報文,其中包括了可能存在的SSL VPN報文,對抓取的報文進行SSL VPN檢測方法,該方法根據(jù)SSL VPN通信流量的時域特征和VPN建立時候的一些握手協(xié)議特征,來檢測是HTTPS應用的流量還是SSL VPN的流量。本發(fā)明使用了HASH表來代替數(shù)據(jù)庫查詢,速度很快而且簡單穩(wěn)定。
文檔編號H04L29/06GK101296228SQ20081003918
公開日2008年10月29日 申請日期2008年6月19日 優(yōu)先權(quán)日2008年6月19日
發(fā)明者周志洪, 張月國, 李建華, 蔣興浩, 偉 蔡 申請人:上海交通大學