Java Web 实战 20 - HTTP PK HTTPS ? HTTPS 大获全胜 ?

HTTP VS HTTPS

  • 一 . HTTPS
    • 1.1 臭名昭著的运营商劫持
    • 1.2 加密是什么 ?
    • 1.3 HTTPS 的加密过程
      • 对称加密
      • 非对称加密
      • 引入 "证书" 机制
    • 1.4 HTTP VS HTTPS

Hello , 大家好 , 好久没有更新 JavaWeb 模块的内容了 .
博主这篇文章主要给大家讲解一下 HTTPS 以及与 HTTP 的区别
那接下来的知识点无疑都是面试重灾区 , 举几个常见例子
HTTP / HTTPS : HTTPS 加密的过程
Servlet : Cookie 和 Session 的区别
Linux : 常见的 Linux 指令
JVM : JVM 内存区域划分、垃圾回收机制、双亲委派模型
那希望大家跟紧步伐 , 站稳脚跟 !
在这里插入图片描述
大家也可以订阅 JavaWeb 专栏 , 点击即可跳转
准备好 , 我们要开始发车了 !

一 . HTTPS

HTTPS 和 HTTP 相比 , 只是多了一个 “加密层”
HTTP 传输数据都是明文传输的 , 很容易被别人获取或篡改

1.1 臭名昭著的运营商劫持

这种不属于该页面的弹窗广告 , 就是运营商劫持

或者像这样 , 要下载天天动听 , 结果自动下载了 QQ 浏览器 , 也是运营商劫持
image.png
这种运营商劫持在以前是非常猖狂的
由于我们通过网络传输的任何的数据包都会经过运营商的网络设备 (路由器 , 交换机等) , 那么运营商的网络设备就可以解析出你传输的数据内容 , 然后进行篡改.
正常情况下点击 “下载按钮” , 其实就是在给服务器发送了一个 HTTP 请求 , 获取到的 HTTP 响应其实就包含了该 APP 的下载链接 . 运营商劫持之后 , 就发现这个请求是要下载天天动听 , 那么就自动的把交给用户的响应给篡改成 “QQ浏览器” 的下载地址了 .
image.png
互联网上其实是非常不安全的 , 你觉得你没遇到过这些事 , 但其实你可能已经中招了

  1. 你的电脑这边没啥值钱的东西 , 没人盯着你
  2. 你的电脑其实已经中招 , 你不知道
  3. 你的电脑的杀毒软件 / 防火墙把你保护的很好

之后买了云服务器之后 , 感受就更加明显了
image.png

那既然运营商能够进行劫持 , 黑客也肯定能进行劫持咱们的数据
比如 , 黑客黑入了某个路由器 , 这个时候就可能获取到所有经过路由器的网络数据报

  1. 运营商路由器可能会受到攻击
  2. 公共场合的 wifi 也是活靶子

此时如果你继续在网络上按照明文传输信息 , 你的账号密码就要被窃取了
如何保证数据不被窃取呢 ?
无法阻止黑客入侵路由器 , 但是可以想办法对数据进行加密 , 即使被窃取 , 他也不知道是啥意思

1.2 加密是什么 ?

例子来源于这篇文章 : https://mp.weixin.qq.com/s/OkDstEG5Fu9QhNU65tgBeQ

小学上课的时候,都传过小纸条吧?传纸条的时候每个拿到纸条的同学都会忍不住看一眼,毫无隐私可言
假设班花想对我表白,又不想在传的过程中让别人发现她的情意绵绵。
就会在课间十分钟里告诉我,“每个字母向左移动一位,就是我想对你说的话”。
然后在上课的时候,递出纸条,上面写了 eb tib cj。每个帮助传递纸条的同学看了之后,都暗骂“谜语人,你给我滚出哥谭镇”。
嘿嘿,你们不懂,我懂。
我拿到纸条后,将每个字母向左移动一位,得到 da sha bi。
什么话,这是什么话。
坏女人想要毁我向道之心?我果断拒绝了她的表白。

现在回忆起来,感动之余,会发现,像这种,将一段大家看得懂的信息(明文)转换为另一段大家看不懂的信息(密文),其实就是加密
像这种“左移”的加密方法,其实就是所谓的秘钥(密钥)
而这种加密和解密用的都是同一个秘钥的加密形式,就叫对称加密。

对称加密
那既然有对称加密,那就有非对称加密
不同点在于,非对称加密,加密和解密用到的不是同一个秘钥,而是两个不一样的秘钥,分别是公钥和私钥

非对称加密

密钥是用来 “加密” 和 “解密” 的关键数据
明文通过密钥变成密文这个过程就是"加密" , 密文通过密钥变成明文这个过程就是"解密"
如果加密和解密过程中 , 使用的密钥是同一个就叫做 : “对称加密”
如果加密和解密过程中 , 使用的是不同的密钥 , 就叫做 : “非对称加密”

1.3 HTTPS 的加密过程

对称加密

加密中最典型的办法 , 就是对称加密
加密和解密使用的是同一个密钥

image.png

非对称加密

如果加密和解密过程中 , 使用的是不同的密钥 , 就叫做 : “非对称加密”
非对称加密用来加密解密的密钥是一对有关联的整数 (通过数学上面的一些方法来生成的)

拿两个很大的素数 , 很容易得到乘积 , 但是知道乘积 , 没法还原回这两个素数

把这一对密钥 , 其中一个公布出来(公钥) , 另一个自己藏着(私钥)
就可以使用公钥来加密 , 私钥来解密
或者也可以私钥来加密 , 公钥来解密

可以这样理解 : 小区楼下有邮箱
每一户有自己的邮箱 , 有一个钥匙
邮递员手里有一把小锁头 (邮递员有很多个 , 这样的锁头也有很多 , 但是钥匙都是同一把)
邮递员可以通过这个锁 , 把你的信锁进去 [使用公钥加密]
你就可以拿着钥匙来开锁获取到信了 [使用私钥解密]

1678680981409-5581776e-8c2a-4d85-8419-dcf36c601701.png
既然非对称加密这么香 , 为啥还要用对称加密呢 ?
非对称加密的加密和解密的开销 , 都是非常大的 , 就不如对称加密轻量
为了让安全和效率同时都具备 , 那我们就二者结合使用

但是上述的过程并非是无懈可击 , 黑客仍然有办法解决这个问题 , 叫做 : 中间人攻击

引入 “证书” 机制

先给大家讲解一下 , 什么是 “中间人攻击”
举个栗子 : 我们看电视剧经常会看到黑帮大佬们进行交易
易烊千玺和王源要进行交易 , 但是他们两个彼此都不认识 , 这时候王俊凯就可以浑水摸鱼
跟易烊千玺进行交易的时候 , 王俊凯假装是王源进行交易
跟王源进行交易的时候 , 王俊凯就假装自己是易烊千玺
这样 , 王俊凯就是一个中间人的操作 , 将易烊千玺和王源一网打尽
无标题.png
那如何解决中间人攻击的问题呢 ?
我们就需要让客户端有能力鉴别传过来的公钥到底是不是服务器传过来的公钥 , 有没有被动过手脚
HTTPS 就引入了一个证书机制
无标题.png
那 Fiddler 是如何实现抓包 HTTPS 呢?
Fiddler 其实就是在进行中间人攻击
首次勾选 Fiddler 的 Https , 提示是否要安装一个 xxxx 证书
这个是 Fiddler 为了实现中间人攻击 , 自己生成的证书
得安装了这个证书 , 浏览器才会信任 Fiddler , 浏览器才不会弹框

上述的这些过程 , 不是 HTTPS 独有的 , 这个过程是 SSL/TLS 的加密流程
HTTPS 就是 HTTP + SSL
其他的协议也可能使用 SSL (比如 SSH 协议)

1.4 HTTP VS HTTPS

HTTPS 是基于 HTTP 的 , 他更加安全了 , 主要在以下几点

  1. 安全性
    a. HTTP 是明文传输的
    b. HTTPS 通过 SSL/TLS 进行数据加密
  2. 加密性 : HTTPS 会在数据发送和接收之前会进行加密
  3. 证书 : HTTPS 网站需要获得 SSL/TLS 证书
  4. 端口号 : HTTP 端口号是 80 , HTTPS 端口号是 443
  5. 搜索引擎优化 : 谷歌浏览器就会将 HTTPS 的网站排列在更靠前的位置

到此为止 , 这篇文章就讲解完毕了
我们主要讲解了以下几点

  1. 什么是运营商劫持 ?
  2. HTTPS 是怎样加密的
    a. 对称加密
    b. 非对称加密
    c. 证书
  3. HTTPS 与 HTTP 的区别

如果你对 HTTPS 有一定的了解了 , 就请给我一键三连~
在这里插入图片描述

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

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

相关文章

吐血整理,金融银行测试的“火“到底在哪里?银行测试真正实施...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 银行里的软件测试…

许多网友可能还不知道,升级到Windows 11其实没那么复杂,只要符合几个条件可以了

如果你的Windows 10电脑可以升级Windows 11,现在怎么办?有几种方法可以免费安装新的操作系统。以下是你的选择。 如果你想升级到Windows 11,你可以随时购买一台已经安装了操作系统的新电脑。然而,如果你目前的Windows 10 PC满足所有必要的升级要求,那么在Windows 11免费的…

3.6-Dockerfile语法梳理及最佳实践

WORKDIR是设置当前docker的工作目录 ADD 和 COPY 为了将本地的一些文件添加到docker image里面,ADD 和 COPY的作用特别像,但是ADD 和 COPY还有一些区别,ADD不仅可以添加本地文件到docker里面,还可以将文件在添加到docker image里面…

AIRLOOK与商汤科技强强联合,打造“实景三维与AI大模型”结合的全新盛宴

实景三维中国建设作为数字中国建设的重要内容之一,是一项涉及多方面技术支撑的综合性工程,同时作为AI技术在其中发挥着至关重要的作用,AI大模型的发展也将进一步推动实景三维建模技术的创新和发展。在此背景下,AIRLOOK与商汤科技携…

七、文件包含漏洞

一、文件包含漏洞 解释:文件包含漏洞是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行;其还能够使得服务器上的源代码被读取,在PHP里面我们把可重复使用的函数写入到单个文件中&#x…

Java Swing商品信息查询系统

内容要求 1) 本次程序设计是专门针对 Java 课程的,要求使用 Java 语言进行具有一定代码量的程序开发。程序的设计要结合一定的算法,在进行代码编写前要能够设计好自己的算法。 2)本次程序设计涉及到 Java 的基本语法,即课堂上所…

宠物信息服务预约小程序的效果如何

宠物的作用越来越重要,因此铲屎官们对自己爱宠的照顾也是加倍提升,而市场围绕宠物展开的细分服务近些年来逐渐增多,且市场规模快速增长。涉及之广,涵盖宠物衣食住行、医疗、美容、婚丧嫁娶等,各品牌争相抢夺客户及抢占…

Mysql之单行函数

Mysql之单行函数 单行函数数值类型函数字符串类型的函数日期和时间函数加密与解密函数信息函数 单行函数 函数的定义 函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来, 需要的时候直接调用即可。这…

【MySQL】insert和select单表查询详解(包含大量示例,看了必会)

insert和select 前言正式开始Create全列插入指定列插入多行插入插入失败就更新替换 Retrieveselect语法简介开始查询全列查询指定列查询select后面跟表达式对结果去重条件查询 查询的示例英语不及格的同学及英语成绩 ( < 60 )语文成绩在 [80, 90] 分的同学及语文成绩数学成绩…

《Fine-Grained Image Analysis with Deep Learning: A Survey》阅读笔记

论文标题 《Fine-Grained Image Analysis with Deep Learning: A Survey》 作者 魏秀参&#xff0c;南京理工大学 初读 摘要 与上篇综述相同&#xff1a; 细粒度图像分析&#xff08;FGIA&#xff09;的任务是分析从属类别的视觉对象。 细粒度性质引起的类间小变化和类内…

YOLOv8优化策略:轻量级Backbone改进 | 高效模型 (Efficient MOdel, EMO),现代倒残差移动模块设计 | ICCV2023

🚀🚀🚀本文改进:面向移动端的轻量化网络模型——EMO,它能够以相对较低的参数和 FLOPs 超越了基于 CNN/Transformer 的 SOTA 模型,支持四个版本EMO_1M, EMO_2M, EMO_5M, EMO_6M 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到…

JavaScript职责链模式

JavaScript职责链模式 1 什么是职责链模式2 举个例子3 用职责链模式重构代码4 灵活可拆分的职责链节点5 异步的职责链 1 什么是职责链模式 职责链模式是一种行为型设计模式&#xff0c;它允许将请求沿着处理者链进行传递&#xff0c;直到其中一个处理者能够处理该请求为止&…

C++算法入门练习——树的带权路径长度

现有一棵n个结点的树&#xff08;结点编号为从0到n-1&#xff0c;根结点为0号结点&#xff09;&#xff0c;每个结点有各自的权值w。 结点的路径长度是指&#xff0c;从根结点到该结点的边数&#xff1b;结点的带权路径长度是指&#xff0c;结点权值乘以结点的路径长度&#x…

RobotFramework框架之导入自己打包的python程序(十五)

引言 RobotFramework自动化框架&#xff08;以下简称RF&#xff09;之前文章我们讲了通过import第三方的library&#xff08;RequestsLibrary等&#xff09;&#xff0c;在实际项目中第三方的包并不能满足我们的需要&#xff0c;此时我们可自己编写python模块&#xff08;.py文…

springboot集成nacos并实现自动刷新

目录 1.说明 2.示例 3.自动刷新的注意点 1.说明 springboot项目中存在好多配置文件&#xff0c;比如配置数据信息&#xff0c;redis信息等等&#xff0c;配置文件可以直接放在代码&#xff0c;也可以放在像nacos这样的组件中&#xff0c;实现动态的管理&#xff0c;修改配置…

c++ list容器使用详解

list容器概念 list是一个双向链表容器&#xff0c;可高效地进行插入删除元素。 List 特点&#xff1a; list不可以随机存取元素&#xff0c;所以不支持at.(position)函数与[]操作符。可以对其迭代器执行&#xff0c;但是不能这样操作迭代器&#xff1a;it3使用时包含 #includ…

数据分析思维与模型:群组分析法

群组分析法&#xff0c;也称为群体分析法或集群分析法&#xff0c;是一种研究方法&#xff0c;用于分析和理解群体内的动态、行为模式、意见、决策过程等。这种方法在社会科学、心理学、市场研究、组织行为学等领域有广泛应用。它可以帮助研究人员或组织更好地理解特定群体的特…

算法通关村第十六关白银挑战——滑动窗口高频问题

关注微信公众号&#xff1a;怒码少年。回复关键词【电子书】&#xff0c;领取多本计算机相关电子书 公众号后台开启了咨询业务&#xff0c;欢迎大家向我提问&#xff0c;免费&#xff0c;为爱发电&#x1f60e; 大家好&#xff0c;我是怒码少年小码。 武汉今天真的超级冷&…

kubenetes-Service和EndpointSlice

一、Service 二、Endpoint Endpoint记录一个 Service 对应一组 Pod 的访问地址&#xff0c;一个 Service 只有一个 Endpoint资源。Endpoint资源会去监测Pod 集合&#xff0c;只要服务中的某个 Pod 发生变更&#xff0c;Endpoint 就会进行同步更新。 三、Service、Endpoint和 P…

Linux 网络:PMTUD 简介

文章目录 1. 前言2. Path MTU Discovery(PMTUD) 协议2.1 PMTUD 发现最小 MTU 的过程 3. Linux 的 PMTUD 简析3.1 创建 socket 时初始化 PMTUD 模式3.2 数据发送时 PMTUD 相关处理3.2.1 源头主机发送过程中 PMTU 处理3.2.2 转发过程中 PMTUD 处理 4. PMTUD 观察5. 参考链接 1. 前…