【学习笔记】TLS/SSL握手之Records

news2024/9/24 5:18:01

  • TLS / SSL会话是由记录(Records)所组成,有4种records
    • Handshake
    • Alert
    • Change Cipher Spec
    • Application Data
  • Handshake和Alert Records被分为子类型(Subtypes):
    • Handshake:Client Hello
    • Handshake:Server Hello
    • Alert:Handshake Failure
    • 还有许多其他子类型...本篇不一一赘述
  • SSL会话举例
    • 下图即TLS会话 -- 一连串不同记录的交换
      • 我们知道,TLS会话的前2个消息是Client Hello和Server Hello;Client Hello是一个握手协议记录,子类型是Client Hello
      • 这些记录的目的:防止TLS会话受限于IP数据大小
      • 有时,一条记录通过单个数据包发送
      • 有时,多条记录也会通过单个数据包发送
      • 也有些时候,一条记录会通过多个数据包发送
      • 记录不受 IP 数据包(datagram)长度的限制
  • 每个记录都以记录头(Record Header)开始
    • 分为4个部分:Record Type;SSLTLS Version;Record Length;Record Payload
    • Record Type
      • Change Cipher Spec
        • 表明发送者已准备好安全通话所需的一切
          • 密码套件和会话密钥
        • 由Client和Server独立发送
          • CCS之后发送的所有内容都是加密的
        • Record Payload是二进制的0000 0001
          • Length:1 byte
      • Alert - 一方发送给另一方的信息通知
        • 内容包含2部分:
          • Severity(严重程度)
            • 01 - Waring - 会话继续
            • 02 - Fatal(致命的) - 会话终止
          • Description
            • 通知详细信息(描述是什么导致了警告)
        • Sent unencrypted
          • 除非是在Change Cipher Spec之后发送(因为每个在CCS之后发送的都是加密的)
      • Handshake
        • TLS/SSL协议信息
        • 归类为子类型(Sub-Types)
        • Sent unencrypted
          • 除了特定领域的特定子类型
      • Application Data
        • 由 SSL/TLS 保护的批量数据
          • Confidentiality → Symmetric Encryption
          • Integrity,Authentication → M.A.C
        • TLS计算出下面两者的M.A.C
          • Record Header,记录头
          • Plaintext Data,明文数据
        • TLS加密
          • Plaintext Data
          • MAC Digest
          • Padding
        • 发生的顺序非常重要,TLS执行MAC-then-Encrypt,先计算MAC,再加密
          • 解密后才能检测到密文的修改
          • No Integrity on Padding(因为Padding不包含在MAC内,意味着别人可以修改数据包里的Padding,而接收方检测不到)
          • 产生不良后果
            • Solution:Use AEAD Ciphers(其好处是同时做MAC和加密)
        • AEAD (Authentication Encryption with Associated Data)do MAC-and-Encrypt
          • AE = Integrity + Encryption
          • AD = Integrity Only
        • TLS 1.3 - all ciphers are AEAD
        • TLS 1.2 - AES-GCM,ChaCha20-Ploy1305
        • AEAD是未来

参考文献

1、网站:Practical Networking.net:Practical TLS

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

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

相关文章

新手教学系列——Nginx静态文件访问优化,提升加载速度与用户体验

在构建现代Web应用时,静态文件的优化往往被初学者所忽略。静态文件,包括CSS样式、JavaScript脚本和图片等,是构建用户界面的关键元素。然而,随着应用规模的扩大,静态文件的数量和大小也随之增加,页面加载速度因此可能受到严重影响,进而影响用户体验。为了应对这种情况,…

01——springboot2基础知识

一、springboot的快速入门 springboot的作用:用来简化Spring应用的初始搭建以及开发过程 一、idea创建springboot工程——运行的步骤 选择Spring Initializr进行创建(现在基本上没有jdk1.8选了,都是jdk17了,需要的话&#xff0c…

使用四叉树碰撞的游戏 显微镜RPG

实现四叉树碰撞检测 //author bilibili 民用级脑的研发记录 // 开发环境 小熊猫c 2.25.1 raylib 版本 4.5 // 2024-7-14 // AABB 碰撞检测 在拖拽,绘制,放大缩小中 // 2024-7-20 // 直线改每帧打印一个点,生长的直线,直线炮弹 /…

Matplotlib-数据可视化详解

1. 数据可视化简介 可视化介绍 数据可视化是指直观展现数据,它是数据处理过程的一部分。 把数值绘制出来更方便比较。借助数据可视化,能更直观地理解数据,这是直接查看数据表做不到的 数据可视化有助于揭示数据中隐藏的模式,数据…

HDFS分布式文件系统01-HDFS架构与SHELL操作

HDFS分布式文件系统 学习目标第一课时知识点1-文件系统的分类单机文件系统网络文件系统分布式文件系统 知识点2-HDFS架构知识点3-HDFS的特点知识点4-HDFS的文件读写流程知识点5-HDFS的健壮性 第二课时知识点1-HDFS的Shell介绍HDFS Shell的语法格式如下。HDFS Shell客户端命令中…

三篇文章速通JavaSE到SpringBoot框架 上 JavaSE基础语法

文章目录 前置环境变量基本数据类型引用数据类型标识符运算符 流程控制三种基本流程结构 方法方法声明格式方法的调用方式方法的重载方法的重写重载和重写的区别 数组数组的特点 面向对象基本概念类的编写和对象的创建与使用类的编写对象的创建和使用 构造器构造器特点 封装以属…

55 循环神经网络RNN的实现_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录循环神经网络的从零开始实现[**独热编码**]初始化模型参数循环神经网络模型预测[**梯度裁剪**]训练小结练习 循环神经网络的从零开始实现 import math import torch from torch import nn from torch.nn import functional as F from d2l i…

玄机靶场--蚁剑流量

木马的连接密码是多少 黑客执行的第一个命令是什么 id 黑客读取了哪个文件的内容,提交文件绝对路径 /etc/passwd 黑客上传了什么文件到服务器,提交文件名 黑客上传的文件内容是什么 黑客下载了哪个文件,提交文件绝对路径 蚁剑流量特征总结 …

proteus仿真(2)

一,配置编译器 可以在proteus中写stm32的代码,需要先检查是否配置了keil的编译器 选择调试,编译器配置 stm32为ARM版本 51为8051版本 如果已经配置了keil—arm,但是打开没有,可以选择检查当前,刷新一下。 …

【有啥问啥】多臂老虎机(Multi-Armed Bandit,MAB)算法详解

多臂老虎机(Multi-Armed Bandit,MAB)算法详解 1. 引言 多臂老虎机(Multi-Armed Bandit,MAB)问题源自概率论和决策论,是一个经典的决策优化问题。最早提出的形式是赌场中的老虎机问题&#xff…

若依vue3.0表格的增删改查文件封装

一、因若依生成的文件没进行封装,维护起来比较麻烦。所以自己简单的进行封装了一下 gitee代码(文件)地址:https://gitee.com/liu_yu_ting09/ruo_yi.git 二、封装的方法(下面绿色按钮进行全局封装一个JeecgListMixin.js…

【解密 Kotlin 扩展函数】扩展函数的底层原理(十八)

导读大纲 1.1.1 从 Java 调用扩展函数1.1.2 扩展函数无法重载 1.1.1 从 Java 调用扩展函数 在编译器底层下,扩展函数是一种静态方法,它接受接收器对象作为第一个参数 调用它不涉及创建适配器对象或任何其他运行时开销这使得从 Java 使用扩展函数变得非常简单 调用静态方法并传…

《深度学习》卷积神经网络CNN 实现手写数字识别

目录 一、卷积神经网络CNN 1、什么是CNN 2、核心 3、构造 二、案例实现 1、下载训练集、测试集 代码实现如下: 2、展示部分图片 运行结果: 3、图片打包 运行结果: 4、判断当前使用的CPU还是GPU 5、定义卷积神经网络 运行结果&a…

吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)2.3-2.4

目录 第四门课 卷积神经网络(Convolutional Neural Networks)第二周 深度卷积网络:实例探究(Deep convolutional models: case studies)2.3 残差网络(ResNets)(Residual Networks (ResNets))2.4 残差网络为什么有用&am…

武汉正向科技 格雷母线检测方式 :车检,地检

正向科技|格雷母线原理运用-车检,地检 地上检测方式 地址编码器和天线箱安装在移动站上,通过天线箱发射地址信号,地址解码器安装在固定站(地面)上,在固定站完成地址检测。 车上检测方式 地址编码器安装在…

【OpenCV】场景中人的识别与前端计数

1.OpenCV代码设计讲解 突发奇想,搞个摄像头,识别一下实验室里面有几个人,计数一下(最终代码是累加计数,没有优化),拿OpenCV来玩一玩 首先,还是优先启动电脑摄像头,本项…

react hooks--useCallback

概述 useCallback缓存的是一个函数,主要用于性能优化!!! 基本用法 如何进行性能的优化呢? useCallback会返回一个函数的 memoized(记忆的) 值;在依赖不变的情况下,多次定义的时候,返回的值是…

MySQL record 07 part

索引 注意,是排序,有序就会加快查找的速度。 优势: 劣势 索引会单独占用存储空间索引虽然可以提高排序和查找的速度,但同时也会降低更新、删除、新增数据的速度,因为MySQL此时既要更改表,也要维护更改表后…

ubuntu安装无线网卡驱动(非虚拟机版)

本文不是基于虚拟机,是双系统 太夸张了 实验室居然没网线 只有一个师兄留下来的无线网卡 装完了ubuntu结果没网 make都用不了 然后搜了下大概发现是没有预装gcc和make 参考如下 https://zhuanlan.zhihu.com/p/466440088 https://wwsk.lanzouj.com/iAj4t2ao46zc…

电脑配置不够,想玩老头环可以上ToDesk云电脑体验一下

最近,《艾尔登法环》游戏更新了好多新东西,让玩家特别兴奋。比如说,FromSoftware工作室一直在改进游戏,让游戏运行得更稳、更流畅。而且,《艾尔登法环:黄金树幽影》这个扩展包一出,游戏世界变得…