基本介紹
- 中文名:外部數據流
- 外文名:External data flow
- 分類:計算機科學
面向虛擬桌面內外部數據流的安全控制機制,面向虛擬桌面數據流的安全控制機制,基於RDP協定的數據流控制實驗,數據流的無阻塞連線算法,數據流的簡介,基於mdjoin的外連策略,基於dd一join的外連策略,
面向虛擬桌面內外部數據流的安全控制機制
桌面虛擬化需要藉助虛擬桌面協定來實現內部套用數據和外部操作平台的數據互動。然而該類協定中的數據流控制機制並不完善,存在數據非法互動的安全隱患。為解決該問題,基於網關模式提出了一種面向虛擬桌面內外部數據流的安全控制機制SCIED。它不僅能對協定中的虛擬通道進行全面管控,避免修改協定和大量的終端,還具有較高的兼容性、拓展性。將它部署於網關並用於防護邊界攻擊,能顯著減少伺服器端的負載和安全隱患 。實驗表明,該SCIED能夠有效保證數據流的安全互動,並且對現有桌面會話的性能影響較小。
面向虛擬桌面數據流的安全控制機制
虛擬桌面內外部數據流的安全控制更適合在客戶端和伺服器端之間實施。桌面虛擬化需要藉助RDP、SPICE、ICA、PCoIP等協定實現用戶操作平台和虛擬桌面之間的數據互動,因此可以通過控制協定來完成它們之間的數據流安全控制。協定控制通常有兩種方式:1)修改傳輸協定本身;2)採用網關模式進行控制。通過研究發現,修改協定不僅工作量大,還存在標準兼容性問題;而網關模式更實際可行,它不僅能避免兼容性問題,還能滿足用戶對易用性 和拓展功能的需求。因此,在網關模式的基礎上,提出 了 一種面向虛擬桌面內外部數據流的安全控制機制———SCIED。
基於RDP協定的數據流控制實驗
為證明SCIED的可行性,以典型的虛擬桌面協定RDP為例展開了研究。在虛擬桌面連線時,當用戶終端設備需要“映射”到伺服器上時,RDP要為其建立不同的虛擬通道來實現不同類型的數據互動。通過分析RDP的開源客戶端Rdesktop可知,各種虛擬通道都有各自的通信機制,並通過不同ID號進行標識,例如默認情況下的設備重定向通道1005。通過分析它們的數據包結構,可以確定其中各欄位的含義,進而實現數據流控制。
以 RDP剪下板通道為例,將其部分數據包的解密、定位、控制過程記錄於日誌並截圖。其中標識#319為來自服務端剪下板通道的數據確認包,在定位到需要控制的數據通道類型時,程式根據控制策略“control policy is clipboard:c->s”,對該數據包特定標識符進行修改,並將傳遞數據段置空;最後通過剪下板通道的測試,證明了SCIED能夠有效完成數據流的單向傳輸控制。
在安全性方面,由於只有剪下板通道才支持數據的剪下、複製和貼上,用戶很難繞過此通道來實現數據的拷貝,除非通過第三方通道。然而SCIED具有明顯的白名單控制特徵,即只有符合訪問控制策略的數據流才被允許通過,進而將其他數據拷貝途徑進行了攔截。
數據流的無阻塞連線算法
對於記憶體有限時的數據流連線,可以藉助於外存達到無阻塞的得到精確結果的目的。在網路中斷時,將外存數據作為數據源,通過執行外部連線來保證結果產生的無阻塞性,這種漸進式的連線方式還可以得到精確結果集。
數據流的簡介
數據流不是存儲在磁碟上的有限數據集合,而是連續的、快速的、實時的,以流的形式出現的數據集合,這些數據一般規模龐大,增長迅速。數據流中一個數據單元是一個元組,元組的勢(個數)與本地處理系統的記憶體大小相比是無窮的。
數據流上與磁碟或記憶體上的數據的訪問方式不一樣。傳統的數據處理技術一般假設數據能夠裝載下全部數據,所以基於記憶體的資料庫管理技術難以用於數據流的管理。數據流與傳統存儲關係模型的區別體現是:
(1)流上的數據是線上到達本地,而不是事先存放在本地;
(2)系統一般不能保證抵達本地的元組的時間順序與實際處理順序相一致,無論是同一個數據流還是多個數據流之間都是如此;
(3)數據流的勢(元組個數)和到達本地的頻率可能遠遠超過了本地系統的處理能力,包括記憶體大小和CPU的計算能力;
(4)某個元組被捨棄或存檔,如果要啟用此歷史數據,使用代價將會很大,除非存放在記憶體中,但這要求記憶體很大或流的勢較小才行。
數據流的處理更多的是涉及多個數據流,多個數據流的查詢必然牽涉到流的連線問題。主要研究能夠得到精確解的連線算法,主要套用在有限數據流和推流環境中。有限數據流的求精確解的方法可以推廣到無限數據流中求近似精確解,所以此研究也可套用於無限數據流和拉數據流的連線。
基於mdjoin的外連策略
xinin將傳統基於記憶體的對稱哈希(Hash)連線方式拓展為基於內外存的三階段連線,其中外部連線只有記憶體與外存的md-join。XJoin開始在記憶體中進行內部連線(mm-jnin),這類似於對稱Hash連線,當記憶體滿時,數據源A和B所對應的最大Hash桶被交換到外存disk中。當兩個數據源同時阻塞時,xjoin將先前交換到disk中的A(B)數據塊(parition)調入記憶體與已駐留記憶體中對應的 B(A)數據執行外部連線操作,即基於md-join階段的外連策略,這樣使得產生結果無中斷,即結果產生的無阻塞。當所有數據流輸入結束時,由於mm-join和md-join階段可能只執行了部分數據的連線,所以XJoin最後需要進入清洗連線階段clean一uP,即將雙方disk中數據同時調入記憶體進行連線(dd-join)。XJoin為每一個tuPle設定時間戳ATS(數據到達記憶體時間),DTS(離開記憶體進入disk時間)的數據結構來判斷可能在內部連線時己出現的重複連線。為了減小外部連線可能導致的對網路反映的延遲,同時避免清洗階段重複在mdjnin階段已連線過的結果,XJoin採用為disk中每個segment設定結構為DTSlast(md-join時外存塊中參與連線的最後一個加tuple的DTS值),T(即ProbeTS,每次進入md-join的時間)的序列,這些序列表明所有DTS小於DTSlast的元組(tuPles)都在時刻T參與了外部連線。
基於dd一join的外連策略
HMJ是一種基於Hash歸併的等值連線算法,它借鑑了XJoin的Hash分組和PMJ[6l]在外部連線所採用的排序歸併的設計思想,其特點在於:
(1)外連策略沒有採用XJoin的md-join,而是dd-join作為無輸入源時的外部連線方式。這與PMJ類似,但HMJ考慮了網路的不穩定性,在網路阻塞時將兩數據源存放的外存數據對稱的調入記憶體連線(dd-join)。dd-join的外連方式對於記憶體遠小於數據流總量,外存數據量遠大於記憶體數據量的情況下,可以產生比基於md-join的策略更高的連線效率。
(2)在xjoin的最大塊交換策略的基礎上增加了平衡因子以防止不對稱數據流的數據傾斜導致的效率降低。例如,記憶體中只能保存10個元組,兩個數據流進行等值連線,其元組比率可以為5:5,8:2,9:1,產生結果數分別為25,16和9,顯然保留平衡元組5:5可以得到更多的結果數。
(3)交換方式引入PMJ的同步對稱式交換,所以避免連線結果重複的方法也使用了相同段號(segment)不做連線,只做不同段號間的連線,同時為降低隨機連線的時間,外連的同時將參與連線的segment進行排序歸併形成一個更長的新段,兩個新段編為同號,以防止下次dd-join時產生重複數據。
(4)HMJ參考了XJoin的交換數據時機與外連啟動時機:當記憶體滿時將部分數據交換到外存,以保證mm-join的產出連續性;當網路擁塞的時間間隔超過一定閡值啟動外部連線,以保證更快的產生結果。PMJ在每次記憶體裝滿時才做排序連線,排序後將記憶體數據一次性交換到外存,導致從記憶體空到裝滿數據這段時間的結果輸出的阻塞。