HTTPS

HTTP 协议内容都是按照文本的方式明文传输的。 这就导致在传输过程中出现一些被篡改的情况。为了保证安全,现在大多数网站都采用HTTPS协议。HTTPS协议是在HTTP协议的基础上引入了一个加密层SSL。

目录

    • HTTPS的加密流程
      • 对称加密
      • 非对称加密
      • 为什么引入非对称加密?
      • 中间人攻击
      • 引入证书
    • 加密总结

HTTPS的加密流程

所谓加密,就是把明文内容变为密文。引入加密的目的是避免被黑客窃取数据。加密方式包括对称加密和非对称加密。

对称加密

加密和解密使用同一个密钥
例如:1234这样的明文,约定key是 1111,1234按位异或1111得到密文133,133按位异或1111得到明文1234。
对称加密可以保证数据传输过程中的数据安全性。

非对称加密

加密和解密使用一对密钥(公钥和私钥:只有自己持有的为私钥,对外公开的是公钥)。使用公钥加密,就要用私钥解密;使用私钥加密,就要用公钥解密。

为什么引入非对称加密?

服务器与客户端建立连接时,会向客户端发送一个密钥key,客户端拿到这个key后,就可以按照key来和服务器进行数据交互了。但是传输key的过程是明文的,也就是说黑客也可以拿到这个key。此时这个加密就形同虚设了。
明文传输key
为了避免黑客获取key,传输key的过程需要再加密。
具体流程:服务器生成一对密钥(公钥pub和私钥pri,公钥进行加密,私钥进行解密),把公钥传输给客户端,让客户端进行加密,客户端返回密文后客户端再解密拿到key。
由于公钥的传输是明文的,因此黑客可以获取到,但是公钥只能用来加密,不能用来解密,那么黑客拿到这个公钥也就无用武之地了。后续客户端传给服务器的是密文传输的,即使再被黑客截获,因为没有pri解密,也就获取不到key了。
非对称加密传输key
如果图难以理解的话,可以把pub理解为一把锁,pri理解为开这把锁的钥匙,服务器向客户端发送这把锁,黑客可以拿到这把锁,但是却没有钥匙,客户端把key放到一个盒子里,再用这把锁锁上发给服务器,黑客拿到这个盒子,却开不了。因此只能看着它发到服务器手中。服务器有专门开这把锁的钥匙,因此轻松的就拿到了key。
小结:key是用来保护传输的数据的,有了key,黑客就不能轻易获取数据信息;而pub和pri是用来保护key的,有了pub和pri,黑客就不能轻易获取key,进而获取数据信息了。

中间人攻击

引入非对称加密来传输key是否就安全了呢?
其实从我举得例子来看,就可以发现端倪:
黑客拿到这把锁(黑客早于客户端拿到)其实并不是毫无办法的,完全可以偷梁换柱,也就是把锁掉包。黑客自己生成一把锁和一把钥匙,把服务器的锁留下来,自己的锁发给客户端。客户端此前没有见过锁的样子,就认为发过来的锁是服务器的,因此把key放进盒子里,用锁锁起来发给服务器。黑客再次截获这个盒子,用自己的钥匙打开,就拿到了key,再把key用原先从服务器获取的锁锁起来,继续发给服务器。这个过程中,服务器和客户端都没有发现异常,就认为key的传输是保密的,实际上key已经被黑客获取了!
这个过程就称为中间人攻击
中间人攻击

引入证书

中间人攻击的问题在于客户端不能识别服务器发的公钥pub。
为了解决中间人攻击问题,可以引入证书。
证书用于验证服务器身份。它由权威机构颁发,用来证明该服务器是可信的。服务器和客户端建立连接时,服务器首先向客户端发送一个权威证书,这个证书就包含了公钥pub,证书包含一个加密的签名,客户端可以使用公钥pub2进行解密(这个公钥pub2是附在操作系统中的,任何设备都具有)。黑客截获证书后,虽然可以解密并篡改,但是不能重新加密,那么客户端就会第一时间发现证书被篡改了。证书解密后也会有校验和,用于检验证书的完整性(在传输过程中可能由于某些原因造成数据丢失),只有完整且未被篡改的证书,客户端才会使用证书上的公钥pub(即服务器的公钥),这样就避免了公钥pub被黑客掉包了。
引入证书
通过引入证书,也就解决了中间人攻击的问题。但即使引入了证书,也并不能保证绝对安全。只要是破解成本高于数据本身,那么就认为是安全的。

加密总结

HTTPS的加密流程涉及到三对密钥。

  1. 通过非对称密钥检验证书的完整性和是否被篡改,保证服务器公钥正常传输到客户端。
  2. 通过非对称密钥传输对称密钥key,避免传输过程中被黑客直接获取到key。
  3. 通过对称密钥进行数据传输和交互,非对称密钥的开销大,运算速度慢,为了保证传输速率,采用对称密钥。

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

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

相关文章

Python处理办公自动化的10大场景

在编程世界里,Python已经是名副其实的网红了。Python最大优势在于容易学,门槛比Java、C低非常多,给非程序员群体提供了用代码干活的可能性。当然Python能成为大众编程工具,不紧是因为易学,还因为Python有成千上万的工具…

抖音电商发展路径:从外链种草到达人/品牌直播

复盘抖音电商发展,可以总结出以下几点发展特征: 策略重心的变化 以种草为核心,给电商引流站外成交(2019 年及之前)→ 力推达人直播但效 果一般(2020 上半年)→ 推品牌自播并彻底闭环&#xff0…

Redis.conf 详解

我们启动 Redis,一般都是通过 Redis.conf 启动。 因此,我们必须了解 Redis.conf 的配置,才能更好理解和使用 Redis。 单位 单位注意事项:当需要内存大小时,可以指定为1k 5GB 4M等 通常形式: 1k > 1000字…

谈谈几个常见数据结构的原理

数组 数组是最常用的数据结构,创建数组必须要内存中一块 连续 的空间,并且数组中必须存放 相同 的数据类型。比如我们创建一个长度为10,数据类型为整型的数组,在内存中的地址是从1000开始,那么它在内存中的存储格式如…

【lvs集群】HAProxy搭建Web集群

HAProxy搭建Web集群 一、 HAProxy简介1.1HAProxy主要特性1.2HAProxy负载均衡策略非常多,常见的有如下8种1.3LVS、Nginx、HAproxy的区别1.4常见的Web集群调度器 二、Haproxy搭建 Web 群集haproxy服务器部署节点服务器部署 三、定义监控页面与定义日志3.1定义监控页面…

Multimodal fusion via cortical network inspired losses(第一次优质论文分享)

Multimodal fusion via cortical network inspired losses 论文介绍1. 论文研究的任务是什么?2. 论文关注/拟解决的问题是什么?3. 论文提出什么方法如何解决这个问题?4. 如何设计实验 来证明 所提方法确实解决了 拟解决的问题? 论…

kotlin协程flow retry功能函数返回失败后重试(4)

kotlin协程flow retry功能函数返回失败后重试&#xff08;4&#xff09; import kotlinx.coroutines.delay import kotlinx.coroutines.flow.* import kotlinx.coroutines.runBlockingfun main(args: Array<String>) {var count 0 //重试计数runBlocking {load().onEach…

RetinaNet网络介绍

前言 上一篇博文我们介绍了Focal Loss&#xff0c;原理也比较简单&#xff0c;有不了解的小伙伴可以先跳转到之前的博文了解一下。Focal Loss介绍。这篇博文我们来看下Focal Loss的出处&#xff1a;Focal Loss for Dense Object Detection&#xff0c;这篇论文提出了RetainNet之…

chatgpt赋能python:Python怎么建服务器?

Python怎么建服务器&#xff1f; 作为一名具有10年Python编程经验的工程师&#xff0c;我深入研究了Python的一些高级特性&#xff0c;其中包括Python如何建立服务器的方法。Python是一个高级的编程语言&#xff0c;可以轻松创建服务器应用程序&#xff0c;并为您的网站提供高…

低秩矩阵(Low-Rank)的意义

&#xff11;&#xff0e;回顾基础&#xff1a; 矩阵的秩度量的是矩阵行列之间的相关性&#xff0c;如果各行各列都是线性无关的&#xff0c;矩阵就是满秩。非零元素的行或列决定了秩的大小。&#xff0f;&#xff0f;划重点&#xff0c;秩可以度量矩阵自身相关性 讲个小故事…

windows 服务程序和桌面程序集成(七)效果演示及源程序下载

系列文章目录链接 windows 服务程序和桌面程序集成&#xff08;一&#xff09;概念介绍windows 服务程序和桌面程序集成&#xff08;二&#xff09;服务程序windows 服务程序和桌面程序集成&#xff08;三&#xff09;UDP监控工具windows 服务程序和桌面程序集成&#xff08;四…

计算机提示“找不到vcruntime140.dll,无法继续执行代码可”以这样子修复

首先&#xff0c;对于那些不熟悉的人来说&#xff0c;vcruntime140.dll是一个关键文件&#xff0c;用于在Windows操作系统上运行使用C语言编写的大型应用程序。如果你正在运行或安装这样的应用程序&#xff0c;但找不到vcruntime140.dll文件&#xff0c;那么你的应用程序可能无…

Maven私服

Maven 私服是一种特殊的远程仓库&#xff0c;它是架设在局域网内的仓库服务&#xff0c;用来代理位于外部的远程仓库&#xff08;中央仓库、其他远程公共仓库&#xff09;。 建立了 Maven 私服后&#xff0c;当局域网内的用户需要某个构件时&#xff0c;会按照如下顺序进行请求…

低代码崛起:会让程序员饭碗不保,人工智能或成其催化剂

人工智能技术目前发展的趋势如何 关于人工智能技术的评价&#xff0c;大众的评价几乎算是较为一致的&#xff0c;都认为其已成为人类有史以来最具革命性的技术之一。当然了&#xff0c;可能目前的我们还是很难想象机器自主决策所产生的影响&#xff0c;但可以肯定的是&#xff…

ELF文件结构和实战分析

文章目录 示例编译运行 ELF文件格式ELF HeaderELF Section Header Table (节头表)sh_typesh_flagssh_link、sh_info 节链接信息 ELF Sections节的分类.text节.rodata节.plt节&#xff08;过程链接表&#xff09;.data节.bss节.got.plt节&#xff08;全局偏移表-过程链接表&…

ArkTS语言HarmonyOS/OpenHarmony应用开发-message事件刷新卡片内容

开发过程 在卡片页面中可以通过postCardAction接口触发message事件拉起FormExtensionAbility&#xff0c;然后由FormExtensionAbility刷新卡片内容。 common&#xff1a;公共文件 通过点击button按钮&#xff0c;刷新卡片内容。代码示例&#xff1a; WidgetCard.ets let stor…

内网渗透—Linux上线

内网渗透—Linux上线 1. 前言2. 下载插件3. CS配置3.1. 客户端配置3.1.1. 导入插件文件3.1.2. 配置监听 3.2. 服务端配置3.2.1. 导入配置文件 3.3. 生成木马3.3.1. 修改cna文件3.3.2. 修改后效果 3.4. 执行木马 1. 前言 默认情况下CS是不支持上线Linux的&#xff0c;只支持上线…

learn C++ NO.6——类和对象(4)

1.再谈构造函数 1.1.构造函数体赋值 在创建类的对象时&#xff0c;编译器回去调用类的构造函数&#xff0c;来各个成员变量一个合适的值。 class Date { public:Date(int year,int month,int day){_year year;_month month;_day day;}private:int _year;int _month;int _…

软件测试必备7大技能

一、测试用例的编写 1.在测试中最重要的文档&#xff0c;他是测试工作的核心&#xff0c;是一组在测试时输入输出的标准&#xff0c;是软件需求的具体对照。编写测试用例&#xff0c;是测试人员的基本功&#xff0c;真正能写好的人并不多。 2.测试用例包含的内容&#xff1a;…

【小白向】树莓派连接手机热点后 设置静态IP

树莓派连接手机热点后 设置静态IP 1.连接至手机热点2.查看当前 IP 地址3.修改 dhcpcd.conf 文件4.重启网络服务5.检查网络设置 1.连接至手机热点 在树莓派上打开 Wi-Fi 设置&#xff0c;并选择你要连接的手机热点&#xff0c;输入密码连接热点&#xff0c;确保你已经成功连接至…
最新文章