计算机网络——HTTPS协议

news2025/2/27 5:21:50

目录

1、HTTPS是什么?

2、“加密”是什么?

3、HTTPS的加密机制

3.1、对称加密

3.2、非对称加密

3.3、“中间人问题”


1、HTTPS是什么?

        HTTPS是一个应用层协议,是在HTTP协议的基础上引入了一个加密层,进一步来保证用户的信息安全。

        HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

为什么要这样子呢?

        因为如果没有这个加密,HTTP协议内容都是按照文本的方式明文传输的,这就导致传输中会出现一些被篡改的情况!

例如:

        由于我们通过网络传输的任何的数据包都会经过运营商的网络设备( 路由器 , 交换机等 ), 那么运营商的网络设备就可以解析出你传输的数据内容, 并进行篡改 .
        点击 " 下载按钮 ", 其实就是在给服务器发送了一个 HTTP 请求 , 获取到的 HTTP 响应其实就包含了该 APP的下载链接. 运营商劫持之后 , 就发现这个请求是要下载某APP , 那么就自动的把交给用户的响应给篡改成 "QQ 浏览器 " 的下载地址了 .
        再或者是,黑客在用户登录支付宝的时候获取到用户账户余额,甚至获取到用户的支付密码,后果不堪设想~

2、“加密”是什么?

“加密”就是把明文进行一系列变换,生成密文

解密就是把密文再进行一系列变换,还原成明文

在这个加密和解密的过程中,往往需要一个或者多个中间的数据,辅助进行这个过程,这样的数据称为秘钥


3、HTTPS的加密机制

HTTPS引入的加密层,称为SSL/TLS,在SSL中加密的机制主要有两种:

  • 对称加密
  • 非对称加密

3.1、对称加密

对称加密就是客户端使用相同的密钥对密文进行加密和解密

对称加密

        很显然的一点是:不同客户端需要拥有不同的密钥,如果不同客户端使用的是相同的密钥,那这就和没加密一样,黑客只要自己启动一个客户端或服务器就能拿到密钥 

        另外,需要进行密钥的网络传输,密钥传输如果是明文传输的话,很容易被黑客拦截获取,黑客拿到了密钥,那么加密就等于白加了。

3.2、非对称加密

        为了解决密钥被黑客获取篡改,需要对密钥也进行加密,显然对密钥曹勇加密是不可行,那就真的是无限套娃了,所以引入了非对称加密

        对于非对称加密,他拥有两个密钥,一个公钥一个私钥,其中呢,公钥是大家都可以获取到的,而私钥是只有构造私钥的那一方才会知道。相当于我们现实生活中的锁与钥匙,而这个锁相当于公钥,钥匙就相当于私钥。

        接下来,我们可以使用非对称加密,首先客户端会向服务器询问服务器的公钥是什么,然后服务器会向客户端发送一个公钥,客户端收到公钥后会使用这个公钥对客户端构造的密钥进行加密,然后会把密文请求与密钥传输给服务器,服务器使用私钥解密得到客户端的密钥,然后使用这密钥对密文请求进行解密。

非对称加密

 

3.3、“中间人问题”

        问题——“中间人”,这个中间人对于服务器伪装成“客户端”,对于客户端,中间人会伪装成“服务器”,换句话说,当服务器发送公钥给客户端时,中间人也生成一对公钥与私钥,中间人把服务器的公钥换成自己的公钥,然后服务器使用中间人的公钥加密密钥,并发送对称密文请求与密钥请求,再然后中间人再次拦截,使用自己的私钥获得密钥,使用密钥解密获得客户端的请求,为了防止服务器察觉,中间人会将获得的密文请求与密钥使用服务器的公钥加密,并发送给服务器,这样这位中间人神不知鬼不觉就截取到了客户端的请求数据。

        中间人问题的解决方案,引入一个第三方工信机构,服务器先提供资质证明给工信机构,工信机构通过审核后,会给服务器发送一个证书,该证书不是普通的证书,里面含有一些校验机制,然后服务器会把自己的公钥放入证书中,客户端也不再询问公钥,而是询问服务器证书,得到证书后会去查该证书是否合法,如果合法才会使用服务器证书中的公钥去进行对密文请求与密钥的加密,并发送给服务器,如果不合法浏览器就会弹窗警告。
工信机构

 下期见咯~

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

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

相关文章

23-职位分类展示平台响应式网页模板{HTML JS CSS)

扫码或搜索添加文末公众号「搞前端的半夏」:🍗 回复 ”网站模板“,免费送网站模板! 欢迎点赞 👍 收藏 ⭐留言 📝 私信📄 你还在未HTML网页设计作业头大吗? 你还在为自学前端&#xf…

【Vant Weapp】van-uploader 文件上传

目录 图片上传 图片回填 修改样式 循环多个上传图片 自定义上传的控件 图片上传 未上传样式&#xff1a; 上传限制6张后 &#xff1a; <van-uploader max-count"6" file-list"{{ fileList }}" bind:after-read"afterRead" bind:delete&…

【易忽视】方程两边同时平方会改变方程的解吗?【简洁证明】

问题提出 在做一道题的时候有这样一步&#xff1a;两边平方&#xff0c;最后求解&#xff0c;题很简单&#xff0c;但是这个方法是否能这么用引起了我的好奇。 思考 首先不妨假设一个通用的方程&#xff1a; f(x)g(x)f(x)g(x)f(x)g(x) 然后我们对方程两边平方&#xff1a; …

深度学习基础与线性回归实例

1、机器学习基础-线性回归 介绍&#xff1a;这是一个教育对收入影响的数据&#xff0c;从图像的走势来看&#xff0c;它是具有一个线性关系&#xff0c;即受教育年限越长收入越高&#xff0c;这样我们可以通直线来抽象出它们的关系。 接下来&#xff0c;我们将会介绍一些方法&…

Java中线程的状态

Java中线程的状态操作系统中线程的状态Java中线程的状态线程状态枚举类操作系统中线程的状态 从操作系统层面来看&#xff0c;线程通常有以下五种状态&#xff0c;前三种是线程的基本状态。 【运行态】&#xff1a;进程正处在处理机上运行&#xff0c;在单处理机环境下&#…

【学习笔记39】获取DOM标签对象

获取DOM标签对象一、认识DOM二、获取非常规DOM(html head body)1、HTML2、head3、body三、获取常规DOM&#xff08;一&#xff09;按照类名、标签名和ID名获取标签1、类名(伪数组)2、标签名(伪数组)3、ID名(唯一性)&#xff08;二&#xff09;按照选择器获取标签1、querySelect…

《人月神话》(The Mythical Man-Month)1 看清问题的本质:如果我们想解决问题,就必须试图先去理解它...

第一章 焦油坑&#xff08;The Tar Pit&#xff09;史前史中&#xff0c;没有比巨兽在焦油坑中垂死挣扎的场面更令人震撼的了。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈&#xff0c;焦油纠缠得越紧&#xff0c;没有任何猛兽足够强壮或具有足够的技巧&a…

IDEA注释配置程序员信息(带完整截图步骤,超级详细)

1.配置类注释的程序员信息 效果图 配置截图 模板 &#xff08;可根据需要进行位置调整及个数删除&#xff09; /***BelongsProject: ${PROJECT_NAME}*BelongsPackage: ${PACKAGE_NAME}*ClassName ${NAME}*Author: XUXIAN*CreateTime: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINU…

这可能是最权威、最全面的Go语言编码风格规范了!

每种编程语言除了固定的语法之外&#xff0c;都会有属于自己的地道的(idiomatic)写法。其实&#xff0c;自然语言也不例外&#xff0c;你想&#xff0c;你用心想想是不是这样。语言的设计者们希望开发人员都能编写统一风格的地道的代码&#xff0c;这样不仅代码可读性好&#x…

细分图中的可到达节点 : 常规最短路运用题

题目描述 Tag : 「最短路」、「单源最短路」、「Dijkstra」、「SPFA」 给你一个无向图&#xff08;原始图&#xff09;&#xff0c;图中有 n 个节点&#xff0c;编号从 0 到 n - 1 。你决定将图中的每条边 细分 为一条节点链&#xff0c;每条边之间的新节点数各不相同。 图用…

[前端框架]-VUE(上篇)

Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。另一方面&#xff0…

链表经典算法题目

1.回文链表 编写一个函数&#xff0c;检查输入的链表是否是回文的。 示例 1&#xff1a; 输入&#xff1a; 1->2 输出&#xff1a; false 示例 2&#xff1a; 输入&#xff1a; 1->2->2->1 输出&#xff1a; true 笔试的写法 重点是快速code,不考虑空间复杂度…

蒙特卡洛法(Monte Carlo)电动汽车负荷预测matlab程序设计

电动汽车充电负荷的时间分布预测 规模化电动汽车充电负荷在未来某一天随时间特性的分布规律是研究电动汽车发展对配 电网影响以及充电站选址定容问题的前提与基础。电动汽车充电负荷的分布情况与车主的行 为特征有关&#xff0c;不同类型的电动汽车车主出行规律以及充电习惯不…

<Linux系统复习>信号

一、本章重点 1、什么是信号&#xff1f; 2、查看信号列表 3、信号捕捉 4、信号产生的5种方式 5、介绍CoreDump 6、信号处理的方式 7、如何理解信号产生到处理的过程 8、sigpending、sigprocmask、sigaction函数的使用 9、信号处理的时机 10、SIGCHLD信号 11、可重入函数 01 什…

Codeforces Round 836 (Div. 2) A - C

A:SSeeeeiinngg DDoouubbllee 题意&#xff1a;给定一个字符串&#xff0c;每个字符串的字符可以出现两次&#xff0c;要求通过重新排列构造一个回文串。 思路&#xff1a;直接暴力可以&#xff0c;每个字符头部一个尾部一个。 #include<cstdio> #include <iostream…

不使用实体类的情况下接收SQL查询结果、@Autowired注入为null解决

目录 一、场景 二、环境 三、使用 1、数据库表以及数据准备 2、项目导入必要依赖 3、添加连接数据库配置文件 4、编写测试方法 5、执行结果 四、将SQL单独提取出来 2.1 定义查询接口方法 2.2 测试 2.3 测试结果 五、问题记录&#xff1a; Autowired注入失败/null的…

b、B、KB、Kib、MB、MiB、GB、GiB、TB、TiB的区别

1024这个数字&#xff0c;想必计算机行业从业人员应该不会陌生&#xff0c;甚至10月24日还被当做程序员日&#xff0c;如果你问一个程序员1GB等于多少MB,他大概率会不假思索回答:1024。 没错&#xff0c;对于稍微对计算机或者网络有了解的人&#xff0c;一般都认为1024是数据容…

最短路算法 - dijkstra

最短路算法 - dijkstra1. 算法介绍2. 实战2.1 Reachable Nodes In Subdivided Graph3 参考1. 算法介绍 算法目的&#xff1a;求图中某点 s 到其余各点的最短距离 算法步骤&#xff1a; 初始化距离数组 dis 和优先级队列&#xff0c;其中 dis[i] 表示 s 点到当前 i 点的最短距…

树莓派上搭建SVN服务器

目录 一、服务端安装步骤 1.安装svn 2.创建目录 3.创建版本仓库 4.修改配置&#xff08;authz,passwd,svnserve.conf&#xff09; 5.启动服务 二、tortoisSVN客户端安装 三、结束 一、服务端安装步骤 1.安装svn sudo apt-get install subversion 2.创建目录 sudo m…

品RocketMQ 源码,学习并发编程三大神器

这篇文章&#xff0c;笔者结合 RocketMQ 源码&#xff0c;分享并发编程三大神器的相关知识点。 1 CountDownLatch 实现网络同步请求 CountDownLatch 是一个同步工具类&#xff0c;用来协调多个线程之间的同步&#xff0c;它能够使一个线程在等待另外一些线程完成各自工作之后&…