專利名稱:一種安全終端仿真協(xié)議監(jiān)控時實現(xiàn)會話復制和跟蹤的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于安全終端仿真協(xié)議監(jiān)控技術(shù)領(lǐng)域,具體是涉及一種安全終端仿真協(xié)議 監(jiān)控時實現(xiàn)會話復制和跟蹤的方法。
背景技術(shù):
終端仿真協(xié)議是用于維護UNIX或者LINUX服務(wù)器的常用協(xié)議,早期基于TCP/IP 網(wǎng)絡(luò)終端仿真的比較流行的協(xié)議有TELNET和RLOGIN兩種,但由于它們在網(wǎng)絡(luò)傳輸?shù)倪^程 中采用明文的方式,這產(chǎn)生了很大的安全隱患,居心叵測者可以很方便地在旁路對用戶名 和密碼,甚至操作進行監(jiān)聽和截獲。因此這兩種協(xié)議逐步地被傳輸更安全、功能更強大的安 全終端仿真協(xié)議(以下簡稱SSH協(xié)議)所取代。SSH協(xié)議不僅通過采用SSL非對稱加密的方 法使得網(wǎng)絡(luò)數(shù)據(jù)傳輸更為安全,而且SSH協(xié)議還通過虛擬通道的方法提供了在同一個TCP 連接上開啟多個虛擬會話的功能,即SSH的會話復制,極大地方便了服務(wù)器維護人員。正是 由于SSH協(xié)議的安全性,通過常用的旁路抓取數(shù)據(jù)包的方式是無法從中獲得有效數(shù)據(jù)的, 因此如果需要對基于SSH的遠程訪問操作進行監(jiān)控,就必須在監(jiān)控系統(tǒng)上對SSH協(xié)議進行 二次登陸或者代理,否則就無法從加密的數(shù)據(jù)中還原出維護人員的操作。所謂二次登錄,就 是操作人員首先通過SSH協(xié)議登錄到監(jiān)控系統(tǒng)上,監(jiān)控系統(tǒng)為已授權(quán)的操作人員提供友好 的菜單界面,操作人員可以在菜單內(nèi)選擇自己所需要登錄的服務(wù)器直接進行登錄。所謂代 理,就是操作人員將監(jiān)控系統(tǒng)指定為SSH協(xié)議的代理服務(wù)器,所有的SSH協(xié)議訪問均以監(jiān)控 系統(tǒng)作為代理來訪問目標服務(wù)器。綜上所述,根據(jù)二次登陸或者代理的原理可以知道,操作 人員發(fā)起的SSH協(xié)議連接在監(jiān)控系統(tǒng)上進行了終結(jié),所有對維護的目標服務(wù)器的連接都是 由監(jiān)控系統(tǒng)發(fā)起的,這樣監(jiān)控系統(tǒng)對客戶端而言是服務(wù)器,而對服務(wù)器端而言是客戶端,通 過這種方法可以很方便地反解析操作行為。這樣可以滿足了對SSH協(xié)議的監(jiān)控,但是由于 在這種情況下,客戶端的SSH協(xié)議連接是與監(jiān)控系統(tǒng)建立的,同樣服務(wù)器端SSH協(xié)議連接也 是與監(jiān)控系統(tǒng)建立的,因此對會話復制功能的轉(zhuǎn)發(fā),以及對每個會話的全過程跟蹤就變得 非常困難。
發(fā)明內(nèi)容
本發(fā)明主要是解決現(xiàn)有技術(shù)所存在的技術(shù)問題,提供了一種安全終端仿真協(xié)議監(jiān) 控時實現(xiàn)會話復制和跟蹤的方法。本發(fā)明的上述技術(shù)問題主要是通過下述技術(shù)方案得以解決的一種安全終端仿真 協(xié)議監(jiān)控時實現(xiàn)會話復制和跟蹤的方法,其實現(xiàn)步驟為⑴監(jiān)控系統(tǒng)對SSH協(xié)議進行二次 登錄或代理,客戶端向監(jiān)控系統(tǒng)發(fā)起開啟會話復制的請求,并請求一個標識,監(jiān)控系統(tǒng)響應(yīng) 該會話復制請求,協(xié)商完成后在監(jiān)控系統(tǒng)和客戶端之間建立一個新的獨立的虛擬會話;⑵ 監(jiān)控系統(tǒng)同時向服務(wù)器端發(fā)起開啟會話復制請求,服務(wù)器端響應(yīng)該會話復制請求,并請求 一個標識,協(xié)商完成后在服務(wù)器端和監(jiān)控系統(tǒng)之間也建立一個新的獨立的虛擬會話;⑶監(jiān) 控系統(tǒng)根據(jù)客戶端發(fā)送來的會話數(shù)據(jù)查找出對應(yīng)的面向服務(wù)器端的會話通道并通過這個會話通道將數(shù)據(jù)發(fā)送給服務(wù)器,同時監(jiān)控系統(tǒng)根據(jù)服務(wù)器端發(fā)送來的會話數(shù)據(jù)查找出對應(yīng) 的面向客戶端的會話通道并通過這個會話通道將數(shù)據(jù)發(fā)送給客戶端,將兩端所有的虛擬會 話一一對應(yīng)地映射起來;⑷在內(nèi)存中繪制虛擬內(nèi)存屏幕,并在這個屏幕中截取每個會話的 操作,達到了對每個會話進行單獨跟蹤的目的。作為優(yōu)選,所述步驟⑶中,監(jiān)控系統(tǒng)對虛擬會話的映射建立為一個鏈表,并在這個 鏈表上分別建立以客戶端會話為索引的hash表和以服務(wù)器端會話為索引的hash表,當接 收到客戶端會話數(shù)據(jù)時在以客戶端會話為索引的hash表中檢索,當接收到服務(wù)器端會話 數(shù)據(jù)時在以服務(wù)器端會話為索引的hash表中檢索。作為優(yōu)選,所述步驟⑷中,監(jiān)控系統(tǒng)對每個會話均維持一個會話節(jié)點,虛擬內(nèi)存屏 幕作為會話節(jié)點的一個成員,每當接收到會話數(shù)據(jù)時,查找到會話節(jié)點并繪制這個屏幕,同 時截取相應(yīng)的操作。本發(fā)明克服了現(xiàn)有安全終端仿真協(xié)議技術(shù)中對會話復制功能的轉(zhuǎn)發(fā)和對每個會 話的全過程跟蹤不能實現(xiàn)的缺陷,通過本發(fā)明的技術(shù)手段在滿足了對安全終端仿真協(xié)議進 行監(jiān)控的前提下,還實現(xiàn)了在對安全終端仿真協(xié)議監(jiān)控時進行會話復制和跟蹤,操作簡單 易行。
具體實施例方式下面通過實施例,對本發(fā)明的技術(shù)方案作進一步具體的說明。實施例本發(fā)明一種安全終端仿真協(xié)議監(jiān)控時實現(xiàn)會話復制和跟蹤的方法,其實 現(xiàn)步驟為⑴監(jiān)控系統(tǒng)對SSH協(xié)議進行二次登錄或代理,客戶端向監(jiān)控系統(tǒng)發(fā)起開啟會話 復制的請求,并請求一個標識,監(jiān)控系統(tǒng)響應(yīng)該會話復制請求,協(xié)商完成后在監(jiān)控系統(tǒng)和客 戶端之間建立一個新的獨立的虛擬會話;⑵監(jiān)控系統(tǒng)同時向服務(wù)器端發(fā)起開啟會話復制請 求,服務(wù)器端響應(yīng)該會話復制請求,并請求一個標識,協(xié)商完成后在服務(wù)器端和監(jiān)控系統(tǒng)之 間也建立一個新的獨立的虛擬會話;⑶監(jiān)控系統(tǒng)根據(jù)客戶端發(fā)送來的會話數(shù)據(jù)查找出對應(yīng) 的面向服務(wù)器端的會話通道并通過這個會話通道將數(shù)據(jù)發(fā)送給服務(wù)器,同時監(jiān)控系統(tǒng)根據(jù) 服務(wù)器端發(fā)送來的會話數(shù)據(jù)查找出對應(yīng)的面向客戶端的會話通道并通過這個會話通道將 數(shù)據(jù)發(fā)送給客戶端,將兩端所有的虛擬會話一一對應(yīng)地映射起來;⑷在內(nèi)存中繪制虛擬內(nèi) 存屏幕,并在這個屏幕中截取每個會話的操作,達到了對每個會話進行單獨跟蹤的目的。在對SSH協(xié)議進行二次登陸和代理的過程中,由于需要對整個連接過程的操作進 行監(jiān)控,然而在協(xié)議傳輸過程中被解密出來的數(shù)據(jù)采用的是NVT方式傳輸。所謂NVT是指 網(wǎng)絡(luò)虛擬終端,其中不僅包含了用戶的操作數(shù)據(jù),還包含了很多格式信息,因此僅僅記錄數(shù) 據(jù)包是不夠的,要對數(shù)據(jù)包進行反解析,同時由于異構(gòu)環(huán)境的復雜性和操作的不確定性,僅 僅通過過濾格式數(shù)據(jù)是無法正確解析出操作的。本發(fā)明采用在內(nèi)存中繪制虛擬內(nèi)存屏幕的 方法來得到輸入的操作,也就相當于在內(nèi)存中模擬一個和用戶真實看到的操作終端一樣的 屏幕,并在這個屏幕中截取用戶所進行的操作,這樣就滿足了操作還原的正確性和及時性。 由于用戶可以在每個復制出來的會話中進行相對獨立的操作,因此對每個會話進行跟蹤時 都需要建立一個獨立的虛擬內(nèi)存屏幕,并在每個屏幕中獨立地截取每個會話的操作,這樣 就達到了對每個會話進行單獨跟蹤的目的。為了提高傳輸效率,步驟⑶中監(jiān)控系統(tǒng)對虛擬會話的映射建立為一個鏈表,并在這個鏈表上分別建立以客戶端會話為索引的hash表和以服務(wù)器端會話為索引的hash表, 當接收到客戶端會話數(shù)據(jù)時在以客戶端會話為索引的hash表中檢索,當接收到服務(wù)器端 會話數(shù)據(jù)時在以服務(wù)器端會話為索引的hash表中檢索;步驟⑷中,監(jiān)控系統(tǒng)對每個會話均 維持一個會話節(jié)點,虛擬內(nèi)存屏幕作為會話節(jié)點的一個成員,每當接收到會話數(shù)據(jù)時,查找 到會話節(jié)點并繪制這個屏幕,同時截取相應(yīng)的操作。 最后,應(yīng)當指出,以上實施例僅是本發(fā)明較有代表性的例子。顯然,本發(fā)明的技術(shù) 方案并不限于上述實施例,還可以有許多變形。本領(lǐng)域的普通技術(shù)人員能從本發(fā)明公開的 內(nèi)容直接導出或聯(lián)想到的所有變形,均應(yīng)認為是本發(fā)明的保護范圍。
權(quán)利要求
一種安全終端仿真協(xié)議監(jiān)控時實現(xiàn)會話復制和跟蹤的方法,其特征在于所述方法的實現(xiàn)步驟為⑴監(jiān)控系統(tǒng)對SSH協(xié)議進行二次登錄或代理,客戶端向監(jiān)控系統(tǒng)發(fā)起開啟會話復制的請求,并請求一個標識,監(jiān)控系統(tǒng)響應(yīng)該會話復制請求,協(xié)商完成后在監(jiān)控系統(tǒng)和客戶端之間建立一個新的獨立的虛擬會話;⑵監(jiān)控系統(tǒng)同時向服務(wù)器端發(fā)起開啟會話復制請求,服務(wù)器端響應(yīng)該會話復制請求,并請求一個標識,協(xié)商完成后在服務(wù)器端和監(jiān)控系統(tǒng)之間也建立一個新的獨立的虛擬會話;⑶監(jiān)控系統(tǒng)根據(jù)客戶端發(fā)送來的會話數(shù)據(jù)查找出對應(yīng)的面向服務(wù)器端的會話通道并通過這個會話通道將數(shù)據(jù)發(fā)送給服務(wù)器,同時監(jiān)控系統(tǒng)根據(jù)服務(wù)器端發(fā)送來的會話數(shù)據(jù)查找出對應(yīng)的面向客戶端的會話通道并通過這個會話通道將數(shù)據(jù)發(fā)送給客戶端,將兩端所有的虛擬會話一一對應(yīng)地映射起來;⑷在內(nèi)存中繪制虛擬內(nèi)存屏幕,并在這個屏幕中截取每個會話的操作,達到了對每個會話進行單獨跟蹤的目的。
2.根據(jù)權(quán)利要求1所述的一種安全終端仿真協(xié)議監(jiān)控時實現(xiàn)會話復制和跟蹤的方法, 其特征在于所述步驟⑶中,監(jiān)控系統(tǒng)對虛擬會話的映射建立為一個鏈表,并在這個鏈表上 分別建立以客戶端會話為索引的hash表和以服務(wù)器端會話為索引的hash表,當接收到客 戶端會話數(shù)據(jù)時在以客戶端會話為索引的hash表中檢索,當接收到服務(wù)器端會話數(shù)據(jù)時 在以服務(wù)器端會話為索引的hash表中檢索。
3.根據(jù)權(quán)利要求1所述的一種安全終端仿真協(xié)議監(jiān)控時實現(xiàn)會話復制和跟蹤的方法, 其特征在于所述步驟⑷中,監(jiān)控系統(tǒng)對每個會話均維持一個會話節(jié)點,虛擬內(nèi)存屏幕作為 會話節(jié)點的一個成員,每當接收到會話數(shù)據(jù)時,查找到會話節(jié)點并繪制這個屏幕,同時截取 相應(yīng)的操作。
全文摘要
一種安全終端仿真協(xié)議監(jiān)控時實現(xiàn)會話復制和跟蹤的方法,其實現(xiàn)步驟為⑴監(jiān)控系統(tǒng)對SSH協(xié)議進行二次登錄或代理,客戶端向監(jiān)控系統(tǒng)發(fā)起開啟會話復制的請求,在監(jiān)控系統(tǒng)和客戶端之間建立一個新的獨立的虛擬會話;⑵監(jiān)控系統(tǒng)同時向服務(wù)器端發(fā)起開啟會話復制請求,在服務(wù)器端和監(jiān)控系統(tǒng)之間也建立一個新的獨立的虛擬會話;⑶監(jiān)控系統(tǒng)將兩端所有的虛擬會話一一對應(yīng)地映射起來;⑷在內(nèi)存中繪制虛擬內(nèi)存屏幕,并在這個屏幕中截取每個會話的操作,達到了對每個會話進行單獨跟蹤的目的。通過本發(fā)明的技術(shù)手段在滿足了對安全終端仿真協(xié)議進行監(jiān)控的前提下,還實現(xiàn)了在對安全終端仿真協(xié)議監(jiān)控時進行會話復制和跟蹤,操作簡單易行。
文檔編號H04L12/26GK101980481SQ201010533530
公開日2011年2月23日 申請日期2010年11月5日 優(yōu)先權(quán)日2010年11月5日
發(fā)明者黃藝海 申請人:杭州思福迪信息技術(shù)有限公司