RDP协议详细解析

上传人:夏** 文档编号:545288486 上传时间:2022-07-27 格式:DOCX 页数:29 大小:51.74KB
返回 下载 相关 举报
RDP协议详细解析_第1页
第1页 / 共29页
RDP协议详细解析_第2页
第2页 / 共29页
RDP协议详细解析_第3页
第3页 / 共29页
RDP协议详细解析_第4页
第4页 / 共29页
RDP协议详细解析_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《RDP协议详细解析》由会员分享,可在线阅读,更多相关《RDP协议详细解析(29页珍藏版)》请在金锄头文库上搜索。

1、RDP协议详细解析RDP 协议详细解析(一)RDP 协议详细解析一前言 二概述 三同络层次 四各连接模块说明 五各功能模块说明 六 rdpwin 结构、数据流说明 七总结一、前言windows 从 NT 开始提供终端服务,它是微软买来的网络协议技 术(Citrix),服务器端要安装、配置,客户端要连接程序。终端服务使 任何一台有权限的终端机,用已知的账号登录服务器,可以使用账号 内的资源,包括软件,硬件资源;同时,在协议升级后,客户端连接 后可以使用本地的资源,包括本地打印机、声音本地回放,本地磁盘 资源和本地硬件接口。所有的计算都在服务器端进行,客户端只需要 处理网络连接、接收数据、界面显示

2、和设备数据输出。目前,关于RDP服务的linux客户端程序有win co nnect,li nrdp, rdesktop,前两个没有源码,但redsktop已经由原来的个人开发后公 开代码演变成现在的项目组开发。由于项目的跨平台开发需要,我们 在开始时进行过单独的协议破解工作,破解后,我们的程序在原来的 基础上扩展到,实现了16 位颜色,声音本地回放,映射本地打印机。 对于当前的终端机,这些功能完全满足需要,因此其他功能暂不便破 解实现。为防患 RDP 协议的升级而影响我们破解而得的终端程序的功 能性,需要对RDP协议的变化进行跟踪,对et-rdesktop进行优化、 完善。鉴于当前的工作安排

3、,将跟踪redsktop项目的进展,以提炼功 能为我所用和完善现有程序。二、概述1 版本功能说明:RDP 协议在终端服务推出后已有四个版本,、。一般来说, 版本是根据 windows 的版本确定的。从客户端的角度来说,版本间提供的功能差别不是很大,相对于 版本,它提供了用户带密码直接登录、客户端驱动器资源映射、客户 端音频回放、最高24 位色显示和符合 FIPS 加密级别连接。另外,从协议开始变提供的客户羰功能有:高、中、低三种数据 加密级别,客户端自定义初始登录环境,客户端打印机映射,客户端 LPT端口映射,客户端com端口映射,剪贴板映射,客户登录的个性 化设置(包括键盘、显示界面大小等)

4、。2、协议层次说明: 通过破解研究,我们掌握了 RDP 协议的基本层次结构。基本上, RDP 协议的每一层次上都标示出其层内的数据长度值。对于层次划分,主要是指 RDP 协议网络功能数据传送时通常都包 含的各层次,而对于各层次内所实现的单层次连接等功能将做为单独 的模块来进行阐述。网络连接层:RDP协议建立在TCP/IP协议之上,由于传输的数据 量比较大,因此在协议的底层首先定义一层网络连接层。它定义了一 个完事的 RDP 数据逻辑包,以避免由于网络包长度过长而被分割使数 据丢失。ISO数据层:在网络连接层之上是ISO数据层,它表示RDP数据 的正常连接通信。虚拟通道层:在ISO数据层之上,R

5、DP协议定义一个虚拟通道层, 用以拆分标示不同虚拟通道的数据,加快客户端处理速度,节省占用 网络接口的时间。加密解密层:在虚拟通道层之上, RDP 定义一个数据加密解密层。 此层用于对所有的功能数据进行加密、解密处理。功能数据层:在加密解密层之上是功能数据,画面信息,本地资 源转换,声音数据,打印数据等所有的功能数据信息都在此层进行处 理。另外,根据数据类型的不同,这些数据都有各自不同层次的分割,他们的内部层次结构将在各个功能模块中进行阐述。3 其它说明:本协议解析中所提到的各层次结构都是指RDP功能数据正常传送 时的各底层结构,在功能数据传送前的各层次的建立连接过程及其结 构、实现都归于模块

6、实现来进行说明。对于服务器端的各种设置以及个版本间的内部实现差异请看 RDP 帮助文档,以及rdpwi n开发文档。4 连接过程说明:1) 客户端连接服务器2) ISO数据层建立连接3) 发送初始协议相关信息,接收加密、解密密钥4) 虚拟通道申请5) 加密形式发送客户端系统信息,同时验证加密协议6) 平台软件证书验证7) 各功能建立连接,各功能数据传输,功能实现三、网络层次:1 网络连接层:在RDP协议网络实现连接中,本层的数据格式是固定的。内容协议版本号保留此逻辑包长度字节数112 值当前版本皆是30逻辑长度,从版本号开始到本包结束2 ISO数据层:在RDP功能数据网络传输中,本层的数据格式

7、是固定的。内容单层数据长度ISO包类型标志字节数111值2,从下字节开始计算OxfO,表示数据0x803 虚拟通道层:虚拟通道层用于在正常的网络连接数据之上,中个虚拟通道的功 能数据。此层次的连接另见初始连接模块与通道申请模块,在此只说 明正常数据连接时的层次结构。1) 结构信息: 内容类型虚拟通道个数虚拟通道号标志 字节数 1221值 0x64/0x680x00010x03eb 至 0x03ee0x70/0xf02) 类型说明:0x64 :客户端发送数据0x68 :客户端接收数据3) 用户号说明:本次连接的用户号,服务器发送的是0x0001 ;客户端所发送的值 是初始连接时请示通道后服务器同

8、意开通的虚拟个数。4) 虚拟通道号说明: 虚拟通道号是本层次以上所发送的功能数据所在的虚拟通道号,其由初始连接通道申请建立时确定。5) 标志说明:客户端发送的标志为0x70 ;服务器端发送的标志,当功能数据是 图像是(由通道号识别),其值为0x70,当功能数据是其它数据时,其值为0xf0。4 加密解密层: 加密解密层用于对网络连接中所发送、接收的数据进行加密、解 密。为保证数据和系统的安全性,对网络数据进行加密传输是比较常用且必然的, RDP 协议在此层对实际的功能数据进行加密。1) 结构信息: 内容单层及层上数据总长度加密标志未知标志数字签名字节数 1-2228值从下字节开始计算0x0800

9、0x1000/0x0203顺序取得2) 总长度说明:若长度大于0x7f,则长度以两字节表示,并按位与0X8000。这是由于版本升级赞成的格式不统一,长度不定,当前版本认为长度值不大于0x0fff(4095)因此只用长度值并按位与 0x8000 实现版本兼容,在版本升级后会以 0x8x 表示长度值 的字节数,其中8表示非1字节,x表示具体的字节个数。3) 加密标志说明:RDP 协议要求在正常的功能连接实现之前,首先 licence 认证, 其标志为 0x8xxx,且其后数据不同于正常功能数据传输式的加密层格式,可以视 licence 认证为加密解密层的建立连接过程。另外功能数据的加密、解密的密钥

10、是在初始连接 时获得的,而加密解密功能的实现由加密、解密模块阐述。4) 未知标志说明: 服务器端发送过来的未知数据有两种,目前不知其意,客户端在发送数据时将其置为 0x0000 值。5) 数字签名说明:对所有的加密数据在此放置 8 字节数字签名。其值由 RC4 会话键 值和功能数据经过 SHA 运算和 MD5 运算得到。5 功能数据层: 功能数据是客户端与服务器进行交互的真正数据。他们都有各自 固定格式,连接、控制方式,具体情况见各功能模块的说明。根据当前我们所掌握的信息,RDP协议将图像信息、声音信息、 设备信息、剪贴板内容都各自以单一的虚拟通道进行传送,而打印机 映射,磁盘映射,端口映射都

11、做为设备信息的内容进行处理。限于当 前左上角工作和项目工作的限度,设备信息中只考虑了打印机映射的 部分,对于打印机信息与其他的设备相关的信息没有进行有效隔离区 分,而本协议说明中相关的连接信息、数据传送都只认为是打印机映 射的内容。四、各连接模块说明:1 ISO连接模块:在客户端与服务器的网络套接口建立之后,需要首先建立RDP协 议底层连接,得到连接确认后才能正常通信。具体实现如下:1) 连接过程说明:初始连接时,在网络套接口 TCP 连接建立之后中,客户端首先进 行连接请求,当收到连接确认后表示网络连接层连接建立,随后开始 传送RDP数据。2) 连接请求通信数据:内容层内数据长度RDP包类型

12、未知1未知2标志其它 字节数11221不定值从下一字节开始计算 0xd0 或 0xe00x0000 另见 0x00 另见 3)RDP包类型说明:OxeO :客户端连接请求OxdO :服务器确认连接4) 未知数据2说明:0x0000 :客户端请求连接的值0x1234 :服务器确认请求的值5) 其它数据说明:win2003 客户 端在 请 求时附带了如下字符 “Cookie: mstshash=Administrator0x0d0x0e”, 目 前 不 知 其 意 。 其 中 Admi nistrator为自动登录名,当其长度超过12字节时,只保留前12 字节,其它字符都固定不变。2 协议信息初始

13、模块:当基本的 RDP 连接建立后,需要进行客户端与服务器的系统环境 RDP连接环境的信息交流与连接确认。2-1)发送包结构:内容字节数值ISO数据层及以下XX XXto 00 UL寸-c 00 SO 00寸益答策 T6U2XOCN8XO寸0X0寸趣申粵縊,他怎0祐怜-siiiNW (T叩CNCN0X0CN0X0CN0X0 世主X09S0-CH0CN寸0X044上吉趣申粵縊聊驭毀E coxomxo6o-c:爲莊、且 OOXOOOXOOOXOQnd-c:6no)您ffl toxomxo(s 毛00.爲卅徑 上上 X0-C0X000X0au 101 sms 寸 9h-p4xo-coxocnoxo

14、縊旺 上上 X0-C0X0寸 mHCNCNXO S3OCNXO 8 omxo 8H m - s粽曲 J 8 趣申、ns5+ f-siiiMW (0叩CN上xo-c矍 mCN墨口策 00 寸 oxoCNugop P2_eu 00 寸 oxoCNweuJOP 6u 三 .siiiw (HR f XX niNW f is xx niMW 上to to 00寸0 00寸。卜粵縊晟帐0祐 6U2XOCN8X0負 XOCN余下的数据长度20x8000|le ngth2未知数据2800 08 00 10 00 01 c0 00未知数据 3444 75 63 61 - “Duca”4组数据XX各功能模块连接信

15、息2-1-3-1:基本信息内容字节数值(反字节存储)标志 20xc001长度2这一组数据的长度Lice nee 版本 21,4,5; lincen ce 标志升级未知数据120x0008窗口宽度、高度4宽度,高度未知数据 240xca01 , 0xaa03Keylayout40x00000409客户端系统组件数4419,2195,2462客户端机器名322字节存储1个字符未知数据3120x04,0x00, 0x0c各四个字节 未知数据464都是0未知数据5801 ca 01 00 00 00 00 00 图形颜色位(最大值)224,16,15,8 未知数据6(疑最小位)207 00未知数据7401 00 00 00基本信息返回值多少且固定,认为在具体连接时有更多返回信息 加密信息需要取回加密级别与密钥;通道信息则返回基本图形信息的 通道号和其他虚拟通道号,需要另行申请。2-2-1-1)基本信息内容字节数值(字节反存)标志 20xc001本组信息长

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号