專利名稱:安全接入數據傳輸系統及方法
技術領域:
本發明涉及網絡安全領域,特別是關于一種安全接入(Secure SHell,SSH)數據傳輸系統及方法。
背景技術:
傳統的網絡服務,如FTP、POP和Telnet在本質上都是不安全的,因為在網絡上用明文傳送口令和數據,別有用心的人非常容易就可以截獲這些口令和數據。而且,這些網絡服務的安全驗證方式也是有其弱點的,就是很容易受到“中間人”(Man-in-the-Middle),冒充真正的服務器接收用戶的傳給服務器的數據,然后再冒充該用戶把數據傳給真正的服務器。服務器和用戶之間的數據傳送被“中間人”一轉手做了手腳之后,就會出現很嚴重的問題,因此解決安全隱患迫在眉睫。
SSH的英文全稱是Secure SHell。通過使用SSH,用戶可以把所有傳輸的數據進行加密,這樣“中間人”這種攻擊方式就不可能實現,而且也能夠防止DNS和IP欺騙。還有一個好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH的提出彌補了Telnet的不足,使遠程登錄訪問的應用中安全性得到了很大的提高。SSH協議支持PASSWORD、RSA驗證方式,支持DES、3DES數據加密方式,從而使在不安全的網絡上實現安全的遠程訪問成為可能。
SSH數據傳輸是一個關鍵部分,通過將SSH數據包加密并發送到Socket(套接口)上以及從Socket上接收加密數據包,實現SSH的客戶端和服務器端數據交互,由于發送和接收的數據都可能來自不同的應用和用戶,因此數據傳輸既要保證不同來源的加密數據傳輸的順序關系、完整性,還要保證大流量下加密數據包的傳輸效率,從而使用戶遠程操作能夠獲得類似本地操作的效果。然而對于傳統實現,數據的充分性和效率往往難以兼顧,在大流量遠程網絡環境中,數據信息丟棄、操作響應緩慢等現象時常可見。
關于SSH數據傳輸,目前實現主要有兩種方式,一種是繼承Telnet的數據傳輸方式,另一種是對傳輸數據進行保護的傳輸方式。
(1)類似Telnet的數據傳輸方式如圖1所示,各個任務11、12…1n發送的數據經加密后送到數據傳輸緩沖區21、22…2n,控制模塊3控制數據傳輸緩沖區21、22…2n的數據發送,且該控制模塊3通過EV_SENDAGAIN和EV_VTYCLOSE消息控制數據向Socket4的發送過程。Socket 4通過ASYN_READ、ASYN_WRITE和ASYN_CLOSE等事件通知控制模塊3關于Socket4的數據發送狀態。各個任務11、12…1n接收數據的處理過程與發送過程類似。
在這種類似Telnet的數據傳輸方式中,不同任務11、12…1n使用不同的數據傳輸緩沖區21、22…2n,這些緩沖區21、22…2n僅是簡單的字符串緩沖區,彼此間獨立,從而做到對發送和接收數據的隔離。由于各任務11、12…1n都有自己對應獨立的數據傳輸緩沖區21、22…2n,因此當Socket4以流方式傳輸數據產生任務切換時,不用對各任務11、12…1n的相應傳輸緩沖區21、22…2n進行臨界保護。
(2)對數據進行保護的傳輸方式如圖2所示,數據進行保護的傳輸是大多數SSH協議的實現方式,與類似Telnet的數據傳輸方式不同的是不同任務11、12…1n使用相同的數據傳輸緩沖區2,通過信號量或中斷對各個任務進行數據保護5,因此當Socket4以流方式傳輸數據產生任務切換時,由于同一時刻只能有一個任務訪問數據傳輸緩沖區2,從而做到對發送和接收數據的隔離保護。
上面兩種技術方案存在一定問題(1)采用類似Telnet的數據傳輸方式雖然可以保證數據傳輸的效率,但無法保證發送數據的順序性。在多任務大流量情況下,發送和接收的數據往往是交織的,造成此問題是因為Socket以流方式發送接收數據,當一次不能全部發送完數據時,會造成任務的不斷切換,使不同任務順序發送或接收的數據交織在一起。
(2)采用對數據進行保護的傳輸方式,通過對數據傳輸緩沖區進行保護,可以保證每一任務發送或接收數據的完整性,以及不同任務發送或接收數據的順序性。但由于采用信號量或中斷方式對數據傳輸緩沖區進行保護,會使數據發送和接收效率降低,當發送或接收數據流量較大時,用戶操作的響應速度會變得很慢。
發明內容
本發明解決的問題是提供一種安全接入數據傳輸系統及方法,使得SSH數據在傳輸中兼顧效率、速度及完整性。
為解決上述問題,本發明安全接入數據傳輸系統包括若干任務;數據傳輸緩沖區,暫存各個任務發送的數據,且各個任務共用一個數據傳輸緩沖區;控制模塊,控制數據傳輸緩沖區中數據的傳輸狀態;套接口,接收數據傳輸緩沖區的數據并發送出去,且將數據傳輸狀態通知控制模塊;其中,數據傳輸緩沖區的數據依接收順序進行放置和發送而套接口在發送數據時不區分數據邊界。
相應地,本發明安全接入數據傳輸方法包括以下步驟各個任務向同一個數據傳輸緩沖區發送數據;數據傳輸緩沖區依接收順序暫存數據;控制模塊控制數據傳輸緩沖區中的數據向對應的套接口順序發送;套接口接收數據傳輸緩沖區的數據并不區分數據邊界將數據發送出去,且將數據的傳輸狀態通知控制模塊。
數據傳輸緩沖區設有以下指針開始指針,動態標識數據開始的位置;偏移指針,動態標識數據已發送的長度;結束指針,動態標識數據結束的位置,以實現數據傳輸緩沖區的數據依接收順序進行放置和發送。
數據傳輸緩沖區接收和發送數據時還包括以下步驟1)數據傳輸緩沖區為空時,進行初始狀態設置,開始指針、偏移指針以及結束指針指向數據傳輸緩沖區的開始位置;2)數據傳輸緩沖區接收數據時,結束指針移至所有數據長度尾部。
3)數據傳輸緩沖區發送數據時,偏移指針標識已發送數據的長度;4)每次數據發送成功后,開始指針移至偏移指針的位置。
5)根據任務的切換,重復步驟2)、3)、4),直至全部數據依次發送完成后,返回步驟1)。
另外,在所要發送數據超過數據傳輸緩沖區剩余空間時,將數據傳輸緩沖區空間擴充一倍;當全部數據發送完成時,數據傳輸緩沖區恢復到原來大小。開始指針超過數據傳輸緩沖區一半時,且要發送數據小于數據傳輸緩沖區的剩余空間時,暫存的數據移至數據傳輸緩沖區開始位置。
與現有技術相比,本發明具有以下優點本發明安全接入數據傳輸系統及方法通過共用數據傳輸緩沖區的多個指針標識不同任務的加密數據位置實現數據依接收順序傳輸進行放置及發送,并且發送過程中不區分數據邊界。這樣,很好的解決了傳輸完整性和效率性問題,在不損失傳輸處理效率的情況下,保證了傳輸數據的順序性。經測試,本發明在多任務大流量的遠程網絡環境中,用戶的操作相應速度同Telnet相當,不同任務發送接收的數據處理完整、正確,而且SSH相對Telnet具有較好的安全性。
圖1是現有技術中的第一個技術方案示意圖。
圖2是現有技術中的第二個技術方案示意圖。
圖3是本發明安全接入數據傳輸系統示意圖。
圖4a、4b是本發明安全接入數據傳輸系統及方法的原理示意圖。
具體實施例方式
請參照圖3、圖4a、b所示,本發明安全接入數據傳輸系統,包括若干任務11、12…1n;數據傳輸緩沖區2,暫存各個任務11、12…1n發送的數據,且各個任務11、12…1n共用一個數據傳輸緩沖區2;
控制模塊3,控制數據傳輸緩沖區2中數據的傳輸;套接口(Socket)4,接收數據傳輸緩沖區2的數據并發送數據,且將數據的傳輸狀態通知控制模塊3;其中,數據傳輸緩沖區的數據依接收順序進行放置和發送,并通過數據傳輸緩沖區2設有如下指針實現的開始指針(start),動態標識數據開始的位置;偏移指針(offset),動態標識數據已發送的長度;以及,結束指針(end),動態標識數據結束的位置。
當數據傳輸緩沖區2在所要發送數據超過數據傳輸緩沖區剩余空間時,將其空間擴充一倍;當全部數據發送完成時,數據傳輸緩沖區2恢復到原來大小。當然數據傳輸緩沖區2的擴充不限于一倍,但是也不能無限擴充,當數據傳輸緩沖區2超過上限時的后續各任務發送數據將被丟棄。
在當開始指針超過數據傳輸緩沖區2一半時,且要發送數據小于數據傳輸緩沖區2的剩余空間時,暫存數據移至數據傳輸緩沖區2開始位置。
數據傳輸緩沖區2保證了各任務的發送數據完整性,SOCKET4在發送數據時不區分各任務的發送數據邊界的而是按照數據傳輸緩沖區數據接收的順序發送,相應的各任務數據報文邊界由SSH協議完成。
數據傳輸緩沖區2保證了各任務的發送數據效率,當SOCKET4在一次發送數據未完而進行任務切換時,其他任務可以繼續發送數據到數據傳輸緩沖區2,然后由SOCKET4依次發送。
安全接入數據傳輸系統包括如下事件標識EV_SENDAGAIN,標識控制模塊3的數據繼續發送狀態;
EV_VTYCLOSE,標識控制模塊3的數據發送結束狀態;ASYN_READ,標識套接口4異步讀狀態;ASYN_WRITE,標識套接口4異步寫狀態;ASYN_CLOSE,標識套接口4異步關閉狀態;其中,控制模塊3通過EV_SENDAGAIN和EV_VTYCLOSE消息控制套接口4數據發送/接收過程,套接口4通過ASYN_READ、ASYN_WRITE和ASYN_CLOSE通知控制模塊3關于套接口4的數據發送/接收狀態。
以各個任務11、12…1n發送數據過程為例,該數據經加密后送到數據傳輸緩沖區2,控制模塊3控制數據傳輸緩沖區2的數據發送;控制模塊3通過EV_SENDAGAIN和EV_VTYCLOSE消息控制數據向套接口4的發送過程;套接口4通過ASYN_READ、ASYN_WRITE和ASYN_CLOSE等事件通知控制模塊3關于套接口4的數據發送狀態。
當控制模塊3接收到ASYN_READ事件時,從套接口4讀取報文數據到各個任務;當控制模塊3接收到ASYN_WRITE事件時,通過EV_SENDAGAIN事件控制任務繼續向套接口4發送報文數據;當控制模塊3接收到ASYN_CLOSE事件時,通過EV_VTYCLOSE事件關閉套接口4。各個任務11、12…1n接收數據的處理過程與發送過程類似,不再贅述而本發明所解決的問題主要出現在任務向套接口發送的傳輸方向上。
相應地,本發明安全接入數據傳輸方法包括以下步驟1)各個任務向同一個數據傳輸緩沖區發送數據;2)數據傳輸緩沖區依接收順序暫存數據;
3)控制模塊控制數據傳輸緩沖區中的數據向對應的套接口順序發送;4)套接口接收數據傳輸緩沖區的數據并發送出去,且將數據的傳輸狀態通知控制模塊。
數據傳輸緩沖區設有動態標識數據開始的位置的開始指針、動態標識數據已發送的長度的偏移指針動以及動態標識數據結束的位置的結束指針。
關于數據傳輸緩沖區順序接收、放置及發送具體包括以下步驟a)數據傳輸緩沖區為空時,初始狀態設置,開始指針、偏移指針以及結束指針指向數據傳輸緩沖區的開始位置;b)數據傳輸緩沖區接收數據時,結束指針移至所有數據長度尾部;c)數據傳輸緩沖區發送數據時,偏移指針標識已發送數據的長度;d)每次數據發送成功后,開始指針移至偏移指針的位置;e)根據任務的切換,重復步驟b)-d),直至全部數據依次發送完成后,返回步驟a)。
本發明安全接入數據傳輸方法,以多個任務11、12…1n數據發送過程為例進行說明工作原理。
數據傳輸緩沖區2保證了各任務的發送數據完整性,SOCKET4在發送數據時不區分各任務的數據邊界而是按照數據傳輸緩沖區數據接收的順序發送,相應的各任務數據報文邊界由SSH協議完成。
數據傳輸緩沖區2保證了各任務的發送數據效率,當SOCKET4在一次發送數據未完而進行任務切換時,其他任務可以繼續發送數據到數據傳輸緩沖區2,然后由SOCKET4依次發送。
圖3中可見多個任務11、12…1n共用一個數據傳輸緩沖區2,向套接口4發送數據時并不區分數據是來自哪個任務,而是按照數據傳輸緩沖區數據接收的順序,依次盡力發送數據傳輸緩沖區2的數據,直到所有數據全部發送完畢(見圖4a、b)a、開始時開始指針、偏移指針及結束指針皆指向數據傳輸緩沖區2的開始位置,任務A發送的數據經加密放置到數據傳輸緩沖區2后,結束指針移至數據長度尾部;b、當數據通過套接口4發送時,使用偏移指針標識發送數據長度;c、當數據成功發送后,開始指針移至偏移指針位置,當套接口4一次不能發送全部數據時,系統發生任務切換,任務B發送的數據經加密順序放置到數據傳輸緩沖區2,結束指針移至數據緩沖區2所有數據長度尾部;d、系統發生任務切換,套接口4繼續發送緩沖區中任務A和任務B的數據,偏移指針標識已發送數據長度;e、當繼續發送的數據成功發送后,開始指針移至偏移指針位置;f、當發送的數據過大超過數據傳輸緩沖區2剩余空間大小時,數據傳輸緩沖區2將大小擴充一倍,當開始指針超過數據傳輸緩沖區2大小一半,且發送數據大小小于數據傳輸緩沖區2剩余空間時,數據移置數據傳輸緩沖區2開始位置;g、繼續重復緩沖區數據發送過程,全部數據發送完成后,開始指針、偏移指針及結束指針重新指向數據傳輸緩沖區2的開始位置,數據傳輸緩沖區2大小還原為初始大小。
綜上所述,本發明安全接入數據傳輸系統及方法通過事件標識實現控制模塊對多任務共用的數據傳輸緩沖區進行傳輸控制;通過共用數據傳輸緩沖區的多個指針標識不同任務的加密數據位置實現序列化數據而部分邊界地傳輸。這樣,很好的解決了傳輸完整性和效率性問題,在不損失傳輸處理效率的情況下,保證了傳輸數據的順序性。經測試,本發明在多任務大流量的遠程網絡環境中,用戶的操作相應速度同Telnet相當,不同任務發送接收的數據處理完整、正確,而且SSH相對Telnet具有較好的安全性。
權利要求
1.一種安全接入數據傳輸系統,包括若干任務;數據傳輸緩沖區,暫存各個任務發送的數據,且各個任務共用一個數據傳輸緩沖區;控制模塊,控制數據傳輸緩沖區中數據的傳輸狀態;套接口,接收數據傳輸緩沖區的數據并發送出去,且將數據的傳輸狀態通知控制模塊;其特征在于,數據傳輸緩沖區的數據依接收順序進行放置和發送而套接口在發送數據時不區分數據邊界。
2.如權利要求1安全接入數據傳輸系統,其特征在于,數據傳輸緩沖區設有以下指針開始指針,動態標識數據開始的位置;偏移指針,動態標識數據已發送的長度;結束指針,動態標識數據結束的位置,以實現數據傳輸緩沖區的數據依接收順序進行放置和發送。
3.如權利要求2安全接入數據傳輸系統,其特征在于,數據傳輸緩沖區在所要發送數據超過數據傳輸緩沖區剩余空間時,將其空間擴充一倍;當全部數據發送完成時,數據傳輸緩沖區恢復到原來大小。
4.如權利要求3安全接入數據傳輸系統,其特征在于,開始指針超過數據傳輸緩沖區一半時,且要發送數據小于數據傳輸緩沖區的剩余空間時,暫存數據移至數據傳輸緩沖區開始位置。
5.如權利要求1安全接入數據傳輸系統,其特征在于,該安全接入數據傳輸系統包括如下事件標識EV_SENDAGAIN,標識控制模塊的數據繼續發送狀態;EV_VTYCLOSE,標識控制模塊的數據發送結束狀態;ASYN_READ, 標識套接口異步讀狀態;ASYN_WRITE,標識套接口異步寫狀態;ASYN_CLOSE,標識套接口異步關閉狀態;其中,控制模塊通過EV_SENDAGAIN和EV_VTYCLOSE消息控制套接口數據發送/接收過程,套接口通過ASYN_READ、ASYN_WRITE和ASYN_CLOSE通知控制模塊關于套接口的數據發送/接收狀態。
6.一種安全接入數據傳輸方法,其特征在于,該傳輸方法包括以下步驟1)各個任務向同一個數據傳輸緩沖區發送數據;2)數據傳輸緩沖區依接收順序暫存數據;3)控制模塊控制數據傳輸緩沖區中的數據向對應的套接口順序發送;4)套接口接收數據傳輸緩沖區的數據并不區分數據邊界將數據發送出去,且將數據的傳輸狀態通知控制模塊。
7.如權利要求6所述的安全接入數據傳輸方法,其特征在于,數據傳輸緩沖區設有以下指針開始指針,動態標識數據開始的位置;偏移指針,動態標識數據已發送的長度;結束指針,動態標識數據結束的位置,以實現數據傳輸緩沖區的數據依接收順序進行放置和發送。
8.如權利要求7所述的安全接入數據傳輸方法,其特征在于,步驟2)還包括以下步驟21)數據傳輸緩沖區為空時,進行初始狀態設置,開始指針、偏移指針以及結束指針指向數據傳輸緩沖區的開始位置;22)數據傳輸緩沖區接收數據時,結束指針移至所有數據長度尾部。
9.如權利要求8所述的安全接入數據傳輸方法,其特征在于,步驟3)還包括以下步驟31)數據傳輸緩沖區發送數據時,偏移指針標識已發送數據的長度;32)每次數據發送成功后,開始指針移至偏移指針的位置。33)根據任務的切換,重復步驟22)、31)、32),直至全部數據依次發送完成后,返回步驟21)。
10.如權利要求6至9任意一項所述的安全接入數據傳輸方法,其特征在于,該方法還包括在所要發送數據超過數據傳輸緩沖區剩余空間時,將數據傳輸緩沖區空間擴充一倍;當全部數據發送完成時,數據傳輸緩沖區恢復到原來大小。
11.如權利要求9所述的安全接入數據傳輸方法,其特征在于,開始指針超過數據傳輸緩沖區一半時,且要發送數據小于數據傳輸緩沖區的剩余空間時,暫存的數據移至數據傳輸緩沖區開始位置。
全文摘要
一種安全接入數據傳輸系統及方法,其中傳輸系統包括若干任務;數據傳輸緩沖區,暫存各個任務發送的數據,且各個任務共用一個數據傳輸緩沖區;控制模塊,控制數據傳輸緩沖區中數據的傳輸狀態;套接口,接收數據傳輸緩沖區的數據并發送出去,且將數據傳輸狀態通知控制模塊;其中,數據傳輸緩沖區的數據依接收順序進行放置和發送而套接口在發送數據時不區分數據邊界。相應地,該傳輸方法包括以下步驟各個任務向同一個數據傳輸緩沖區發送數據;數據傳輸緩沖區依接收順序暫存數據;控制模塊控制數據傳輸緩沖區中的數據向對應的套接口順序發送;套接口接收數據傳輸緩沖區的數據并不區分數據邊界將數據發送出去,且將數據的傳輸狀態通知控制模塊。
文檔編號H04L29/02GK1592186SQ0315615
公開日2005年3月9日 申請日期2003年8月29日 優先權日2003年8月29日
發明者金宏志, 楊銀柱, 白濤, 韓崎 申請人:華為技術有限公司