当前位置: 首页 > news >正文

HTTPS安全套接字层超文本传输协议

HTTPS安全套接字层超文本传输协议

  • HTTPS简介
  • HTTPS和HTTP的主要区别
  • 客户端在使用HTTPS方式与Web服务器通信时的步骤
  • SSL/TLS协议的加密(握手)过程
  • 为什么数据传输阶段使用对称加密
  • HTTPS 的优点
  • HTTPS 的缺点
  • HTTPS 的优化
    • 证书优化
    • 会话复用

HTTPS简介

HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTPS协议的主要作用有两点:第一点是建立一个信息安全通道,来保证数据传输的安全;另一点就是确认网站的真实性。

HTTPS和HTTP的主要区别

  1. https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
  3. http和https使用的端口也不一样,前者是80,后者是443。

客户端在使用HTTPS方式与Web服务器通信时的步骤

HTTPS的整体过程分为证书验证数据传输两阶段。
(1)证书验证阶段

  1. 浏览器发起 HTTPS 请求。
  2. 服务端返回 HTTPS 证书,证书中包含服务端的公钥
  3. 客户端验证证书是否合法,证书验证阶段采用非对阵加密,如果不合法则提示告警。

(2)数据传输阶段

  1. 当证书验证合法后,在本地生成随机数。
  2. 通过公钥加密随机数,并把加密后的随机数传输到服务端。
  3. 服务端通过私钥对随机数进行解密。
  4. 服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后发送给浏览器。
    在这里插入图片描述

SSL/TLS协议的加密(握手)过程

SSL/TLS的握手过程如下:

  1. 客户端给出支持SSL协议版本号,一个客户端随机数N1,客户端支持的加密方法等信息。
  2. 服务器收到信息后,确认双方使用的加密通信协议,并返回数字证书,一个服务器生成的随机数N2等信息。
  3. 客户端确认数字证书的有效性,然后生成一个新的随机数N3,然后使用数字证书中的公钥,加密这个随机数,发给服务器。
  4. 服务器使用自己的私钥,获取客户端发来的随机数N3,并通过约定的对称加密方法,使用前面三个随机数N1、N2、N3生成会话密钥,用来加密接下来的通信内容(对称加密)。

SSL/TSL通过四次握手,主要交换三个信息:

  1. 数字证书。
  2. 三个随机数。
  3. 加密通信协议。

为什么数据传输阶段使用对称加密

  • 非对称加密的加解密效率是非常低的,而 http 的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的。

  • 在 HTTPS 的场景中只有服务端保存了私钥,一对公私钥只能实现单向的加解密,所以HTTPS 中内容传输加密采取的是对称加密,而不是非对称加密。

HTTPS 的优点

HTTPS 协议是由SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 HTTP 协议安全,可防止数据在传输过程中不被窃取、修改,确保数据的完整性。

HTTPS 的缺点

  1. HTTPS协议握手阶段比较费时。
  2. HTTPS连接会增加数据开销。
  3. CA证书需要一定费用越高。

HTTPS 的优化

证书优化

证书优化主要有两方面:

  1. 证书传输:证书越小,传输的就越快。选择不同的加密方法,生成的证书的大小也不一样。
  2. 证书验证:证书验证有的时候不仅需要验证证书是否被篡改,还需要验证证书是否被吊销。之前是由CA机构维护一个吊销证书列表CRL,客户端每次要下载CRL,然后验证证书是否被吊销。随着吊销证书的增多,CRL的大小越来越大。也会导致HTTPS连接变慢。所以引入了OCSP,在线证书状态协议,客户端直接向CA机构发送证书编号,CA机构会返回证书的状态,不需要每次下载CRL,提高了效率。

会话复用

服务器为每个客户端在会话过程中设置一个SessionID,在会话期间将第一次生成的密钥分别保存在客户端和服务器,服务器通过SessionID来保存对应的密钥。当客户端再次连接的时候,直接传入SessionID,然后使用客户端的密钥进行加密。服务器收到后,通过SessionID获取对应的密钥,然后解密。这样客户端就可以复用一个密钥,不用每次都新生成密钥。

相关文章:

HTTPS安全套接字层超文本传输协议

HTTPS安全套接字层超文本传输协议 HTTPS简介HTTPS和HTTP的主要区别客户端在使用HTTPS方式与Web服务器通信时的步骤SSL/TLS协议的加密(握手)过程为什么数据传输阶段使用对称加密HTTPS 的优点HTTPS 的缺点HTTPS 的优化证书优化会话复用 HTTPS简介 HTTP协议…...

Jenkins发送的邮箱中没有带配置的压缩附件

【问题描述】:Jenkins中明明配置了邮箱发送时要带压缩附件,收到的邮箱中却没有附件内容 【问题定位】:压缩附件没有放在Jenkins工作空间下,所以发送的邮件并未发送附件 【解决办法】: 1)把压缩附件放到J…...

VU3-02

1.一些小点 1.1 npm i -D less (安装less) -D 安装依赖到开发环境中 只在开发中生效 正式打包的时候没有它,只在开发时有效 1.2 父子组件传参 (1)子组件中定义自己的参数和事件 父传子:const props defineProps(["item&quo…...

Linux新手小程序——进度条

前言 目录 前言 需要先了解 1.\r和\n 2.缓冲区 一.理解字符的含义: 学习c语言时,我们可以粗略把字符分为可显字符和控制字符. 在按回车换到下一行开始的操作时,实际上是进行了两个操作:1.让光标跳到下一行(只…...

会点C++还需要再学Python吗?

提到的C、数据结构与算法、操作系统、计算机网络和数据库技术等确实是计算机科学中非常重要的基础知识领域,对于软件开发和计算机工程师来说,它们是必备的核心知识。掌握这些知识对于开发高性能、可靠和安全的应用程序非常重要。Python作为一种脚本语言&…...

Ceph入门到精通- Linux 磁盘管理(block 与 inode)

1 硬盘 block 与 inode 详解 1.1 Sector(扇区)与 Block(块) 1) 硬盘的最小存储单位:sector(扇区),每个扇区储存 512 字节;操作系统会一次性连续读取多个…...

安全DNS,状态码,编码笔记整理

一 DNS DNS(Domain Name System)是互联网中用于将域名转换为IP地址的系统。 DNS的主要功能包括以下几个方面: 域名解析:DNS最主要的功能是将用户输入的域名解析为对应的IP地址。当用户在浏览器中输入一个域名时,操作…...

【业务功能篇53】Springboot 数据封装对象

Entity、VO、DTO解释 1)Entity:实体,与数据库的每一行数据打交道的,它的属性对应数据库每个字段 class User{ private Long idCard; private String name; private Date birthday; ...... } 对应数据库的id,name&…...

将Spring Session存储到Redis中实现持久化

文章目录 Session持久化1. 添加依赖2. 配置redis连接信息3. 存储和读取session从Redis Session持久化 1. 添加依赖 在项目中添加session依赖和redis依赖&#xff0c;如下所示&#xff1a; <dependency><groupId>org.springframework.boot</groupId><art…...

Git工作中常用命令

模拟一个git完整命令流程 有一个名为 example.txt 的文本文件 Hello, this is some text.1、做一些修改并查看文件的差异&#xff1a; # 修改 example.txt 文件 echo "Hello, this is some updated text." > example.txt查看文件的差异 git diffgit diff 命令…...

【电路效应】信号处理和通信系统模型中的模拟电路效应研究(SimulinkMatlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码、Simulink仿真实现 &#x1f4a5;1 概述 在信号处理和通信系统模型中&#xff0c;模拟电路效应研究是指考虑到实际电路的特性对信号进行建模和分析的过程。模拟电路效应…...

Spring 的元注解

一、元注解介绍 1.1.源码引入 1.2.元注解介绍 从上面的图片可知&#xff0c;Spring 有四个【负责注解其他注解】的元注解&#xff0c;分别是&#xff1a; Target&#xff1a;标识该注解可以用于标注哪些程序元素&#xff0c;比如类、方法、字段等。 Retention&#xff1a;标…...

【前缀和】238. 除自身以外数组的乘积

238. 除自身以外数组的乘积 解题思路 前缀与后缀的思路对于给定索引i&#xff0c;将它左边的所有数字乘积乘以右边所有数字的乘积初始化两个数组L R计算L[i] L[i - 1] * nums[i - 1] 也就是左侧所有数字的乘积计算R[i] R[i 1] * nums[i 1] 也就是右侧所有数字的成绩计算L…...

【Java中间件】RocketMQ

RocketMQ 一、MQ概述 Message Queue&#xff0c;是一种提供消息队列服务的中间件。提供了消息生产、存储、消费全过程API的软件系统。 MQ的作用 限流削峰&#xff1a;当用户发送超量请求时&#xff0c;将请求暂存&#xff0c;以便后期慢慢处理。如果不使用MQ暂存直接请求到…...

Megatron-LM、NVIDIA NeMo、MegaMolBART 、model_optim_rng.pt 文件是什么?

本文涉及以下几个概念&#xff0c;分别是&#xff1a; Megatron和Megatron-LM-v1.1.5-3D_parallelism NVIDIA NeMo Megatron和Megatron-LM-v1.1.5-3D_parallelism是什么&#xff1f; Megatron是由NVIDIA开发的一种用于训练大规模语言模型的开源框架。它旨在提供高效的分布式…...

2023年信息系统项目管理师如何报名?老司机告诉你

信息系统项目管理师是全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;简称软考&#xff09;项目之一&#xff0c;是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试&#xff0c;既属于国家职业资格考试&#xff0c;又是职称资…...

linux ubuntu系统 命令备忘

一、安装软件包的命令 1、验证安装包是否安装 dpkg -s <软件包名> 2、从软件源服务器获取最新的软件信息并缓存到本地 apt update 3、从本地仓库中对比系统中所有已安装的软件&#xff0c;如果有新版本的话则进行升级 apt upgrade 4、列出本地仓库中所有的软件包名…...

我的第一个flutter项目(Android Webview)

前言&#xff1a;flutter开发环境搭建Flutter的开发环境搭建-图解_☆七年的博客-CSDN博客 第一个flutter简单项目&#xff0c;内容是一个主界面&#xff0c;其中&#xff1a; 1.内容点击数字自增 2.跳转一个空页&#xff0c; 3.跳转一个WebView界面 其中涉及添加主键&#xf…...

微信机器人搭建详细教程

确保已安装Python和pip。 在D盘上创建名为wxbot的文件夹&#xff0c;并将你的Python机器人项目文件放在这个目录中。 在D盘的wxbot文件夹中打开命令行工具&#xff0c;并创建一个新的Python虚拟环境&#xff08;可选&#xff09;&#xff1a; python -m venv venv激活虚拟环…...

opengauss安装

opengauss安装 系统环境 Redhat版本&#xff1a;redhat7.6 虚拟机ip&#xff1a;192.168.5.144 Gauss版本&#xff1a;openGauss-5.0.0-CentOS-64bit-all.tar.gz 企业版 一&#xff0e;准备软硬件环境 1.1 安装依赖包 yum -y install bzip2 python3 libaio-devel flex bis…...

IPFS去中心化存储实战指南:黑马程序员音乐播放器项目开发完整教程

IPFS去中心化存储实战指南&#xff1a;黑马程序员音乐播放器项目开发完整教程 【免费下载链接】BlockChain 黑马程序员 120天全栈区块链开发 开源教程 项目地址: https://gitcode.com/gh_mirrors/blockchain95/BlockChain 你是否想过如何构建一个真正去中心化的音乐播放…...

Rydberg原子量子门实现原理与优化技术

1. Rydberg原子平台中的量子门实现基础1.1 Rydberg原子特性与量子计算优势Rydberg原子是指外层电子被激发到高主量子数能级的原子态&#xff0c;这类原子具有三个关键特性使其成为量子计算的理想平台&#xff1a;强偶极-偶极相互作用&#xff1a;当两个原子同时处于Rydberg态时…...

DeepSeek系统设计辅助:如何在48小时内完成可审计、可回滚、可压测的AI服务架构图?

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek系统设计辅助 DeepSeek系统设计辅助模块面向架构师与后端工程师&#xff0c;提供模型能力调用、接口契约生成、异步任务编排等核心支撑能力。该模块不替代人工设计决策&#xff0c;而是通过结构…...

别再用SonarQube凑数了!DeepSeek原生圈复杂度引擎的6大颠覆性能力(含GitHub私有部署密钥)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek圈复杂度分析的底层原理与范式革命 DeepSeek圈复杂度分析并非传统McCabe度量的简单复刻&#xff0c;而是基于控制流图&#xff08;CFG&#xff09;动态重构与语义感知路径裁剪的双重机制构建的新范式。…...

嵌入式快速原型开发:基于Sceptre平台与LPC2148的实战指南

1. 项目概述&#xff1a;Sceptre&#xff0c;一个被低估的嵌入式快速原型利器 在嵌入式开发的世界里&#xff0c;我们总是在寻找那个“刚刚好”的平台&#xff1a;它要足够强大&#xff0c;能跑复杂的算法&#xff1b;要足够小巧&#xff0c;能塞进各种外壳&#xff1b;要足够便…...

Gazebo Sim多旋翼控制:四轴飞行器动力学建模与PID调参

Gazebo Sim多旋翼控制&#xff1a;四轴飞行器动力学建模与PID调参 【免费下载链接】gz-sim Open source robotics simulator. The latest version of Gazebo. 项目地址: https://gitcode.com/gh_mirrors/gz/gz-sim Gazebo Sim是一款功能强大的开源机器人模拟器&#xff…...

php有什么版本,php语言有几个版本

php有什么版本,php语言有几个版本PHP的大版本主要分四支&#xff1a;PHP4/PHP5/PHP6/PHP7 其中&#xff0c;PHP4由于太古老、对OO支持不力已基本被淘汰&#xff0c;请无视PHP4。 PHP6由于基本没有生产线上的应用&#xff0c;还基本只是一款概念产品&#xff0c;很多功能已在PHP…...

通过Taotoken标准OpenAI协议实现分钟级集成现有代码

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过Taotoken标准OpenAI协议实现分钟级集成现有代码 1. 迁移背景与核心思路 许多开发团队在构建AI应用时&#xff0c;会直接使用O…...

机器学习与深度学习在社交媒体心理健康检测中的权衡与选择

1. 项目概述&#xff1a;当AI遇见心灵&#xff0c;社交媒体心理健康检测的技术十字路口在社交媒体成为我们数字生活延伸的今天&#xff0c;海量的文本数据无意中记录着用户的情感波动与心理状态。作为一名长期混迹于数据科学和自然语言处理&#xff08;NLP&#xff09;一线的从…...

基于Cynthion逆向USB协议,为DP100电源开发Linux控制软件

1. 项目概述&#xff1a;用Cynthion嗅探USB&#xff0c;为DP100电源打造Linux软件作为一名长期在Linux环境下折腾硬件和嵌入式开发的爱好者&#xff0c;我经常遇到一个头疼的问题&#xff1a;很多不错的桌面小设备&#xff0c;比如电源、示波器、逻辑分析仪&#xff0c;它们的官…...