网络原理——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://www.hqwc.cn/news/492982.html

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

相关文章

Java8 Stream API 详解:流式编程进行数据处理

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默&…

【踩坑】修复报错 you should not try to import numpy from its source directory

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 报错如下: 修复方法一: pip install pyinstaller5.9 修复方法二: pip install numpy1.24.1

内部变形观测:监测仪器在工程中的应用

在工程领域,内部变形观测是确保建筑物安全稳定的关键环节。为了实现这一目标,我们需要借助一系列先进的仪器进行监测。本文将详细介绍在内部变形观测中常用的监测仪器。 垂直位移(沉降)观测在土石坝和混凝土坝中具有重要意义。对于土石坝,我们…

多态的讲解

多态的概念 多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。 举个栗子:比如买票这个行为,当普通人买票时,是全价买票;学生…

抖店是怎么运营做起来的?抖音小店每天都需要做什么?新手必看!

大家好,我是电商花花。 很多人疑惑开抖音小店之后,选好商品上架之后每天都需要做什么? 不少新手在开了抖音小店之后每天除了选品之后就不知道要做些什么了。 今天给大家分享一下我们每天做抖音小店的工作内容有哪些,如果你是新…

代码随想录算法训练营第二十一天| 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

文章目录 1.二叉搜索树的最小绝对差2.二叉搜索树中的众数3.二叉树的最近公共祖先 1.二叉搜索树的最小绝对差 因为二叉搜索树的中序遍历是有序的,所以在中序递归遍历的基础上,记录前一个节点的指针,递归的过程中用后一个节点减去前一个&#x…

企业数字化转型,如何选择适合的邮件系统?

随着数字经济的发展,数字办公已经成为企业未来发展的必经之路。而邮件系统作为企业内外沟通的重要办公工具,在企业数字化转型中发挥着重要作用。它能够帮助企业更便捷地跟踪管理业务,优化流程、提升工作效率和协同能力。但是,企业…

给自己留个备忘,blender是右手坐标系

所谓右手坐标系,就是三个轴的方向和右手三根手指的方向一致(当然,有要求的,这个要求是大拇指指向x轴方向,食指指向y轴方向,中指指向z轴方向)。 不过blender默认是z轴朝上的,如下图。 右手坐标系…

记阿里云mysql丢表丢数据的实践记录

第一时间挂工单,联系工程师指引,现在回过来想,第一时间要确认发生时间。 1.通过性能视图(马后炮的总结,实际凭记忆恢复了三四次才找到数据) 2.先恢复数据 通过Navicat工具,结构同步&#xff0…

linux操作系统期末练习题

背景: 一、远程登录 1.利用远程登录软件,以用户userManager(密码123456),远程登录教师计算机(考试现场给出IP地址),只有操作,没有命令。 2.以stu班级学生个人学号后3位…

[LWC] Components Communication

目录 Overview ​Summary Sample Code 1. Parent -> Child - Public Setter / Property / Function a. Public Property b. Public getters and setters c. Public Methods 2. Child -> Parent - Custom Event 3. Unrelated Components - LMS (Lightning Message…

Odoo系统安装部署并结合内网穿透实现固定域名访问本地ERP系统

文章目录 前言1. 下载安装Odoo:2. 实现公网访问Odoo本地系统:3. 固定域名访问Odoo本地系统 前言 Odoo是全球流行的开源企业管理套件,是一个一站式全功能ERP及电商平台。 开源性质:Odoo是一个开源的ERP软件,这意味着企…