加密与安全_HTTPS TLS 1.2 连接(RSA 握手)的整个过程解读

news2024/11/23 9:20:56

文章目录

  • HTTPS 数据传输的安全性保障
  • SSL/TLS 作为混合加密系统的典范
  • HTTPS TLS 1.2 连接(RSA 握手)的整个过程
    • TLS 握手过程解析
      • 1. TCP 三次握手 (最顶部的黄色部分)
      • 2. TLS 握手阶段 (红色部分)
        • 2.1 Client Hello
        • 2.2 Server Hello
        • 2.3 CA 证书验证
        • 2.4 Client Key Exchange
      • 3. Change Cipher Spec
      • 4. Client Finished & Server Finished
      • 5. 加密数据传输阶段
    • 关键技术点
  • 客户端怎么验证 CA 证书
  • 小结

在这里插入图片描述


HTTPS 数据传输的安全性保障

  1. 机密性
    HTTPS通过SSL/TLS协议加密数据传输。具体流程如下:

    • 首先,客户端与服务器通过非对称加密(如RSA或ECDHE)协商出一个对称加密密钥。
    • 该密钥用于后续的通信数据加密,因为对称加密(如AES)相较于非对称加密更高效,尤其是处理大数据量时。非对称加密仅用于密钥交换,避免暴露实际的对称加密密钥。
  2. 完整性
    整性是通过散列算法(如SHA-256)保证的。SSL/TLS在发送数据之前会生成该数据的哈希值,并将其与数据一起发送。接收端收到数据后重新计算哈希值并与发送方的哈希值进行比较,若二者一致,说明数据未被篡改。否则,数据在传输过程中可能被篡改,通信会中断。

  3. 权威性
    数字证书用于验证服务器的身份。数字证书是由可信的证书颁发机构(CA)签发的,它包含服务器的公钥和身份信息。客户端通过验证服务器提供的证书,确保其通信对象是合法的服务器,而非冒充的中间人。证书的真实性由CA的签名保证,防止伪造和冒充。


SSL/TLS 作为混合加密系统的典范

SSL/TLS协议结合了对称加密和非对称加密的优势:

  • 使用非对称加密进行密钥交换,确保安全密钥协商。
  • 使用对称加密保护大规模数据传输的效率。
  • 通过散列算法保证数据的完整性,数字证书确保身份验证的权威性。

这个流程是现代加密系统设计的重要参考,尤其是在应用层数据加密系统中。如果要设计自己的加密系统,可以采用类似的方法:

  • 用非对称加密安全地交换对称加密密钥。
  • 用对称加密处理高效的数据加密。
  • 用散列算法和数字签名保护数据的完整性和权威性。

HTTPS TLS 1.2 连接(RSA 握手)的整个过程

在这里插入图片描述

TLS 握手过程解析

从图片来看,展示的是完整的 TLS握手流程,其中包括了CA 证书认证的相关部分。这个流程确保客户端和服务器之间的通信是安全的,并且数据传输过程中不会被篡改或监听。以下是对这个流程的详细解析:


1. TCP 三次握手 (最顶部的黄色部分)

  • SYN → SYN + ACK → ACK:这是标准的 TCP 三次握手,用于建立客户端与服务器之间的连接。在这个阶段,TLS 握手还未开始,主要是确保客户端和服务器能正常通信。

2. TLS 握手阶段 (红色部分)

2.1 Client Hello
  • 客户端向服务器发送 Client Hello 消息,其中包含:
    • 支持的协议版本(例如 TLS 1.2 或 1.3)
    • 客户端支持的加密套件(如 AES、RSA 等)
    • 一个随机数(用于后续生成密钥)
2.2 Server Hello
  • 服务器回应 Server Hello,其中包含:
    • 服务器选择的协议版本
    • 服务器选择的加密套件
    • 另一个随机数(和客户端的随机数组合用于生成对称密钥)
2.3 CA 证书验证
  • 服务器会发送自己的 数字证书,证书中包含服务器的公钥,并由一个可信的 CA(证书颁发机构) 签名。具体步骤如下:
    1. 服务器将自己的公钥发送给 CA。
    2. CA 使用其私钥对服务器的公钥进行签名,形成证书。
    3. 证书通过 中间证书根证书 的链式结构进行验证,确保服务器身份的合法性。
2.4 Client Key Exchange
  • 客户端生成一个 PreMasterKey,并使用服务器的公钥加密该密钥。
  • 客户端将加密的 PreMasterKey 发送给服务器,服务器使用自己的私钥解密后,双方可以生成相同的 MasterKey
  • 服务器和客户端根据之前的随机数和 PreMasterKey 生成对称密钥(MasterKey),用于后续的数据加密传输。

3. Change Cipher Spec

  • 客户端和服务器都发送 Change Cipher Spec 消息,表示后续的通信将采用对称加密,使用之前协商好的 MasterKey 进行加密。

4. Client Finished & Server Finished

  • Client Finished:客户端发送加密的 Finished 消息,表示握手阶段完成。
  • Server Finished:服务器也发送加密的 Finished 消息,表示握手完成。

5. 加密数据传输阶段

  • 一旦 TLS 握手完成,客户端和服务器使用生成的 MasterKey 进行对称加密通信,确保数据的机密性、完整性和不可抵赖性。

或者可以这么理解:

  1. 客户端告知服务端自己支持的密码套件(比如
    TLS_RSA_WITH_AES_256_GCM_SHA384,其中 RSA 是密钥交换的方式,
    AES_256_GCM 是加密算法,SHA384 是消息验证摘要算法),提供客户端随机数。
  2. 服务端应答选择的密码套件,提供服务端随机数。
  3. 服务端发送 CA 证书给客户端,客户端验证 CA 证书(后面详细说明)。
  4. 客户端生成 PreMasterKey,并使用非对称加密 + 公钥加密 PreMasterKey。
  5. 客户端把加密后的 PreMasterKey 传给服务端。
  6. 服务端使用非对称加密 + 私钥解密得到 PreMasterKey,并使用 PreMasterKey+ 两个
    随机数,生成 MasterKey。
  7. 客户端也使用 PreMasterKey+ 两个随机数生成 MasterKey。
  8. 客户端告知服务端之后将进行加密传输。
  9. 客户端使用 MasterKey 配合对称加密算法,进行对称加密测试。
  10. 服务端也使用 MasterKey 配合对称加密算法,进行对称加密测试

关键技术点

  • 非对称加密:用于安全地交换对称加密的密钥(PreMasterKey)。
  • 对称加密:用于加密实际的数据传输,因为其速度远快于非对称加密。
  • 数字证书:由 CA 签发,确保服务器的身份合法,防止中间人攻击。
  • 散列函数:确保数据的完整性,防止篡改。

客户端怎么验证 CA 证书

接下来,客户端和服务端的所有通信都是加密通信,并且数据通过签名确保无法篡改。那客户端怎么验证 CA 证书呢?

其实,CA 证书是一个证书链,可以看一下上图的左边部分:

在这里插入图片描述

  • 从服务端拿到的 CA 证书是用户证书,需要通过证书中的签发人信息找到上级中间证书,再往上找到根证书。

  • 根证书只有为数不多的权威机构才能生成,一般预置在 OS 中,根本无法伪造

  • 找到根证书后,提取其公钥来验证中间证书的签名,判断其权威性。

  • 最后再拿到中间证书的公钥,验证用户证书的签名。

这就验证了用户证书的合法性,然后再校验其有效期、域名等信息进一步验证有效性。


小结

TLS 通过巧妙的流程和算法搭配解决了传输安全问题:使用对称加密加密数据,使用非对称加密算法确保密钥无法被中间人解密;使用 CA 证书链认证,确保中间人无法伪造自己的证书和公钥

在这里插入图片描述

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

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

相关文章

[Python数据可视化]Plotly Express: 地图数据可视化的魅力

在数据分析和可视化的世界中,地图数据可视化是一个强大而直观的工具,它可以帮助我们更好地理解和解释地理数据。Python 的 Plotly Express 库提供了一个简单而强大的方式来创建各种地图。本文将通过一个简单的示例,展示如何使用 Plotly Expre…

【JavaWeb】利用IDEA2024+tomcat10配置web6.0版本搭建JavaWeb开发项目

之前写过一篇文章:《【JavaWeb】利用IntelliJ IDEA 2024.1.4 Tomcat10 搭建Java Web项目开发环境(图文超详细)》详细讲解了如何搭建JavaWeb项目的开发环境,里面默认使用的Web版本是4.0版本的。但在某些时候tomcat10可能无法运行we…

24年蓝桥杯及攻防世界赛题-MISC-1

2 What-is-this AZADI TOWER 3 Avatar 题目 一个恐怖份子上传了这张照片到社交网络。里面藏了什么信息?隐藏内容即flag 解题 ┌──(holyeyes㉿kali2023)-[~/Misc/tool-misc/outguess] └─$ outguess -r 035bfaa85410429495786d8ea6ecd296.jpg flag1.txt Rea…

iKuai使用及设置流程

iKuai使用及设置流程 iKuai安装步骤 一、配置主机 1.电脑连接ETH0网口 2.ETH1网口连接猫上面的千兆口 3.手动配置pc的IP地址和192.168.1.1./24在同一网段 3.浏览器输入192.168.1.1 admin admin 二、外网设置 1.直接联通电信网络设置 2.点击 网络设置-内外网设置-点击接…

LeetCode从入门到超凡(一)枚举算法

前言 大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年9月学习赛的LeetCode学习总结文档;本文主要讲解枚举算法。💕💕😊 一、基本概念 1.定义 定义&am…

记录小数点

记录data frame小数点后面省略掉0的问题 iloc得到的series .to_list() 0被省略掉 to_list() 可能会将浮点数转换为默认格式。先将数据转换为字符串以保留格式 df_2708.iloc[2,:].apply(lambda x: f{x:.3f}).to_list()自定义保留小数点后几位 def formatter(value):return &q…

【工作流集成】springboot+vue工作流审批系统(实际源码)

前言 activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求。 一、项目形式 springbootvueactiviti集成了activiti在线编辑器,流行的前后端…

Java 入门指南:JVM(Java虚拟机)垃圾回收机制 —— 垃圾回收算法

文章目录 垃圾回收机制垃圾判断算法引用计数法可达性分析算法虚拟机栈中的引用(方法的参数、局部变量等)本地方法栈中 JNI 的引用类静态变量运行时常量池中的常量 垃圾收集算法Mark-Sweep(标记-清除)算法Copying(标记-…

电脑右击没有txt文件

文本文档是一个好工具,小而快,比word快多,一般情况下,记录都会先用txt文本,但是今天发现右击菜单新建里面没有,怎么回事? 这个需要打开注册编辑表修改 一、打开注册编辑表 win R 输入regedi…

JetLinks物联网学习(前后端项目启动)

前后端项目启动 1、后端1.1 pgsql改mysql报错2、elasticSearch7.0版本以上_doc格式取消 2、前端 1、后端 环境准备: 1、window系统7,8,10 。 硬件资源最低要求4c8G,硬盘40G 2、JDK 1.8.0_2xx (需要小版本号大于200) 3、Maven3.6.3 4、Redis …

专题四_位运算( >> , << , , | , ^ )_算法详细总结

目录 位运算 常见位运算总结 1.基础位运算 2.给一个数 n ,确定它的二进制表示中的第 x 位是 0 还是 1 3.运算符的优先级 4.将一个数 n 的二进制表示的第 x 位修改成 1 5.将一个数n的二进制表示的第x位修改成0 6.位图的思想 7.提取一个数(n)二进…

解决使用阿里云DataV Geo在线地图路径访问403问题

文章目录 1. DataV Geo在线地图路径访问403问题2. 解决方法3. 重启生效 1. DataV Geo在线地图路径访问403问题 最近在写一个省市下钻的demo,用到的是 阿里云DataV Geo在线地图 去动态获取GeoJSON 省市的数据,如下代码 axios.get("https://geo.dat…

Ubuntu24.04 安装opencv4.10

Ubuntu24.04 安装opencv4.10 一、下载OpenCV二、更新系统,安装必要的包1、“E: unable to locate libjasper-dev"的解决方法2、没有公钥,无法验证下列签名 :NO_PUBKEY 的解决方法 三、配置,使用cmake工具1、新建build目录2、在build中&a…

计算机毕业设计 玩具租赁系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

智能 Uber 发票 PDF 合并工具

在现代商务出行中,尤其是在跨国出差中,处理和整合大量 Uber 发票已成为一项不小的挑战。手动整理和合并这些发票不仅耗时,还容易出错。作为开发者,为什么不开发一个自动化工具,将这些任务交给代码来完成呢?…

【AI学习笔记】初学机器学习西瓜书概要记录(一)机器学习基础知识篇

初学机器学习西瓜书的概要记录(一)机器学习基础知识篇(已完结) 初学机器学习西瓜书的概要记录(二)常用的机器学习方法篇(待更) 初学机器学习西瓜书的概要记录(三)进阶知识篇(待更) 文字公式撰写不易&#x…

基于代理的分布式身份管理方案

目的是使用分布式的联合计算分发去替换掉区块链中原有的类第三方可信中心的证书机制,更加去中心化。 GS-TBK Group Signatures with Time-bound Keys. CS-TBK 算法 Complete subtree With Time-bound Keys,该算法是用来辅助检测用户的签名是否有效&…

新手学习Python第十天-新手笔记(速学)

一、特殊方法和特殊属性 1.1 特殊属性 __dict__:获得类对象或实例对象所绑定的所有属性和方法的字典 1.2 特殊方法: 1.2.1 .__len__:通过重写__len__()方法,让内置函数len()的参数可以是自定义类型 长度 1.2.2 __add__():通过重写__add__()方法&…

ICMP

目录 1. 帧格式2. ICMPv4消息类型(Type = 0,Code = 0)回送应答 /(Type = 8,Code = 0)回送请求(Type = 3)目标不可达(Type = 5,Code = 1)重定向(Type = 11)ICMP超时(Type = 12)参数3. ICMPv6消息类型回见TCP/IP 对ICMP协议作介绍 ICMP(Internet Control Messag…

HTTP中的Cookie与Session

一、背景 HTTP协议是无状态无连接的。 无状态:服务器不会保存客户端历史请求记录,每一次请求都是全新的。 无连接:服务器应答后关闭连接,每次请求都是独立的。 无状态就导致服务器不认识每一个请求的客户端是否登陆过。 这时…