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

  • 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.mzph.cn/web/53880.shtml

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

相关文章

Miniforge详细安装教程(macOs和Windows)

(注:主要是解决商业应用anaconda收费问题,这是轻量级的代替,个人完全可以使用anaconda和miniconda) Miniforge 是一个轻量级的包管理器,类似于 Anaconda 和 Miniconda。它主要用于安装基于 conda 的 Python 环境,专注于…

Java新手指南:从菜鸟到编程大师的趣味之路-多态

这里是Themberfue 本章讲的是Java三大特性之一的多态,也是最后一个特性 多态概念 既然我们要学习多态,首先得知道这玩意儿到底是个什么东西? 通俗地说,多态其实就是多种形态。具体来说就是去完成某个行为,当不同的对象…

Secret Configmap

应用启动过程中可能需要一些敏感信息,比如访问数据库的用户名,密码或者秘钥,讲这些信息直接保存在容器镜像中显然不合适,kubernetes提供的解决方案就是Secret Secret会以密文的方式存储数据,避免了直接在配置文件中保…

tauri开发配置文件和文件夹访问路径问题

文件夹没权限:Unhandled Promise Rejection: path not allowed on the configured scope: /Users/song/Library/Application Support/com.pakeplus.app/assets/default.png 没有文件夹,需要先创建:Unhandled Promise Rejection: path: /Users…

数据结构与算法——Java实现 24.中缀表达式转后缀

目录 中缀表达式转后缀表达式 引言 思路 代码 正因为我有能力跨越,考验才会降临 —— 24.9.28 中缀表达式转后缀表达式 引言 Java中的编译器会将我们编写代码中的中缀表达式转化为后缀表达式,然后编译好输出程序 思路 遍历中缀表达式,如果遇…

javaweb之会话管理

Cookie: 1. Cookie 的定义 Cookie 是存储在用户浏览器中的小块数据,通常由服务器发送并存储,以便在用户浏览器和服务器之间保持会话状态。每次用户发送请求时,浏览器都会自动附带相应的 Cookie,允许服务器辨识用户。…

JSR 303学习

系列文章目录 JavaSE基础知识、数据类型学习万年历项目代码逻辑训练习题代码逻辑训练习题方法、数组学习图书管理系统项目面向对象编程:封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习集合学习IO流、多线程学习仓库管理系统JavaSE项目员工…

低代码可视化-UniApp二维码可视化-代码生成器

市面上提供了各种各样的二维码组件,做了一简单的uniapp二维码组件,二维码实现依赖davidshimjs/qrcodejs。 组件特点 跨浏览器支持:利用Canvas元素实现二维码的跨浏览器兼容性,兼容微信小程序、h5、app。 无依赖性:QR…

基于SpringBoot的新冠检测信息管理系统的设计与实现

文未可获取一份本项目的java源码和数据库参考。 国内外在该方向的研究现状及分析 新型冠状病毒肺炎疫情发生以来,中国政府采取积极的防控策略和措施,经过两个多月的不懈努力,有效控制了新发病例的増长,本地传播已经趋于完全控制…

JavaWeb图书借阅系统

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 spring-mybatis.xml3.5 spring-mvc.xml3.5 login.jsp 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优…

Elasticsearch学习笔记(1)

初识 Elasticsearch 认识和安装 Elasticsearch 是由 Elastic 公司开发的一套强大的搜索引擎技术,属于 Elastic 技术栈的一部分。完整的技术栈包括: Elasticsearch:用于数据存储、计算和搜索。Logstash/Beats:用于数据收集。Kib…

运放模块的选型参数

增益带宽积-----尤其重要: GWB 增益*带宽 压摆率: 高带宽的运放一般都是电流型运放: 注意压摆率计算公式里面的Vopp参数是放大后的电压最大值: 参数,布局一定参考数据手册!!!&…

关于AI副业,能说的都说了(最核心3大赛道、机会、方向)

AI,是生产力工具~ AI,也是焦虑和痛点 一直有小伙伴在问AI副业的事儿,之前也分享过很多。 但是,很多人对AI于副业的作用,过于表面和形式,所以,狂金来叨叨一下最核心的3大赛道,希望…

本地部署ollama大模型

方案一 1. 安装 Docker Ollama 大模型通常是通过 Docker 来运行的,因此首先需要确保本地已经安装了 Docker。如果还没有安装 Docker,可以参考以下安装步骤: Mac 用户: 前往 Docker 官网 下载并安装 Docker Desktop。安装完成后&…

【C语言】动态内存管理:malloc、calloc、realloc、free

本篇介绍一下C语言中的malloc/calloc/realloc。 使用这些函数需要包含头文件<stdlib.h>。malloc/calloc/realloc申请的空间都是 堆区的。 1.malloc和free 1.1 malloc C语言提供了一个动态内存开辟的函数malloc&#xff0c;函数原型如下。 void* malloc(size_t size);…

确保架构与业务一致性和合规性的成功转型之路:理论与实践的全面解读

架构与业务一致性在数字化转型中的重要性 在数字化转型的过程中&#xff0c;企业架构与业务的一致性是确保技术变革能够真正推动业务发展的关键因素之一。企业架构不仅要支持业务需求&#xff0c;还需要确保与行业标准、法律法规的合规性。通过将理论转化为实践&#xff0c;企…

渗透测试--文件上传常用绕过方式

文件上传常用绕过方式 1.前端代码&#xff0c;限制只允许上传图片。修改png为php即可绕过前端校验。 2.后端校验Content-Type 校验文件格式 前端修改&#xff0c;抓取上传数据包&#xff0c;并且修改 Content-Type 3.服务端检测&#xff08;目录路径检测&#xff09; 对目…

无人机专业实操重要性凸显,组装、调试、改装技术详解

无人机专业的实操性在当今技术飞速发展的背景下显得尤为重要&#xff0c;这不仅体现在无人机的日常应用上&#xff0c;还贯穿于无人机的组装、调试及改装等关键环节中。以下是对这些技术环节的详细解析&#xff1a; 一、无人机组装技术 无人机的组装是无人机技术的基础&#x…

mysql8.0安装后没有my.ini

今天安装mysql后想改一下配置文件看了一下安装路径 C:\Program Files\MySQL\MySQL Server 8.0 发现根本没有这个文件查看隐藏文件也没用查了之后才知道换地方了和原来的5.7不一样 新地址是C:\ProgramData\MySQL\MySQL Server 8.0 文件也是隐藏的记得改一下配置

Json-Rpc框架(Muduo库快速上手)

阅读导航 引言一、Muduo库简介二、Muduo库常见接口1. TcpServer类基础介绍2. EventLoop类基础介绍3. TcpConnection类基础介绍4. TcpClient类基础介绍5. Buffer类基础介绍 三、Muduo库使用示例⭕英译汉服务器⭕英译汉客户端 引言 在上一篇文章中&#xff0c;我们简要介绍了在项…