【网络】深入了解HTTPS协议

HTTPS协议:

HTTPS 也是⼀个应用层协议

HTTPS本质上就是在HTTP的基础上加了一个加密层,抛开加密之后,剩下的内容跟HTTP一样;

HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况.

例如 :下载一个“天天动听”

正常情况下:点击下载按钮, 就会弹出天天动听的下载链接.

但是可以会出现劫持的效果, 点击下载按钮, 就会弹出 QQ 浏览器的下载链接

由于我们通过网络传输的任何的数据包都会经过运营商的网络设备(路由器, 交换机等), 那么运营商的网络设备就可以解析出你传输的数据内容, 并进行篡改.

点击 "下载按钮", 其实就是在给服务器发送了一个 HTTP 请求, 获取到的 HTTP 响应其实就包含了该 APP 的下载链接. 运营商劫持之后, 就发现这个请求是要下载天天动听, 那么就⾃动的把交给用户的响应给篡改成 "QQ浏览器" 的下载地址了.

不止运营商可以劫持, 其他的黑客也可以用类似的手段进行劫持, 来窃取用户隐私信息, 或者篡改内容.


在互联网上, 明文传输是比较危险的事情!!!

HTTPS 就是在 HTTP 的基础上进行了加密, 进一步的来保证用户的信息安全~

 加密:

加密就是把 明文 (要传输的信息)进行一系列变换, 生成密文

解密就是把 密文 再进行一系列变换, 还原成明文

在这个加密和解密的过程中, 往往需要一个或者多个中间的数据, 辅助进行这个过程, 这样的数据称为密钥


 

HTTPS是如何进行加密的?

既然要保证数据安全, 就需要进行 "加密".

网络传输中不再直接传输明文了,而是加密之后的 "密文".

加密的放式有很多, 但是整体可以分成两大类: 对称加密 和 非对称加密

1.对称加密

加密和解密使用同一个密钥,加密和解密速度都比较快

由于黑客不知道密钥是啥, 因此就无法进行解密, 也就不知道请求的真实内容是啥了.

但同一时刻服务器给很多客户端服务,并且每个客户端的密钥得不同,对于服务器来讲,要维护每个客户端和密钥的关系,这是一个很麻烦的事情。

比较理想的做法:让双方约定这次密钥是什么

但是如果直接把密钥明文传输, 那么黑客也就能获得密钥了~~ 此时后续的加密操作就形同虚设了.


这时候就得引入非对称加密了

2.非对称加密

密钥是一对:分别是公钥和私钥 

公钥和私钥是配对的. 最大的缺点就是运算速度非常慢,比对称加密要慢很多.

 此时服务器会生成 ---> 公钥和私有 

当客户端连上服务器的时候,服务器就会把自己的公钥告诉客户端,私钥还是服务器自己持

接下来客户端拿到公钥,会生成对称公钥(每个客户端会生成自己的对称公钥,客户端之间不知道对方的对称公钥是什么),进行明文加密发送服务器

假设此时黑客拿到了客户端发送的密文,也破解不了,因为使用公钥加密,就得拿到对应的私钥来进行解密,黑客可以拿到公钥,但拿不到私钥,私钥在服务器这边。

但还没完.....

中间人攻击:

此时黑客可以冒充服务器,在双方获取信息

黑客在客户端这边当做服务器 在服务器那边当做客户端  存在一个中间人的角色

此时服务器有自己的一套 公钥pub 和 私钥pri

黑客也有自己的一套 公钥pub2 和私钥pri2

当客户端向服务器获取公钥的时候,黑客向正在的服务器要公钥

当服务器发送给了客户端,就会被黑客拦截,黑客将自己生成的公钥pub2发送给客户端

然后客户端将公钥pub2生成的对称公钥进行加密,发送数据给服务器,此时半路被黑客拦截,并且使用自己的私钥pri2进行解密,获取到了客户端真正的明文,并且自己再根据公钥pub伪造一些数据发生给服务器

这样一来服务器会以为是客户端在正常通信,而客户端也以为是在和服务器通信,实际上双方的通信都被攻击者控制。

 解法中间人攻击:

此时最重要的一点就是让客户端知道此时的公钥是不是服务器的;

引入第三方公证机构:
公证机构会对公钥进行“公证”,这样一来客户端看见了这个公钥被公证了,就可以认为它是合法的;证书就如身份证,证明服务端公钥的权威性

申请证书流程:

证书可以理解成是一个结构化的字符串, 里面包含了以下信息:

1)发证机构

2)证书的有效性

3)服务器的公钥

4)证书的所有者

5)持有者网站的主域名

6)数字签名

数字签名:针对前五项的内容进行校验和,再进行一下非对称加密

当客户端收到证书,就会对证书的合法性进行校验

  • 判定证书的有效期是否过期
  • 判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构).
  • 验证证书是否被篡改: 从系统中拿到该证书发布机构的公钥, 对签名解密, 得到⼀个 hash 值(称为数据摘要), 设为 hash1. 然后计算整个证书的 hash 值, 设为 hash2.对比 hash1 和 hash2 是否相等. 如果相等, 则说明证书是没有被篡改过的.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ基本介绍及简单上手

(一)什么是MQ MQ(message queue)本质上是队列,满足先入先出,只不过队列中存放的内容是消息而已,那什么是消息呢? 消息可以是字符串,json也可以是一些复杂对象 我们应用场…

sys.dm_exec_connections:查询与 SQL Server 实例建立的连接有关的信息以及每个连接的详细信息(客户端ip)

文章目录 引言I 基于dm_exec_connections查询客户端ip权限物理联接时间范围dm_exec_connections表see also: 监视SQL Server 内存使用量资源信号灯 DMV sys.dm_exec_query_resource_semaphores( 确定查询执行内存的等待)引言 查询历史数据库客户端ip应用场景: 安全分析缺乏…

vscode如何离线安装插件

在没有网络的时候,如果要安装插件,就会麻烦一些,需要通过离线安装的方式进行。下面记录如何在vscode离线安装插件。 一、下载离线插件 在一台能联网的电脑中,下载好离线插件,拷贝到无法联网的电脑上。等待安装。 vscode插件商店地址:https://marketplace.visualstudio.co…

基于ADAS 与关键点特征金字塔网络融合的3D LiDAR目标检测原理与算法实现

一、概述 3D LiDAR目标检测是一种在三维空间中识别和定位感兴趣目标的技术。在自动驾驶系统和先进的空间分析中,目标检测方法的不断演进至关重要。3D LiDAR目标检测作为一种变革性的技术,在环境感知方面提供了前所未有的准确性和深度信息. 在这里&…

【玩转全栈】----Django连接MySQL

阅前先赞,养好习惯! 目录 1、ORM框架介绍 选择建议 2、安装mysqlclient 3、创建数据库 4、修改settings,连接数据库 5、对数据库进行操作 创建表 删除表 添加数据 删除数据 修改(更新)数据: 获取数据 1、OR…

基于Android的疫苗预约系统

博主介绍:java高级开发,从事互联网行业多年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实…

基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化

基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化 1. 输出关键信息的代码示例 日志记录方法 使用以下代码记录连接池的关键信息,帮助分析连接池的状态和性能瓶颈: import org.apache.commons.pool2.impl.GenericO…

矩阵碰一碰发视频的视频剪辑功能源码搭建,支持OEM

在短视频创作与传播领域,矩阵碰一碰发视频结合视频剪辑功能,为用户带来了高效且富有创意的内容产出方式。这一功能允许用户通过碰一碰 NFC 设备触发视频分享,并在分享前对视频进行个性化剪辑。以下将详细阐述该功能的源码搭建过程。 一、技术…

CClinkIEfield Basic转Modbus TCP网关模块连接三菱FX5U PLC

捷米特JM-CCLKIE-TCP是自主研发的一款CCLINK IE FB从站功能的通讯网关。该产品主要功能是将各种 MODBUS-TCP 设备接入到 CCLINK IE FB网络中。 捷米特JM-CCLKIE-TCP网关连接到CCLINK IE FB总线中做为从站使用,连接到 MODBUS-TCP 总线中做为主站或从站使用。 为了打破…

农产品智慧物流系统

本文结尾处获取源码。 本文结尾处获取源码。 本文结尾处获取源码。 一、相关技术 后端:Java、JavaWeb / Springboot。前端:Vue、HTML / CSS / Javascript 等。数据库:MySQL 二、相关软件(列出的软件其一均可运行) I…

设计模式-结构型-桥接模式

1. 什么是桥接模式? 桥接模式(Bridge Pattern) 是一种结构型设计模式,它旨在将抽象部分与实现部分分离,使它们可以独立变化。通过这种方式,系统可以在抽象和实现两方面进行扩展,而无需相互影响…

后台管理系统引导功能的实现

引导是软件中经常见到的一个功能,无论是在后台项目还是前台或者是移动端项目中。 那么对于引导页而言,它是如何实现的呢?通常情况下引导页是通过 聚焦 的方式,高亮一块视图,然后通过文字解释的形式来告知用户该功能的作…

现场展示deepseek VS openAI o1模型大对比

DeepSeek-V3 模型的发布在 AI 领域引起了广泛关注。作为一款拥有 6850 亿参数的混合专家(MoE)语言模型,DeepSeek-V3 在多个基准测试中表现出色,甚至超越了一些闭源模型。其在 Aider 代码能力排行榜上的正确率达到 48.4%&#xff0…

Golang的并发编程框架比较

# Golang的并发编程框架比较 中的并发编程 在现代软件开发中,处理高并发的能力愈发重要。Golang作为一门支持并发编程的编程语言,提供了丰富的并发编程框架和工具,使得开发者能够更轻松地处理并发任务。本文将介绍Golang中几种常用的并发编程…

SSL,TLS协议分析

写在前面 工作中总是会接触到https协议,也知道其使用了ssl,tls协议。但对其细节并不是十分的清楚。所以,就希望通过这篇文章让自己和读者朋友们都能对这方面知识有更清晰的理解。 1:tls/ssl协议的工作原理 1.1:设计的…

网络安全-XSS跨站脚本攻击(基础篇)

漏洞扫描的原理 1.跨站脚本攻击介绍 xss跨站脚本攻击: xSS 全称(Cross site Scripting )跨站脚本攻击,是最常见的Web应用程序安全漏洞之一,位于OWASP top 10 2013/2017年度分别为第三名和第七名,XSS是指攻…

SpringBoot之核心配置

学习目标: 1.熟悉Spring Boot全局配置文件的使用 2.掌握Spring Boot配置文件属性值注入 3.熟悉Spring Boot自定义配置 4.掌握Profile多环境配置 5.了解随机值设置以及参数间引用 1.全局配置文件 Spring Boot使用 application.properties 或者application.yaml 的文…

【Word_笔记】Word的修订模式内容改为颜色标记

需求如下:请把修改后的部分直接在原文标出来,不要采用修订模式 步骤1:打开需要转换的word后,同时按住alt和F11 进入(Microsoft Visual Basic for Appliations) 步骤2:插入 ---- 模块 步骤3&…

【C++】字符数|组与字符串的深度解析

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯一、字符数组的基本概念1. 什么是字符数组?2. C语言风格字符串的特点 💯二、字符数组的初始化1. 字符串直接赋值2. 按字符逐个赋值数据对比示例 &am…

计算机网络——网络层—IP数据报与分片

一、IP 数据报的格式 • 一个 IP 数据报由首部和数据两部分组成。 • 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。 • 在首部的固定部分的后面是一些可选字段,其长度是可变的。 IP 数据报首部的固定部分中的各字段 版…