网络原理——HTTPS

HTTPS是 在HTTP的基础上,引入了一个加密层(SSL)。

1. 为什么需要HTTPS

在我们使用浏览器下载一些软件时,相信大家都遇到过这种情况:明明这个链接显示的是下载A软件,点击下载时就变成了B软件,这种情况是运营商劫持。

当我们点击下载时其实就是给服务器发送了一个HTTP请求,这个请求通过网络传输是就会通过很多设备,其中就有运营商的设备,服务器接收到请求之后,服务器会返回一个响应,这个响应就带有软件的下载链接,当这个响应经过运营商的设备时,运营商就可以把其中的链接篡改,于是就导致了我们得到的下载链接和想要下载的软件不一致。这就叫运营商劫持。

 不仅如此,我们的信息也可能会被泄露。

为了解决此类问题,加密就是一个很好的方法,于是诞生了HTTPS。

2. 什么是HTTPS?

HTTPS,全称为HyperText Transfer Protocol Secure,即超文本传输安全协议,是HTTP的安全版。通过使用SSL/TLS协议,HTTPS在传输层对数据进行加密,从而确保网络通信过程中的安全性和完整性。通常,HTTPS被用于安全地传输个人信息、金融交易数据、登录凭证等敏感信息,以防止被恶意攻击者窃取或篡改。

2.1 密钥

密钥在加密通信中扮演着至关重要的角色,它用于加密和解密数据,确保数据传输的安全性。在HTTPS等加密通信中,通常会涉及到两种类型的密钥:对称密钥和公钥/私钥(非对称密钥)。

  1. 对称密钥: 对称密钥是一种加密系统中使用的密钥,用于对数据进行加密和解密。在对称加密算法中,加密和解密使用相同的密钥,因此被称为对称密钥。对称加密算法的优点是加密解密速度快,缺点是密钥传输的安全性相对较低。在HTTPS握手过程中,通常会使用对称密钥来加密通信内容,以提高传输效率。

  2. 公钥/私钥(非对称密钥): 公钥/私钥是一对密钥,其中一个用于加密数据,一个用于解密数据。公钥可以自由发布给他人,而私钥则必须保密。非对称加密算法的优点是密钥传输的安全性高,缺点是加密解密速度较慢。在HTTPS的握手过程中,服务器会将其公钥发送给客户端,客户端使用该公钥加密生成的对称密钥,然后发送给服务器,从而建立安全连接。

3. HTTPS工作过程 

3.1 引入对称加密

对称加密时,客户端和服务器使用同一个密钥进行加密和解密,并且为了进一步提高安全,不同的客户端使用的密钥不相同,所以每个客户端连接到服务器时,都需要生成一个随机的密钥,并且把这个密钥告知给 服务器/客户端 ,但是由于密钥明文传输才能被对端理解,所以导致了黑客也能获取并理解密钥,一旦黑客拿到了密钥就意味着加密操作无意义了

 

3.2 引入非对称加密

使用非对称加密主要是用于对对称密钥进行加密。

服务器会把用于加密的公钥明文发送给客户端,客户端使用公钥对对称加密的密钥进行加密传输给服务器,由于黑客不持有私钥,所以无法的到对称密钥,后续客户端和服务器就可以使用对称加密来进行通信。

由于非对称加密的资源消耗要远大于对称加密,所以不太适合用于正式的数据交互加密。

3.3 中间人攻击 

在我们3.2 中的加密方式还存在一个漏洞 :

服务器可以创建出一对公钥和私钥,那么黑客同样可以,于是当服务器发送公钥给客户端时,黑客可以把公钥修改为自己生成的公钥,客户端接受到这个公钥,就会用这个公钥对生成的对称密钥加密,然后发送给服务器,黑客就可以知道对称密钥,为了不被服务器发现,黑客会对客户端发送的对称密钥用服务器生成的公钥重新加密,再发送给服务器,于是后续客户端和服务器使用对称密钥通信时,黑客也能获取到并解密出数据。

3.4 证书 

中间人攻击能成功的最关键的一点就是客户端无法验证接受到的公钥是不是服务器的,为了防止中间人攻击,于是引入了证书。证书是一个结构化的数据,里面包含了很多属性,例如服务器的主域名,公钥,证书有效期等,以字符串的形式储存。证书是搭建服务器的公司要从第三方的公证机构申请。证书中有一个属性叫“签名”,这个“签名”本质上是一个经过加密的校验和,公证机构再发布证书时,会给这个证书计算出校验和,然后用非对称密钥的私钥进行加密,这个私钥不会公布出去,对应的公钥会内置在常见的系统中。服务器给客户端发送公钥时,会直接把证书发送过去,客户端拿到证书后会对证书中的校验和用该公证机构的公钥进行解密,再通过证书中提供的校验和算法对证书再次计算校验和然后和解密的到的校验和进行对比,即可判断出证书是否被修改。如果被修改过,浏览器就会提示  “你访问的网站有风险”。

 

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

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

相关文章

北斗卫星赋能,宠物定位新篇章—追踪宠物,不再是难题

北斗卫星赋能,宠物定位新篇章—追踪宠物,不再是难题 随着社会的快速发展与科技的不断进步,人们的生活方式也在不断改变。宠物已经成为越来越多家庭的重要成员,在这个宠爱宠物的时代,如何确保宠物的安全,特…

javaEE图书馆自习室订座系统信用springmvc+springboot+mybatis

研究的内容是设计和实现图书馆自习室系统,便捷广大师生对自习室的使用,协助图书馆自习室管理。在设计过程中,系统的用户角色和权限分配如下: (1)馆长 用户管理:拥有自习室管理员、普通用户的所有…

什么是气象站?

气象站,这个名字听起来可能有些陌生,但我们的生活却与之息息相关。 一、气象站的定义与功能 气象站是一个专门用于观测和记录天气现象的设施。通过收集各种气象数据,如温度、湿度、风速、风向、气压、降水量等,气象站为天气预报、…

10 Redis之SB整合Redis+ 高并发问题 + 分布式锁

7. SB整合Redis Spring Boot 中可以直接使用 Jedis 实现对 Redis 的操作,但一般不这样用,而是使用 Redis操作模板 RedisTemplate 类的实例来操作 Redis。 RedisTemplate 类是一个对 Redis 进行操作的模板类。该模板类中具有很多方法,这些方…

计算机设计大赛 深度学习实现行人重识别 - python opencv yolo Reid

文章目录 0 前言1 课题背景2 效果展示3 行人检测4 行人重识别5 其他工具6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的行人重识别算法研究与实现 ** 该项目较为新颖,适合作为竞赛课题方向&#xff0c…

千兆单口(百兆双口)小体积 24PIN 网络变压器 H82409S 特点

Hqst华轩盛(石门盈盛)电子导读:千兆单口(百兆双口)小体积 24PIN 网络变压器 H82409S 特点 大家好,石门盈盛电子科技有限公司工程盛先生,今天向大家介绍石门盈盛电子科技有限公司的一款优势产品 - 千兆单口(…

查看cuda和cudnn版本

查看cuda 打开命令提示符(Windows键 R,然后输入cmd并回车)。输入nvcc --version或者nvcc -V来获取Cuda的版本信息。 查看cudnn版本 查看Cudnn版本: 进入Cuda安装目录,通常位于C:\Program Files\NVIDIA GPU Computi…

Linux系统---nginx(1)服务

目录 一.Nginx概述 1.定义 2.Nginx模块作用 (1)main模块 (2)stream服务模块 (3)邮件服务模块 (4)第三方模块 (5)events模块 (6&#xff0…

Mac专用投屏工具AirServer 7.27 for Mac中文版2024最新图文教程

Mac专用投屏工具AirServer 7.27 for Mac中文版是一款适用于Mac的投屏工具,可以将Mac屏幕快速投影到其他设备上,如电视、投影仪、平板等。 Mac专用投屏工具AirServer 7.27 for Mac中文版具有优秀的兼容性,可以与各种设备配合使用。无论是iPhon…

数据结构:树/二叉树

一、树的概念 逻辑结构:层次结构,一对多 节点:树中的一个数据元素根节点:树中的第一个节点,没有父节点孩子节点:该节点的直接下级节点父(亲)节点:该结点的直接上级节点兄弟节点:有…

用友U8 Cloud KeyWordReportQuery SQL注入漏洞复现

0x01 产品简介 用友U8 Cloud是用友推出的新一代云ERP,主要聚焦成长型、创新型企业,提供企业级云ERP整体解决方案 0x02 漏洞概述 用友U8 Cloud KeyWordReportQuery接口处存在SQL注入漏洞,未授权的攻击者可通过此漏洞获取数据库权限,从而盗取用户数据,造成用户信息泄露。…

D*算法超详解 (D星算法 / Dynamic A*算法/ Dstar算法)(死循环解决--跟其他资料不一样奥)

所需先验知识(没有先验知识可能会有大碍,了解的话会对D*的理解有帮助):A*算法/ Dijkstra算法 何为D*算法 Dijkstra算法是无启发的寻找图中两节点的最短连接路径的算法,A*算法则是在Dijkstra算法的基础上加入了启发函数…

MRP区域--库位用法

路径:SPRO->生产->物料需求计划->主数据->MRP 区域->定义工厂/存储地点的 MRP 范围 业务理解:通常情况下,是以整个工厂跑MRP。实际业务中存在部分特殊库位的库存不参与MRP运行,如报废仓库存。这时我们可以启用库…

程序员如何看待祖传代码

所谓的祖传的代码主要在存留很长时间的代码而且很可能里面很多隐患,通常状态下如果祖传的代码不是很复杂作为程序员来讲都会不自觉地给重构下,如果是非常复杂的模块即使程序员想重构但是考虑后续的影响可能是心有余而力不足,除非公司或者部门…

vue2.0及起步(前端面试知识积累)

1、需要了解的vue概要知识 1、vue是什么? 一套用于构建用户界面的渐进式JavaScript框架。 为什么vue被称为是渐进式JS框架? 答:Vue允许开发者在不同的项目中以渐进式的方式使用它,这种渐进式表现在以下的方面: 逐步采…

Jupyterlab 和 JupyternoteBook 修改默认路径

Jupyterlab 和 JupyternoteBook 修改默认路径 在使用 JupyterLab 或 Jupyter Notebook 进行数据分析、机器学习项目时,经常会遇到需要修改默认工作目录的需求。默认情况下,JupyterLab 和 Jupyter Notebook 会在启动时打开你的用户目录(例如&…

XSS原理和攻防

Cross Site Scripting:跨站脚本攻击 用户提交的数据中可以构造恶意代码,并且执行,从而实现窃取用户信息等攻击 攻击: 防御: 1.对输入进行过滤,对输出进行编码 2.cookie设置http-only

python:xml.etree.ElementTree 读 Freeplane.mm文件,生成测试案例.csv文件

Freeplane 是一款基于 Java 的开源软件,继承 Freemind 的思维导图工具软件,它扩展了知识管理功能,在 Freemind 上增加了一些额外的功能,比如数学公式、节点属性面板等。 强大的节点功能,不仅仅节点的种类很多&#xf…

一文详细拆解Agent工作原理

一、写在前面 Agent,中文译为“代理”或“智能体”,是一种能够在特定环境中自主行动、感知环境、做出决策并与其他Agent或人类进行交互的计算机程序或实体。它们具备自主性、反应性、社交性和适应性等特点,能够根据环境的变化调整自己的行为…

搜维尔科技:第九届元宇宙数字人大赛,参赛小组报名确认公告

各位参赛选手大家好,近期已收到新增报名信息如下表,请各位参赛选手确认,如果信息有误或信息不完整请电话联系赛务组工作人员进行更正 随着元宇宙时代的来临,数字人设计成为了创新前沿领域之一。为了提高大学生元宇宙虚拟人角色策划…