RDP协议流程详解(一)Connection Initiation阶段

        Connetction Initiation是RDP连接的第一个阶段,具体包含两个消息RDP Negotiation Request和RDP Negotiation Response,下面结合协议数据包详细分析。

        (1)RDP Negotiation Request

        从数据包可以清晰看到此时的协议栈依次是TCP-TPKT-X.224-RDP。其中TCP协议非常普遍,这里不详细说了。TPKT协议的全称是"Transport Protocol Data Unit",它在RDP中负责对RDP数据进行分割、传输和重组。TPKT协议主要用于在网络中可靠地传输RDP数据。TPKT协议具体定义了如何将RDP数据分割成数据单元(称为数据包)以及如何在网络中传输这些数据包。每个TPKT数据包包含一个特定的头部,用于标识包的开始和结束,并提供错误检测和纠正机制。TPKT头部中包含了数据包长度、版本号和其他必要的控制信息。TPKT示例如下,包含版本和长度。

        X.224协议是一种用于远程桌面协议(RDP)中的传输层协议。它提供了在网络中建立和管理RDP会话的功能,是RDP协议栈中的关键组成部分。X.224负责连接的建立和维护、可靠的数据传输、错误检测和纠正、会话管理以及安全性支持等功能。比如,X.224协议可以与其他安全协议结合使用,如SSL(Secure Sockets Layer)或TLS(Transport Layer Security),以提供传输层的数据加密和身份验证机制。通过这些安全协议,X.224可以确保RDP会话的机密性和保密性,示例如下。

        下面我们来重点分析RDP_NEG_REQ消息。

        RoutingToken/Cookie是可选字段,如果是RoutingToken则是用来作为负载均衡(load balancing),如果是Cookie则具体形式为“Cookie: mstshash=IDENTIFIER”,Token或Cookie只能是二者选一。

        Type取值为0x01,表明消息类型为TYPE_RDP_NEG_REQ。

        Flags字段包含8位,定义为0x01:RESTRICTED_ADMIN_MODE_REQUIRED (客户端要求为restricted admin mode,如果服务端支持则发送相应空证书),0x02:REDIRECTED_AUTHENTICATION_MODE_REQUIRED (客户端要求为Remote Credential Guard模式,如果服务器支持则基于CredSSP的重定向鉴别),0x08:CORRELATION_INFO_PRESENT(这里指示是否有rdpCorrelationInfo字段)。

        Length必须是0x0008,也就是8个字节。

        requestedProtocols指示支持的安全协议,长度为4字节。定义为0x00000000:PROTOCOL_RPD(支持标准RDP安全),0x00000001:PROTOCOL_SSL(支持TLS1.0,1.1或1.2),0x00000002:PROTOCOL_HYBRID(支持CredSSP,一般这里设置为1则TLS也设置为1),0x00000004:PROTOCOL_RDSTLS(支持RDSTLS协议),0x00000008:PROTOCOL_HYBRID_EX(一般这里设置为1则PROTOCOL_HYBRID也设置为1),0x00000010:PROTOCOL_RDSAAD(支持RDS AAD Auth安全)。

        (2)RDP Negotiation Response 

        TPKT和X.224层不具体说了,重点分析RDP_NEG_RSP。

        Type取值为0x02,表明消息类型为TYPE_RDP_NEG_RSP。

        Flags字段也是8位长度,指示的是服务端的协议支持能力。

        Length必须是0x0008,也就是8个字节。

        selectedProtocol指示协商使用的安全协议类型,这里是CredSSP类型0x0000002。其他定义如下。

取值说明
PROTOCOL_RDP 0x00000000standared RDP Security
PROTOCOL_SSL 0x00000001TLS1.0 1.1 1.2
PROTOCOL_HYBRID 0x00000002CredSSP
PROTOCOL_RDSTLS 0x00000004RDSTLS协议
PROTOCOL_HYBRID_EX 0x00000008Credential Security Support Provider protocol (CredSSP)基于
Early User Authorization Result PDU
PROTOCOL_RDSAAD 0x00000010
RDS AAD Auth安全协议

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148495.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

swift加载h5页面空白

swift加载h5页面空白 problem 背景 xcode swift 项目,WebView方式加载h5页面本地h5地址是:http://localhost:5173/ 浏览器打开正常 Swift 加载h5: 百度官网 加载正常本地h5页面 加载空白,没有报错 override func viewDidLoad…

应力分析概要

1.概述 应力分析是一种用于结构件寿命分析的方法,最早的应用场景可能是路桥,因为西方提前我们两百年进入大工业时代。许多人工建筑的寿命是有限的,这类实际需求催生出寿命预测和诊断。结构件的失效,最根本的因素是因为应力的作用…

2023(2024届)计算机保研经验分享,圆梦山东大学

前言: Hello大家好,我是Dream,好久不见啦!在这不见的半年多时间里我一直在全身心的投入保研之中,在写下这份面经时,真的是感慨颇多,思绪万千。站在这个时间点上,回首过去的几个月&am…

postgresql-物化视图

postgresql-物化视图 物化视图创建物化视图刷新物化视图修改物化视图删除物化视图 物化视图 创建物化视图 postgresql使用create materialized view 语句创建视图 create materialized view if not exists name as query [with [NO] data];-- 创建一个包含员工统计信息的物化…

ROS导航——环境感知(激光雷达)

下载相关驱动包(激光雷达厂商应该会给出) 编译后可能会出现部分错误,以下是部分情况: (1) 移植功能包后出现c文件无法找到头文件的情况:解决链接 修改代码:(以我的雷达为…

C++项目:【高并发内存池】

文章目录 一、项目介绍 二、什么是内存池 1.池化技术 2.内存池 3.内存池主要解决的问题 4.malloc 三、定长的内存池 四、高并发内存池整体框架设计 1.高并发内存池--thread cache 1.1申请内存: 1.2释放内存: 1.3用TLS实现thread cache无锁访…

【JavaEE】JavaScript webAPI的基本知识

JavaScript Web API 文章目录 JavaScript Web APIwebAPI背景DOMDOM树 获取元素querySelectorquerySelectorAll 事件初识键盘事件onkeydownonkeypressonkeyup 操作元素获取/修改元素内容1.innerText2.innerHTML 获取/修改元素属性获取/修改表单元素属性获取/修改样式属性行内样式…

扫雷小游戏(简单详细)(内附完整代码)

设计总体思路 实现游戏可以一直玩,先打印棋盘,玩家和电脑下棋,最后分出胜负。 如果编写较大的程序,我们可以分不同模块 例如这个扫雷,我们可以创建三个文件 分别为: game.h 函数的声明game.c 函数的…

三、互联网技术——IP子网划分

文章目录 一、IP地址基础1.1 IP地址分类1.2 网络掩码/子网掩码 二、子网划分VLSM2.1 为什么要进行子网划分2.2 怎么进行子网划分2.3 子网划分原理2.4 例题一2.5 例题二2.6 例题三2.6 例题四2.7 例题五2.8 例题六2.9 例题七2.10 例题八 三、无类域间路由CIDR3.1 例题一3.2 例题二…

Netron【.pt转.torchscript模型展示】

Netron是一个模型的展示工具,它有网页版和app版: 网页版:Netron app版:GitHub - lutzroeder/netron: Visualizer for neural network, deep learning, and machine learning models 直接用网页版吧,还不用安装。 它可…

《深度不确定条件下的决策:从理论到实践》PDF

制定未来计划时需要预测变化,尤其是制定长期计划或针对罕见事件的计划时。当这些变化存在高度不确定性的时候,这种预期就变得越来越困难。 今天给大家介绍的这本《深度不确定条件下的决策:从理论到实践》正是解决以上问题的良方。完整书籍文…

苹果ios系统IPA包企业签名手机下载应用可以有几种方式可以下载到手机?

一、App Store签名:这是最常见和推荐的苹果签名方式。用户可以通过苹果的官方应用商店App Store下载并安装经过苹果审核的应用程序。这种签名方式确保了应用程序的安全性和可靠性,因为App Store对应用进行了严格的审核和验证。 二、企业签名:…

【C++】多线程的学习笔记(2)——白话文版(bushi

目录 前一篇 本章内容提要 使用mutex锁的原因 mutex锁的概念 mutex的使用教程 锁的声明以及命名 mutex的加锁以及解锁 例子 结果 注意 mutex的其他方式的锁介绍 lock_guard 介绍 例子 运行结果 adopt_lock参数 unique_lock 介绍 try_to_lock defer_lock re…

3.物联网射频识别,(高频)RFID应用ISO14443-2协议,(校园卡)Mifare S50卡

问题: 1) 14443协议,RFID标签的默认通信速率是 106kbps,也可以通过协商,调整为 (fc/6413.56M/64)212、424、 848kbps。 2) 14443-3 A类卡,上电后,读写器发送REQA命令,标签…

【SpringBoot】配置文件详解

配置文件详解 一. 配置文件作用二. 配置文件的格式1. properties 配置文件说明①. properties 基本语法②. 读取配置⽂件③. properties 缺点 2. yml 配置⽂件说明①. yml 基本语法②. yml 使用进阶 3. properties VS yml 三. 设置不同环境的配置⽂件 一. 配置文件作用 整个项…

Youtube视频下载工具分享-油管视频,音乐,字幕下载方法汇总

YouTube视频下载方法简介 互联网上存在很多 YouTube 下载工具,但我们经常会发现自己收藏的工具没过多久就会失效,我们为大家整理的这几种方法,是存在时间较久并且亲测可用的。后续如果这些工具失效或者有更好的工具,我们也会分享…

NUWA论文阅读

论文链接:NUWA: Visual Synthesis Pre-training for Neural visUal World creAtion 文章目录 摘要引言相关工作视觉自回归模型视觉稀疏自注意 方法3D数据表征3D Nearby Self-Attention3D编码器-解码器训练目标 实验实现细节与SOTA比较T2I微调T2V微调V2V微调Sketch-t…

通过人才测评系统,对程序员岗位进行招聘测评

一、 程序员的基本工作内容 1、 负责项目组内的代码维护和更新迭代,保证研发效率,对于运营产品提出的需求应积极沟通并实现。 2、 规范相关开发文档等相关资料,对于有变更的代码和功能需求,要对开发文档做出相应的变更。 3、 作为…

ElementUI动态树,数据表格以及分页的实现

目录 前言 一. ElementUI动态树 二. 数据表格和分页 三. 后端代码 service层 controller层 前言 在上一篇博客中实现了左侧菜单栏,在此基础上将它变为动态的,即动态的展示数据库的数据。还有数据表格的实现以及分页。(纯代码分享&#…

​【Java】面向对象程序设计 课程笔记 面向对象基础

🚀Write In Front🚀 📝个人主页:令夏二十三 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:Java 💬总结:希望你看完之后,能对你有…