javaEE-7.网络原理-HTTPS

news/2025/2/3 18:00:54 标签: 网络, https, 网络协议

目录

1.概念:

2.加密形式

3.HTTPS工作流程

1).引入对称加密

2).引入非对称加密


1.概念:

https是http的加密版.  HTTPS : HTTP+ SSL(加密)

HTTP属于明文传输,在传输过程中,可能会存在一定的风险,HTTPS对传输的内容进行了加密处理.

 HTTPS除了对内容进行密文传输,别的和HTTP是一样的.

2.加密形式

要想加密,还要有进行加密或解密的密钥,对传输的内容进行加密,加密形式有 对称加密 和非对称加密 .

对称加密:加密和解密的密钥是同一个.

非对称加密:加密和解密的密钥是不同.是两个密钥 k1 ,k2 ,且是成对的,k1用来加密,k2 就用来解密,两个密钥一个公开出来,称为"公钥",另一个自己保存,为"私钥".

3.HTTPS工作流程

引入加密,对传输数据进行保护,主要是对refener和body进行加密.

1).引入对称加密

针对要传输的refener/body 进行对称加密,

https://i-blog.csdnimg.cn/direct/360b479c525943f6af1575a73163d0c1.png" width="935" />

注意:1.对称加密的时候,客户端和服务端要使用同一个密钥.

        2.不同的客户端,要使用不同的密钥.

这就表示每一个客户端都要自己生成一个密钥,还有告知服务端,但在传输的过程中,势必要将密钥传输给服务端,这就有可能让黑客获取到密钥,从而破解出要传送的内容.加密就没有意义了.

为了不让黑客获取到密钥,还要对密钥进行加密.

2).引入非对称加密

通过非对称加密,对 对称加密使用的 密钥进行秘文传输.

不直接使用非对称加密的方式对传输的内容进行加密,是因为非对称加密的使用成本较高,消耗CPU的资源远高于对称加密.

此时,服务器有"公钥"和"私钥",客户端发送请求,获取服务器的"公钥","公钥"是可以明文显示的,黑客知道了也没事.只要"私钥"仅让服务器知道就行了.

客户端获取到公钥后,对要传输的密钥进行加密https://i-blog.csdnimg.cn/direct/e29b9f7256fa455c96658e427a4386a9.png" width="1416" />,再传送给服务端,服务端收到数据后,再通过私钥对加密内容进行解密,就可以获取到数据内容了.

https://i-blog.csdnimg.cn/direct/e853feaa83884114b14153c4118244b1.png" width="1356" />

但这样传输,中间还存在着很大的安全问题.

若中间人更加聪明,当服务器返回非对称加密的公钥key1 时,黑客对公钥信息进行拦截,自己创造出一对新的非对称密钥,公钥key3,私钥key4,将自己的公钥key3返回给客户端,此时,就会产生以假乱真的现象.

https://i-blog.csdnimg.cn/direct/6e30a51aae294d28a9616a4c14dbbf6f.png" width="1556" />

针对上述现象,最关键的解决方法是客户端对收到了公钥进行检验.判断这个公钥是否为服务端发送的真的公钥.

要求服务器提供一个"证书",这个证书由服务器申请,特定的公正机构发放.

证书中包含的内容有: 服务器域名,证书有效时间,服务器公钥,公正机构相关信息等,还有一个证书的签名.

证书的签名 实际上就是证书中别的内容经过一系列的计算得到的一个校验值,这个校验值再通过公正机构提供的私钥进行加密的结果.

客户端会先向服务器获取证书,获取到证书后,经过一系列算法,计算出证书的 校验和;

再使用系统内置的公正机构公钥 对证书的签名进行解密,得到另一个校验和,

将这两个校验和进行对比,若一样,则表示证书没有被第三方修改,若不一致,则证书存在安全问题,就能分辨真伪了.

这样就能真正的阻止第三方修改/监听内容的问题了.

https://i-blog.csdnimg.cn/direct/b650568dd7274c778cb3d4ef072463c2.png" width="604" />


http://www.niftyadmin.cn/n/5840982.html

相关文章

doris:主键模型的更新并发控制

概览​ Doris 采用多版本并发控制机制(MVCC - Multi-Version Concurrency Control)来管理并发更新。每次数据写入操作均会分配一个写入事务,该事务确保数据写入的原子性(即写入操作要么完全成功,要么完全失败&#xf…

1. 【.NET Aspire 从入门到实战】--理论入门与环境搭建--引言

在当前软件开发领域,云原生和微服务架构已经成为主流趋势,传统的单体应用正逐步向分布式系统转型。随着业务需求的不断变化与用户规模的迅速扩大,如何在保证高可用、高扩展性的同时,还能提高开发效率与降低维护成本,成…

熵采样在分类任务中的应用

熵采样在分类任务中的应用 在机器学习的分类任务里,数据的标注成本常常制约着模型性能的提升。主动学习中的熵采样策略,为解决这一难题提供了新的思路。本文将带你深入了解熵采样在分类任务中的原理、应用及优势。 一、熵采样的原理(优化版) 熵,源于信息论,是对不确定…

MySQL知识点总结(十九)

InnoDB集群单主模式和多主模式集群结构适用哪些应用场合? InnoDB集群主要的应用场合如下: 弹性复制环境,这种复制基础架构中涉及的服务器数量非常的不稳定高可用分片环境,分片是一种流行的写横向扩展方法,每个分片可…

深度学习篇---张量数据流动处理

文章目录 前言第一部分:张量张量的基本概念1.维度标量(0维)向量(1维)矩阵(2维)三维张量 2.形状 张量运算1.基本运算加法减法乘法除法 2.广播3.变形4.转置5.切片6.拼接7.矩阵分解8.梯度运算&…

实战:如何利用网站日志诊断并解决收录问题?

本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/50.html 利用网站日志诊断并解决收录问题是一种非常有效的方法。以下是一个实战指南,帮助你如何利用网站日志来诊断并解决网站的收录问题: 一、获取并分析网站日志 …

JavaScript面向对象编程:Prototype与Class的对比详解

JavaScript面向对象编程:Prototype与Class的对比详解 JavaScript面向对象编程:Prototype与Class的对比详解引言什么是JavaScript的面向对象编程?什么是Prototype?Prototype的定义Prototype的工作原理示例代码优点缺点 什么是JavaS…

重回C语言之老兵重装上阵(十三)C 预处理器

C 语言预处理器 C 预处理器(Preprocessor)是编译过程中的一个重要阶段,它在编译器实际编译代码之前,对源代码进行文本替换和处理。预处理器的主要任务是处理指令以生成最终的代码,并为编译器提供准备工作。常见的预处理…