複製鏈接
請複製以下鏈接發送給好友

RDP協議

鎖定
RDP,遠程顯示協議(Remote Display Protocol )簡稱RDP。該協議是對國際電信聯盟發佈的一個國際標準的多通道會議協議T.120 的一個擴展。
中文名
遠程顯示協議
外文名
RDP(Remote Display Protocol)
別    名
多通道會議協議T.120
簡    介
提供了客户和服務器之間的連接
傳輸方式
TCP/IP
基    礎
T.120
重要功能
映像會話

RDP協議協議簡介

提供了客户和服務器之間的連接。Shadow Session,映像會話是MetaFrame 的一項重要功能,用户可以通過這項功能映像其它用户的桌面。管理員可以通過映像會話指導用户使用軟件和系統,也可以用來監視客户機運行情況。MetaFrame 的這一項功能可以實現一對一、一對多多對多等功能。Windows 2000 Server 中的遠程管理功能與此相似,但只能實現一對一。RDP是微軟終端服務應用的協議,服務端基於win2000/winNT。協議基於T.128(T.120協議族)提供多通道通信。在客户端支持多種資源緩衝和圖片數據的壓縮處理,運用RDP協議的虛擬化平台VMware、Microsoft等 [1] 
協議通過TCP/IP進行數據傳輸,在實際數據前進行了ISO/MCS/SEC三層的包裝,ISO/MCS兩層為多點併發式通信提供了可靠的傳輸保障,SEC層提供對RDP詳細數據的加解密處理。各層在數據的前端加有一段數據頭,用於對數據、傳輸的控制。具體的數據控制由STREAM類型的結構體管理(這種方法很靈活、易懂,可作為網絡編程者的參考),不同的數據頭由不同的結構成員管理,層次清晰。RDP協議將終端虛擬環境中的設備映射為不同的數據包,將對設備的輸入輸出(I/O)重定向到網絡句柄中,不同設備的數據按不同格式組織成為小的數據包,並將多個小數據包封裝成為一個大的數據包通過網絡一次性發出,對方將網絡解收的數據進行分解成為小包並按設備數據的類型進行不同的處理。
windows從NT開始提供終端服務,它是微軟買來的網絡協議技術(Citrix),服務器端要安裝、配置,客户端要連接程序。終端服務使任何一台有權限的終端機,用已知的賬號登錄服務器,可以使用賬號內的資源,包括軟件,硬件資源;同時,在協議升級後,客户端連接後可以使用本地的資源,包括本地打印機、聲音本地回放,本地磁盤資源和本地硬件接口。所有的計算都在服務器端進行,客户端只需要處理網絡連接、接收數據、界面顯示和設備數據輸出

RDP協議協議功能

1 版本功能説明: RDP協議在終端服務推出後已有四個版本,4.0、5.0、5.1、5.2。一般來説,版本是根據windows的版本確定的。 從客户端的角度來説,5.X版本間提供的功能差別不是很大,相對於4.0版本,它提供了用户帶密碼直接登錄、客户端驅動器資源映射、客户端音頻回放、最高24位色顯示和符合FIPS加密級別連接。 另外,從4.0協議開始變提供的客户端功能有:高、中、低三種數據加密級別,客户端自定義初始登錄環境,客户端打印機映射,客户端LPT端口映射,客户端com端口映射,剪貼板映射,客户登錄的個性化設置(包括鍵盤、顯示界面大小等)。
2、協議層次説明:  通過破解研究,我們掌握了RDP協議的基本層次結構。基本上,RDP協議的每一層次上都標示出其層內的數據長度值。  對於層次劃分,主要是指RDP協議網絡功能數據傳送時通常都包含的各層次,而對於各層次內所實現的單層次連接等功能將作為單獨的模塊來進行闡述。  網絡連接層:RDP協議建立在TCP/IP協議之上,由於傳輸的數據量比較大,因此在協議的底層首先定義一層網絡連接層。它定義了一個完整的RDP數據邏輯包,以避免由於網絡包長度過長而被分割使數據丟失。  ISO數據層:在網絡連接層之上是ISO數據層,它表示RDP數據的正常連接通信。  虛擬通道層:在ISO數據層之上,RDP協議定義一個虛擬通道層,用以拆分標示不同虛擬通道的數據,加快客户端處理速度,節省佔用網絡接口的時間。  加密解密層:在虛擬通道層之上,RDP定義一個數據加密解密層。此層用於對所有的功能數據進行加密、解密處理。  功能數據層:在加密解密層之上是功能數據,畫面信息,本地資源轉換,聲音數據,打印數據等所有的功能數據信息都在此層進行處理。另外,根據數據類型的不同,這些數據都有各自不同層次的分割,他們的內部層次結構將在各個功能模塊中進行闡述。
3 其它説明:  本協議解析中所提到的各層次結構都是指RDP功能數據正常傳送時的各底層結構,在功能數據傳送前的各層次的建立連接過程及其結構、實現都歸於模塊實現來進行説明。  對於服務器端的各種設置以及個版本間的內部實現差異請看RDP幫助文檔,以及rdpwin開發文檔。
4 連接過程説明:
1) 客户端連接服務器
2) ISO數據層建立連接
3) 發送初始協議相關信息,接收加密、解密密鑰
4) 虛擬通道申請
5) 加密形式發送客户端系統信息,同時驗證加密協議
6) 平台軟件證書驗證
7) 各功能建立連接,各功能數據傳輸,功能實現

RDP協議網絡層次

1 網絡連接層:  在RDP協議網絡實現連接中,本層的數據格式是固定的。  內容 協議版本號 保留 此邏輯包長度
字節數 1 1 2
值 當前版本皆是3 0 邏輯長度,從版本號開始到本包結束
2 ISO數據層:  在RDP功能數據網絡傳輸中,本層的數據格式是固定的。  內容 單層數據長度 ISO包類型 標誌
字節數 1 1 1
值 2,從下字節開始計算 0xf0,表示數據 0x80
3 虛擬通道層:  虛擬通道層用於在正常的網絡連接數據之上,中個虛擬通道的功能數據。此層次的連接另見初始連接模塊與通道申請模塊,在此只説明正常數據連接時的層次結構
1) 結構信息:  內容 類型 虛擬通道個數 虛擬通道號 標誌
字節數 1 2 2 1
值 0x64/0x68 0x0001 0x03eb至0x03ee 0x70/0xf0
2) 類型説明:  0x64:客户端發送數據  0x68:客户端接收數據  3) 用户號説明:  本次連接的用户號,服務器發送的是0x0001;客户端所發送的值是初始連接時請示通道後服務器同意開通的虛擬個數。  4) 虛擬通道號説明:  虛擬通道號是本層次以上所發送的功能數據所在的虛擬通道號,其由初始連接通道申請建立時確定。  5) 標誌説明:  客户端發送的標誌為0x70;服務器端發送的標誌,當功能數據是圖像是(由通道號識別),其值為0x70,當功能數據是其它數據時,其值為0xf0。
4 加密解密層:  加密解密層用於對網絡連接中所發送、接收的數據進行加密、解密。為保證數據和系統的安全性,對網絡數據進行加密傳輸是比較常用且必然的,RDP協議在此層對實際的功能數據進行加密。
1) 結構信息:  內容 單層及層上數據總長度 加密標誌 未知標誌數字簽名
字節數 1-2 2 2 8
值 從下字節開始計算 0x0800 0x1000/0x0203 順序取得
2) 總長度説明:  若長度大於0x7f,則長度以兩字節表示,並按位與0x8000。這是由於版本升級贊成的格式不統一,長度不定,當前版本認為長度值不大於0x0fff(4095)因此只用長度值並按位與0x8000實現版本兼容,在版本升級後會以0x8x表示長度值的字節數,其中8表示非1字節,x表示具體的字節個數。
3) 加密標誌説明:  RDP協議要求在正常的功能連接實現之前,首先licence認證,其標誌為0x8xxx,且其後數據不同於正常功能數據傳輸式的加密層格式,可以視licence認證為加密解密層的建立連接過程。另外功能數據的加密、解密的密鑰是在初始連接時獲得的,而加密解密功能的實現由加密、解密模塊闡述。
4) 未知標誌説明:  服務器端發送過來的未知數據有兩種,目前不知其意,客户端在發送數據時將其置為0x0000值。
5) 數字簽名説明:  對所有的加密數據在此放置8字節數字簽名。其值由RC4會話鍵值和功能數據經過SHA運算和MD5運算得到。
5 功能數據層:  功能數據是客户端與服務器進行交互的真正數據。他們都有各自固定格式,連接、控制方式,具體情況見各功能模塊的説明。  根據當前我們所掌握的信息,RDP協議將圖像信息、聲音信息、設備信息、剪貼板內容都各自以單一的虛擬通道進行傳送,而打印機映射,磁盤映射,端口映射都做為設備信息的內容進行處理。限於當前左上角工作和項目工作的限度,設備信息中只考慮了打印機映射的部分,對於打印機信息與其他的設備相關的信息沒有進行有效隔離區分,而本協議説明中相關的連接信息、數據傳送都只認為是打印機映射的內容
參考資料