https实验

news/2024/12/26 0:41:42/文章来源:https://www.cnblogs.com/chchee-blog/p/18548485

https 实验


原理

image-20241114205445012


http

image-20241114205506510

https

https = http + SSL/TLS

SSL: Secure Socket Layer 安全套接层

TLS: Transport Layer Security 传输层安全协议


加密方式:

image-20241114205646125


PKI(公钥基础设施)

  • 使用公钥技术和数字签名来保证信息安全

  • 由公钥密码算法、数字证书(Certificate)、CA(Certificate Authority)证书颁发机构、RA(Registration Authority)证书注册机构组成


实现功能

  • 身份验证:证书

  • 数据完整性:完整性校验 MD5/SHA

  • 数据机密性:非对称加密算法

  • 操作不可否认/抵赖性:数字签名

image-20241114205904162

image-20241114205929568


image-20241114205949260


TLSv1.2

抓取与 ip地址为 117.85.69.236 的 TLSv1.2 报文

image-20241113213941425


交互流程



Client Hello


image-20241113214608378

客户端发起连接请求,向服务器发送 Client Hello 消息。此消息包含以下重要信息:

  • 客户端支持的协议版本:表明客户端支持 TLSv1.2 协议

  • 随机数(Client Random):一个 32 字节的随机值,用于后续密钥生成等操作。

  • 会话 ID(Session ID):如果客户端希望恢复之前的会话,则会包含相应的会话 ID;若为新会话,则会话 ID 为空(此处是新会话,故会话长度为空)

  • 密码套件列表(Cipher Suites):客户端支持的加密算法组合列表,例如 TLS_RSA_WITH_AES_128_CBC_SHA256 等,每个密码套件包含密钥交换算法、加密算法、消息认证码(MAC)算法等信息。


Server Hello

image-20241113214723758

服务器收到客户端的 Client Hello 消息后,选择合适的参数并回复 Server Hello 消息。该消息包含:

  • 选择的协议版本:确认使用 TLSv1.2 协议。
  • 随机数(Server Random):服务器生成的 32 字节随机值,与客户端随机数一起用于后续密钥生成。
  • 会话 ID:如果服务器同意恢复会话,则返回对应的会话 ID;若不同意或无法恢复,则返回一个新的会话 ID。(此处是新会话,故会话长度为空)
  • 选择的密码套件:从客户端提供的密码套件列表中选择一个服务器支持且认为安全合适的密码套件。

Certificate

image-20241113215006591

服务器向客户端发送数字证书,具体内容如下:

image-20241113215255782

证书中包含服务器的公钥等信息。客户端将使用此证书验证服务器的身份,确保通信对方是可信的


Server Key Exchange

image-20241113215504497

如果所选的密码套件需要服务器进行密钥交换,服务器会在此步骤发送密钥交换参数。这些参数用于与客户端共同生成会话密钥。例如,在 Diffie - Hellman 密钥交换中,服务器会发送 Diffie - Hellman 公钥等相关参数


Server Hello Done

image-20241113215616476

服务器发送 Server Hello Done 消息,表示服务器的 Hello 阶段结束,等待客户端的响应。


Client Key Exchanged

image-20241113215734773

根据服务器选择的密码套件和密钥交换方式,客户端进行相应的密钥交换操作。客户端根据服务器提供的 Diffie - Hellman 参数计算自己的 Diffie - Hellman 公钥并发送给服务器,同时结合服务器的 Diffie - Hellman 公钥计算出共享密钥


Change Cipher Spec消息

image-20241113215955081

客户端发送一个 Change Cipher Spec 消息,表示后续的通信将使用新协商的加密套件和密钥进行加密


TLSv1.3


抓取与 ip地址为 117.21.204.45 的 TLSv1.3 报文

image-20241113221441302


交互流程


Client Hello

image-20241113221652441

  • 在 TLSv1.3 中,可用的密码套件相比 TLSv1.2 有所减少,主要选择更安全和高效的算法。



Server Hello

image-20241113221806294

  • TLSv1.3 的密钥协商机制更简洁:服务器在回复中直接确定加密套件和其他相关参数,不再有单独的 Server Key Exchange 消息(在大多数情况下)
  • 优化了握手过程:服务器可以在回复中直接包含完成握手所需的所有信息(如选择的加密套件、证书、加密的扩展信息和 Finished 消息等
  • 服务器发送的加密扩展(Encrypted Extensions)消息对扩展信息进行加密,增强了安全性和隐私性。

比较



与 TLSv1.2 相比,TLSv1.3 的握手过程有以下显著特点:

  • 握手轮次减少

    TLSv1.3 通过优化握手协议,服务器可以在回复中直接包含完成握手所需的所有信息, 减少了握手过程中的往返次数,从而降低了延迟。

  • 安全性增强

    TLSv1.2 支持的密码套件种类较多,包括一些可能存在潜在安全风险的较旧算法组合,如基于早期 RSA 和一些较简单的哈希算法的密码套件。TLSv1.3 只支持更安全和现代的密码套件,如基于椭圆曲线密码学(ECC)和更安全的哈希算法的组合,淘汰了很多安全性较低的密码套件。

  • 隐私保护更好

    TLSv1.3 减少了握手过程中不必要的信息泄露,提高了通信双方的隐私保护。例如,TLSv1.3 在早期的握手阶段就开始对扩展等信息进行加密传输,防止攻击者获取这些信息来推测通信内容或进行其他恶意攻击。而TLSv1.2 一些扩展信息在握手前期可能不加密

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

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

相关文章

手把手教你搭建OpenScenario交通场景(上)

经纬恒润动力学仿真软件ModelBase基于OpenScenario1.0标准,开发内嵌了场景编辑器,可用于对仿真测试过程中的车辆行驶道路模型之外,继续进行周边动态场景的搭建。 OpenScenario是一种专为自动驾驶系统仿真测试设计的场景描述语言,它基于XML格式,旨在提供一个标准化、…

动态规划题单2

第一个题单编辑到后面实在是太卡了,就新开了一个,以后应该也会 \(30\) 题为一个题单。 31.CF1580D Subsequence CF1580D Subsequence 不会笛卡尔树,但是看到题解区的妙妙解法...... 题目的式子非常大便,我们考虑把它翻译成人话: 一个子序列的价值为: \(sum*m - 每两个数及他…

java 反序列化 cc7 复现

java 反序列化 cc7 复现复现环境:common-collections版本<=3.2.1,java版本随意.cc7就是cc6换了一个出口,整体的逻辑没有太大的变化.在Lazymap之前的还那样,我们从如何触发Lazymap的get方法开始看起. AbstractMap 看他的equals方法 public boolean equals(Object o) { if (o…

告别Print,使用IceCream进行高效的Python调试

在Python开发实践中,调试是一个不可或缺的环节。如果采用print()语句来追踪程序执行流程,可能会遇到一个持续出现的异常情况,并且经过多次代码审查问题的根源仍然难以确定,这可能是因为随着终端输出信息的不断增加,这种调试方式的局限性逐渐显现。本文将介绍IceCream库,这…

浏览器

控制台 查看继承的样式 Inherited(继承) from xxx: 继承样式来自于xxx <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><title>Document</title><style>.font {font-size: 12px;}.font2 {fon…

团队项目Scrum冲刺-day5

一、每天举行站立式会议 站立式会议照片一张昨天已完成的工作成员 任务陈国金 判题机架构设计凌枫 整合代码编辑器陈卓恒 更新题目界面部分完成谭立业 浏览题目页面部分完成廖俊龙 接口测试曾平凡 前端页面测试曾俊涛 判题服务薛秋昊 判题服务今天计划完成的工作成员 任务陈国金…

js原型链污染

js原型链污染 原理介绍 对于语句:object[a][b] = value 如果可以控制a、b、value的值,将a设置为__proto__,我们就可以给object对象的原型设置一个b属性,值为value。这样所有继承object对象原型的实例对象在本身不拥有b属性的情况下,都会拥有b属性,且值为value。 可以通过…

基于米尔NXP i.MX93开发板OpenCV的相机捕捉视频进行人脸检测

本篇测评由优秀测评者“eefocus_3914144”提供。 本文将介绍基于米尔电子MYD-LMX93开发板(米尔基于NXP i.MX93开发板)的基于OpenCV的人脸检测方案测试。 OpenCV提供了一个非常简单的接口,用于相机捕捉一个视频(我用的电脑内置摄像头)1、安装python3-opencvapt install pyth…

hbase-2.2.7分布式搭建文档(附详细操作步骤命令及相关操作截图)

hbase-2.2.7分布式搭建文档 一,搭建前准备 1.检查是否已经安装JDK 2.搭建hbase前需要先搭建好hadoop 3.检查zookeeper是否正常启动 #启动zookeeper(三台都要启动) zkServer.sh start#查看zookeeper状态(一个leader两个follower) zkServer.sh status4.到官网或国内镜像站下载hb…

自动化构建镜像:Packer

在介绍Packer之前,先来回顾一下未使用Packer时自定义虚拟机镜像的步骤。先在本地启动一个虚拟机,从安装系统开始,再进行自定义配置或应用安装,最后封装压缩成镜像,详细操作步骤可以参考我之前写的文档,制作Centos 7镜像:https://robin-2016.github.io/2019/04/08/制作op…

牛逼!字节 IDE 来了!!

前言 大家好,我是R哥。 最近做面试辅导,很多同学和我抱怨说,去 XX 公司面试,刚进公司,面试官还没有见着呢,就让我先手撕两道算法题,做不出来的话直接 GG。 没错,如果你想拿一份还不错的收入,想去中大厂,特别是字节、阿里、腾讯这些一线大厂,面试前都会有一次算法笔试…

虚拟串口工具和串口调试工具详解 - 附下载地址

简介 串口开发过程中, 一般需要以下工具用于开发和调试:虚拟串口工具简介 虚拟串口软件, 可以在系统中虚拟出串口, 这样开发人员可以在没有物理串口设备的情况下进行开发. 串口调试工具简介 串口调试工具主要用于给串口发送信息, 测试串口是否连通, 发送消息是否正常被接收等.本…