网络原理——HTTPS

news/发布时间2024/5/14 6:18:50

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://www.bcls.cn/CDjf/7643.shtml

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

相关文章

idea设置

全局配置 proxy 一般公司网络是局域网络,需要配置proxy keyMap 设置自己习惯的快捷键模式 auto Import 自动添加和移除jar包 console 编码格式 (有可能会造成乱码) java编码格式设置 Tab size File and Code Templates 进公司必设 File…

【xss跨站漏洞】xss漏洞利用工具beef的安装

安装环境 阿里云服务器,centos8.2系统,docker docker安装 前提用root用户 安装docker yum install docker 重启docker systemctl restart docker beef安装 安装beef docker pull janes/beef 绑定到3000端口 docker run --rm -p 3000:3000 janes/beef …

sql-labs25-28a

一、环境 网上都有不过多阐述 二、sql-labs第25关 它说你的OR和and属于它,那就是过滤了OR和and 注入尝试 不用or和and进行爆破注入,很明显是有注入点的 ?id-1 union select 1,2,3-- 查看数据库 ok,此道题算是解了但是如果我们用了and了呢 ?id-1 and updatex…

设计模式四-简单工厂模式

请直接看原文:设计模式(四)简单工厂模式 | BATcoder - 刘望舒 (liuwangshu.cn) --------------------------------------------------------------------------------------------------------------------------- 1.简单工厂模式简介 定义 简单工厂…

2024国际生物发酵产品与技术展-五星自动化控制

参展企业介绍 山东五星自动化控制技术有限公司是一家专业从事工业自动化系统工程设计、安装、调试及技术服务的高新技术性企业,位于孔孟之乡、运河之都——济宁市。 我公司拥有优秀的PLC、DCS、SIS自控系统和MES数字化工厂的设计、制作和安装、调试能力&#xff0…

LeetCode--72

72. 编辑距离 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符删除一个字符替换一个字符 示例 1: 输入:word1 "horse", word2 …

html5盒子模型

1.边框的常用属性 border-color 属性 说明 示例 border-top-color 上边框颜色 border-top-color:#369; border-right-color 右边框颜色 border-right-color:#369; border-bottom-color 下边框颜色 border-bottom-color:#fae45b; border-left-color 左边框颜色…

Python学习 --- 面向对象

1.什么是对象 1.Python中创建类的关键字是 class 2.类的成员方法 1.函数是写在类外面的,方法则是写在类里面的 1.上面这一段代码中就展示了如何在方法中访问类的成员变量: self.成员变量名 3.魔术方法 魔术方法其实就是python中的类中的内置方法,下面这几个只是我们比较常…

多输入时序预测|GWO-CNN-LSTM|灰狼算法优化的卷积-长短期神经网络时序预测(Matlab)

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 灰狼优化算法: 卷积神经网络-长短期记忆网络: 四、完整程序下载: 一、程序及算法内容…

清华系2B模型杀出支持离线本地化部署,可以个人电脑或者手机上部署的多模态大模型,超越 Mistral-7B、LLaMA-13B

清华系2B模型杀出支持离线本地化部署,可以个人电脑或者手机上部署的多模态大模型,超越 Mistral-7B、LLaMA-13B。 2 月 1 日,面壁智能与清华大学自然语言处理实验室共同开源了系列端侧语言大模型 MiniCPM,主体语言模型 MiniCPM-2B …

Vue前端对请假模块——请假开始时间和请假结束时间的校验处理

开发背景:Vueelement组件开发 业务需求:用户提交请假申请单,请假申请的业务逻辑处理 实现:用户选择开始时间需要大于本地时间,不得大于请假结束时间,请假时长根据每日工作时间实现累加计算 页面布局 在前…

iOS App 上架指南及关键

引言 上架App Store是将iOS应用提交申请并上线的过程,旨在让应用在App Store上展示,吸引用户并获取流量。本文将介绍iOS上架的整体流程,并提供一些建议和注意事项。 一、iOS上架的整体流程 1. 申请开发者账号 首先,需要申请苹…

ElementUI组件的安装和使用

Element UI 是一款基于 Vue 2.0 的桌面端组件库,主要用于快速构建网站的前端部分。它提供了丰富的组件,如按钮、输入框、表格、标签页等,以及一些布局元素,如布局容器、分割线等。Element UI 的设计风格简洁,易于上手&…

文心一言 VS 讯飞星火 VS chatgpt (203)-- 算法导论15.3 2题

二、对一个16个元素的数组,画出2.3.1节中MERGE-SORT过程运行的递归调用树。解释备忘技术为什么对MERGE-SORT这种分治算法无效。需要写代码的时候,请用go语言。 文心一言,代码不完整: 首先,让我们明确2.3.1节中的MERG…

计算机毕业设计 基于SpringBoot的宠物商城网站系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【element+vue】点击加号增加一行,点击减号删除一行

代码实现&#xff1a; 页面部分&#xff1a; vueelement 备注&#xff1a;v-if “i>0” &#xff08;保证第一行不出现减号&#xff09; <div v-for"(item,i) in studentList"><el-form-item label"学生:" prop"name"><el-i…

机器学习:朴素贝叶斯算法(Python)

一、朴素贝叶斯算法的实现 naive_bayes_classifier.py import numpy as np import collections as cc # 集合的计数功能 from scipy.stats import norm # 极大似然估计样本的均值和标准方差 from data_bin_wrapper import DataBinsWrapperclass NaiveBayesClassifier:"…

线程的状态图

线程创建之后&#xff0c;调用start()方法开始运行。当线程执行wait()方法之后&#xff0c;线程进入等待状态。进入等待状态的线程需要依靠其他线程的通知才能够返回到运行状态&#xff0c;而超时等待状态相当于在等待状态的基础上增加了超时限制&#xff0c;也就是超时时间到达…

Redis集群搭建笔记

redis集群: 1.hash取余算法 2.一致性hash算法 3.哈希槽算法 以下使用哈希槽算法 Redis 3主3从搭建 新建6个Redis Docker容器实例 docker run -d --name redis-node-1 --net host --privilegedtrue -v /usr/local/develop/redis/share/redis-node-1:/data redis:6.0.8 --c…

C# 通过共享内存调用C++ 算法

需求&#xff1a; C#程序调用 C开发的dll. 一种C# 程序调用c 算法方案_算法怎么被c#调用-CSDN博客 上回书说到&#xff0c;将c算法封装为dll 插件&#xff0c;c加载后&#xff0c;暴露C风格接口&#xff0c;然后供C#调用。但是这样有几个问题&#xff1a; 1&#xff0c;一是…
推荐文章