面试题解析系列:SSL、TLS协议格式、HTTPS通信过程、RDP SSL通信过程

HVV攻防实战:远控工具与Webshell流量特征深度解析与溯源 网络流量分析是网络安全防御与事件响应的核心技术,它通过对网络通信数据的深度解析,识别异常行为与潜在威胁。其原理在于,任何网络活动都会在协议层留下可观测的元数据和行为模式,即使通信内容被加密,其通信频率、数据包大小、TLS握手指纹等特征依然暴露了意图。这项技术的核心价值在于为被动防守的蓝队提供了最客观、难以篡改的“犯罪现场”记录,是从海量业务流量中精准定位攻击活动的关键。在HVV(护网行动)、应急响应及高级威胁狩猎等场景中,掌握主流攻击工具的流量特征成为溯源反制的必备技能。例如,Cobalt Strike等远 阅读详情
  1. SSL协议格式
    SSL(Secure socket Layer 安全套接层协议)指使用公钥和私钥技术组合的安全网络通讯协议。SSL协议是网景公司(Netscape)推出的基于WEB应用的安全协议,SSL协议指定了一种在应用程序协议(如Http、Telenet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证,主要用于提高应用程序之间数据的安全性,对传送的数据进行加密和隐藏,确保数据在传送中不被改变,即确保数据的完整性。
    SSL 以对称密码技术和公开密码技术相结合,可以实现如下三个通信目标:
  2. 秘密性: SSL客户机和服务器之间传送的数据都经过了加密处理,网络中的非法窃听者所获取的信息都将是无意义的密文信息
  3. 完整性: SSL利用密码算法和散列(HASH)函数,通过对传输信息特征值的提取来保证信息的完整性,确保要传输的信息全部到达目的地,可以避免服务器和客户机之间的信息受到破坏。
  4. 认证性:利用证书技术和可信的第三方认证,可以让客户机和服务器相互识别对方的身份。为了验证证书持有者是其合法用户(而不是冒名用户),SSL要求证书持有者在握手时相互交换数字证
    书,通过验证来保证对方身份的合法性。

SSL协议位于TCP/IP协议模型的网络层和应用层之间,使用TCP来提供一种可靠的端到端的安全服务,它是客户/服务器应用之间的通信不被攻击窃听,并且始终对服务器进行认证,还可以选择对客户进行认证。
SSL协议应用层来说是透明的,我们在编写基于SSL的HTTPS应用时,无论客户端还是服务端都不需要考虑SSL的存在
SSL协议在应用层通信之前就已经完成:

  1. 加密算法
  2. 通信密钥的协商
  3. 服务器认证工作
    在这里插入图片描述

在此之后,应用层协议所传送的数据都被加密。SSL实际上是共同工作的两层协议组成,如下图所示
在这里插入图片描述
对于这张SSL的层次结构图,我们需要牢记几点:

  1. 不管是TCP/IP的4层协议、还是ISO的7层协议,它们都是基于接口式的松耦合层次结构的协议,也就是说,只要遵循接口的格式,中间可以插入任意的协议层,这也是SSL能存在的理论依据
  2. 所谓的高层次、低层次,本质上是一种"数据封装"的概念,高层的数据封装进底层的数据包,然后加上某些数据包的头部,仅此而已
  3. “SSL握手协议”、“SSL改变密码格式协议”、“SSL警告协议”、"HTTP…"我们都可以看成是"SSL记录协议"封装的上层应用层数据,它们都基于下层的"SSL记录协议"进行封装,从而实现自己
    的功能。至于为什么会有这么多的上层协议,也很容易理解,因为SSL是一种加密目的的协议,这类密码学相关的协议在初始化(握手)的过程中普遍都需要一些列的交互过程,握手协议来支持

对总体的结构有了初步认识之后,我们接下来开始深入学习SSL的协议格式,在学习的过程中,我们应该时常回忆上面的这张整体结构图,理解它们的层次关系
0x1: SSL记录协议
我们知道,SSL记录协议是用来封装上层协议数据的协议,在SSL协议中,所有的传输数据都被封装在记录中。记录是由:

  1. 记录头 2) 长度不为0的记录数据

组成的。"所有"的SSL通信都使用SSL记录层,记录协议封装上层的:

  1. 握手协议 2) 警告协议 3) 改变密码格式协议 4) 应用数据协议

SSL记录协议定义了要传输数据的格式,它位于一些可靠的的传输协议之上(如TCP),用于各种更高层协议的封装,记录协议主要完成:

  1. 分组、组合 2) 压缩、解压缩 3) 以及消息认证 4) 加密传输等

在这里插入图片描述

  1. 分段 每个上层应用数据被分成2^14字节或更小的数据块 2. 压缩 压缩是可选的,并且是无损压缩,压缩后内容长度的增加不能超过1024字节。 3. 在压缩数据上计算消息认证MAC。 4. 对压缩数据及MAC进行加密。 5. 增加SSL记录头(内容类型、主版本、次版本、压缩长度)
    最终经过封装后的SSL记录数据包格式如下
    在这里插入图片描述

  2. 内容类型(8位):
    封装的高层协议

    1. 握手协议(handshake): 22
    2. 警告协议(alert): 21
    3. 改变密码格式协议(change_cipher_spec): 20
    4. 应用数据协议(application_data): 23
  3. 主要版本(8位):
    使用的SSL主要版本,目前的SSL版本是SSL v3,所以这个字段的值只有3这个值

  4. 次要版本(8位):
    使用的SSL次要版本。对于SSL v3.0,值为0。

  5. 数据包长度(16位):

    1. 明文数据包:
      这个字段表示的是明文数据以字节为单位的长度
    2. 压缩数据包
      这个字段表示的是压缩数据以字节为单位的长度
    3. 加密数据包
      这个字段表示的是加密数据以字节为单位的长度
  6. 记录数据
    这个区块封装了上层协议的数据

    1. 明文数据包:
      opaque fragment[SSLPlaintext.length];
    2. 压缩数据包
      opaque fragment[SSLCompressed.length];
    3. 加密数据包
      3.1) 流式(stream)加密: GenericStreamCipher
      3.1.1) opaque content[SSLCompressed.length];
      3.1.2) opaque MAC[CipherSpec.hash_size];
      3.2) 分组(block)加密: GenericBlockCipher
      3.2.1) opaque content[SSLCompressed.length];
      3.2.2) opaque MAC[CipherSpec.hash_size];
      3.2.3) uint8 padding[GenericBlockCipher.padding_length];
      3.2.4) uint8 padding_length;
  7. MAC(0、16、20位)
    0x2: SSL握手协议
    握手协议是客户机和服务器用SSL连接通信时使用的"第一个"子协议,握手协议包括客户机与服务器之间的一系列消息。
    SSL握手协议被封装在记录协议中,该协议允许服务器与客户机在应用程序传输和接收数据之前互相认证、协商加密算法和密钥。在初次建立SSL连接时,服务器与客户机交换一系列消息。
    这些消息交换能够实现如下操作:

  8. 客户机认证服务器 2. 协商客户机与服务器选择双方都支持的密码算法 3. 可选择的服务器认证客户 4. 使用公钥加密技术生成共享密钥 5. 建立加密SSL连接

SSL握手协议报文格式如下

在这里插入图片描述

  1. 类型(Type)(1字节):
    该字段指明使用的SSL握手协议报文类型
    1. hello_request:
    2. client_hello:
    3. server_hello:
    4. certificate:
    5. server_key_exchange:
    6. certificate_request:
    7. server_done:
    8. certificate_verify:
    9. client_key_exchange:
    10. finished:
  2. 长度(Length)(3字节):
    以字节为单位的报文长度。
  3. 内容(Content)(≥1字节):
    对应报文类型的的实际内容、参数
      1) hello_request: 空
    2) client_hello:
      2.1) 版本(ProtocolVersion)
      代表客户端可以支持的SSL最高版本号
      2.1.1) 主版本: 3
      2.1.2) 次版本: 0
      2.2) 随机数(Random)
      客户端产生的一个用于生成主密钥(master key)的32字节的随机数(主密钥由客户端和服务端的随机数共同生成)
      2.2.1) uint32 gmt_unix_time;
      2.2.2) opaque random_bytes[28];
      4+28=32字节
      2.3) 会话ID: opaque SessionID<0…32>;
      2.4) 密文族(加密套件):
      一个客户端可以支持的密码套件列表。这个列表会根据使用优先顺序排列,每个密码套件都指定了"密钥交换算法(Deffie-Hellman密钥交换算法、基于RSA的密钥交换和另一种实
    现在F
2026网络安全面试指南:渗透测试核心技能与高频考点解析 网络安全作为信息技术的基石,其核心在于构建纵深防御体系以应对不断演进的威胁。从基础网络协议安全到应用层漏洞原理,渗透测试通过模拟攻击来验证防御有效性,已成为企业安全评估的关键手段。在技术价值层面,掌握系统化的渗透测试方法论不仅能发现潜在风险,更能推动安全左移,提升整体安全水位。随着云原生、AI和供应链攻击成为热点,渗透测试的应用场景已从传统网络扩展到云环境、容器和AI模型安全。本文聚焦渗透测试面试中的高频考点,深入解析SQL注入绕过、SSRF利用等实战技术,并涵盖内网横向移动、权限维持等高级攻防技巧,为安全 阅读详情

相关推荐

网络安全实战成长指南:从零到就业的完整攻防技能体系构建

网络安全作为信息技术领域的关键分支,其核心在于理解系统与网络中的脆弱性并实施有效防护。从基础概念入手,掌握网络协议、操作系统原理及常见漏洞机制是构建安全能力的基石。在技术原理层面,深入理解SQL注入、XSS、CSRF等Web漏洞的成因与利用方式,能够帮助从业者建立系统的攻防思维。这些技能的价值在于将理论知识转化为实际的风险识别与处置能力,广泛应用于渗透测试、安全运维、应急响应等场景。本文聚焦于通过CTF竞赛、靶场实战及模拟护网演练,系统性地串联起漏洞挖掘、内网渗透、防御监测等关键技术环节,并特别融入了Bur

weixin_30855761的博客 410

Ubuntu零基础入门到精通【3.9讲】:Ubuntu 20.04 / 22.04 / 24.04 / 26.04 版本差异全解析

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 1659

医疗器械软件测试输出内容(1)

*单元测试(Unit Testing):**单元测试是软件测试的最底层,用于验证软件中最小的可测试单元——函数、方法或模块。系统测试是在集成测试之后进行的,它对整个系统进行测试,验证系统在不同部分集成在一起后是否满足需求和规格。: 集成测试是在单元测试之后进行的,它关注不同单元之间的交互和集成。对于不同安全级别的软件(IEC 62304 A类、B类、C类),在体系上要求输出的文件内容有所区别。**说明:**将集成测试和软件系统测试合并为一项单一的计划和一组活动是可接收的。

ct745363083的博客 1867

QuickFix Java 实战(一)协议解析、环境搭建与首个应用

本文是QuickFix Java实战系列的第一篇,详细介绍了FIX协议的核心原理与QuickFix/J引擎的实战应用。内容涵盖FIX协议的标签化通信机制、QuickFix/J库的两种下载方法、协议定义文件解析,并通过一个完整的模拟订单发送示例,指导读者快速搭建首个FIX应用环境,实现消息生成与会话通信。

dog123的博客 495

Tip-Adapter: Training-free Adaption of CLIP for Few-shot Classification

对比式视觉-语言预训练,也称为CLIP,通过大规模的图像-文本对来学习视觉表示,为zero-shot知识迁移展示了新的范式。它在下游任务上展现出令人瞩目的性能,实现了zeri-shot的知识迁移。为了进一步增强CLIP的适应能力,现有方法提出了微调可学习模块的方法,显著提高了少样本情况下的性能,但也引入了额外的训练时间和计算资源。在本文中,我们提出了一种适用于CLIP的无需训练的少样本分类方法,称为Tip-Adapter。

qq_43800752的博客 1163

(三)从零开始学习模糊控制——模糊决策

模糊控制之基础——模糊数学 (一)模糊数学——基本概念 (二)模糊数学——模糊关系 (三)模糊数学——模糊决策 文章目录模糊控制之基础——模糊数学前言一、模糊决策法1.最大值原理2.模糊排序2.模糊寻优总结 前言   模糊决策是指在模糊环境下进行决策的数学理论和方法。这类问题─般具有大系统特征,系统之间的关系十分复杂,存在不能准确赋值的变量,这些变量属于模糊因素,涉及到一定的主观因素,使得子系统之间、变量之间的关系不清晰,从而必须借助排序、模糊评判等方法来进行处理。 一、模糊决策

qq_43667552的博客 4750

Python通用编程规范-09 安全编程规范

1.9 安全编程规范 1.9.1 异常行为 1.9.1.1 禁止抑制或者忽略已检查异常 【说明】: 编码人员常常会通过一个空的或者无意义的catch块来抑制捕获的已检查异常。每一个catch块都应该确保程序只会在继续有效的情况下才会继续运行下去。因此,catch块必须要么从异常情况中恢复,要么重新抛出适合当前catch块上下文的另一个异常以允许最邻近的外层try-catch语句块来进行恢复工作。异常会打断应用原本预期的控制流程。例如,try块中位于异常发生点之后的任何表达式和语句都不会被执行。因此,异常必须

zhao12501的博客 2871

ICC2:postmask ECO参考脚本

更多学习内容请关注「拾陆楼」知识星球。

m0_61544122的博客 882

被Cloudflare 5秒盾虐了半个月,终用Python破局:UA+TLS指纹伪装实战,拦截率从42%干到3%

其实5秒盾不难破,难的是摸透它的检测逻辑——它不是“一刀切”地拦截爬虫,而是通过“多维度指纹校验”,判断你是不是“真实用户”。表层:UA和HTTP头要完整、匹配;中层:TLS指纹要和真实浏览器一致(核心);深层:行为要符合人类习惯(请求间隔、JS执行)。这套方案不仅适用于Cloudflare 5秒盾,很多基于指纹检测的反爬系统(如Akamai、Imperva)也适用。2025年的爬虫,早已不是“能爬就行”,而是“爬得稳、不被封”——指纹伪装就是实现这一点的关键。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1849

如何用DeepSeek写年底工作总结?——从入门到精通的全流程指南

AI助手DeepSeek如何高效撰写工作总结 摘要:本文介绍如何利用DeepSeek智能AI助手高效完成工作总结写作。工作总结具有结构固定、语言规范、内容数据化三大特性,而DeepSeek的结构化生成、风格适配、数据整合和迭代优化四大核心能力与之完美匹配。文章提出"准备-搭架-填充-优化"四步工作法:1)精准输入岗位、时间范围等核心信息;2)先搭建逻辑清晰的提纲框架;3)分模块填充具体内容,突出数据与案例;4)通过风格润色和细节补充进行优化。通过合理运用多模态材料处理能力,DeepSee

通俗易懂学IT 287

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: 面试题系列:TCP UDP HTTP 的关系和区别
下一篇: Java面试之战:基础第一回合
程序员plus
博客等级 码龄8年 41粉丝 151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值