当前位置: 首页 > news >正文

HTTPS

目录

一、HTTPS是什么

1.1 运营商劫持 

1.2 加密是什么 

二、HTTPS的工作过程 

2.1 对称加密

2.2 非对称加密 


一、HTTPS是什么

HTTPS也是一个应用层协议,是在HTTP协议的基础上引入了一个加密层,HTTP的内容都是按照文本的方式明文传输的,这就导致在传输过程中出现一些被篡改的情况。

1.1 运营商劫持 

什么是运营商劫持? 

由于我们通过网络传输的任何数据包都会经过运营商的网络设备(交换机,路由器等),那么运营商的网络设备就可以解析出你传输的数据内容,并进行篡改。

假如我用我的浏览器下载网易云音乐,我的数据经过运营商设备,运营商就把我要下载的链接替换成了QQ浏览器,于是我下载的就是一个QQ浏览器了,这种行为就是运营商劫持。

思考下,为什么运营商要进行劫持?

被金钱蒙蔽了双眼

不止运营商可以劫持,其他的黑客也可以用类似的手段进行劫持,来窃取用户隐私信息,或者篡改内容,试想一下,如果黑客在用户登录支付宝的时候获取用户账户余额,甚至获取用户的支付密码........在互联网上,明文传输是比较危险的事情!

HTTPS就是在HTTP的基础上进行了加密,进一步来保证用户的信息安全。

1.2 加密是什么 

加密就是把明文(要传输的信息)进行一系列变换,生成密文。解密就是把密文再进行一系列变换,还原成明文。

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

二、HTTPS的工作过程 

既然要保证数据安全,就需要进行加密。网络传输中不再直接传输明文了,而是加密之后的密文,加密的方式有很多,但是整体可以分成两大类:对称加密和非对称加密。

2.1 对称加密

对称加密其实是通过同一个密钥,把明文加密成密文,并且也能把密文解密成明文。

客户端和服务器都持有同一个密钥, 客户端传输的数据(HTTP请求的header和body)都通过这个密钥进行对称加密,实际上在网路传输过程中,传输的是密文,服务器在收到密文后,接下来就可以根据刚才的密钥来进行解密,从而拿到明文。

上图中,由于数据是加密的,黑客因为没有密钥从而不知道明文是什么

如果黑客知道秘钥了,就是可以破解的。

客户端和服务器使用相同的密钥,但是服务器不只是和一个客户端进行交互,是同一时刻和一堆客户端进行交互,如果是相同的密钥,那么黑客也可以伪装成一个客户端和服务器进行交互,这样就可以拿到密钥了.....于是,每个客户端和服务器进行交互时,就有了各自的密钥,每个客户端的密钥各不相同。

但事情没有那么简单,服务器同一时刻就是给很多客户端提供服务的,这么多客户端,每个客户端都有各自的密钥,因此服务器就需要维护每个客户端和每个密钥之间的关联关系,这也是个很麻烦的事情~

比较理想的做法,就是能在客户端和服务器建立连接的时候,双方协商确定这次的密钥是啥。

 

但是如果直接把密钥明文传输,那么黑客也能获取密钥了~~此时后续的加密操作就形同虚设了。

因此密钥的传输也必须加密传输! 

但是要想对密钥进行对称加密,就仍需要先协商确定一个“密钥的密钥”,此时密钥的传输再用对称加密就行不通了。此时就需要引入非对称加密 。

2.2 非对称加密 

非对称加密需要用到两个密钥,一个叫做公钥,一个叫做私钥。

公钥和私钥是配对的,最大的缺点就是运算速度非常慢,比对称加密慢很多。

  1. 通过公钥对明文加密,变成密文;
  2. 通过私钥对密文解密,变成明文。 

也可以反着用

  1. 通过私钥对明文加密,变成密文;
  2. 通过公钥对密文解密,变成明文

基于非对称加密,就是让服务器自己生成一堆公钥和私钥,公钥发出去,私钥自己保存。

此过程也有一定缺点:

在服务器把自己的公钥返回给客户端时,被黑客进行了中间拦截,它自己生成了一对公钥和私钥。

过程详解:首先客户端想要知道公钥,服务器会给每个设备发公钥,但是被黑客入侵,黑客就生成了自己的一对公钥和私钥,于是黑客就把自己的公钥发给客户端,等客户端和服务器进行交互时,黑客就能用自己的私钥对密文进行解密,得到密钥就能得到明文。

解决方式:

  1. 在客户端和服务器刚建立连接的时候,服务器给客户端返回一个证书。
  2. 这个证书包含了刚才的公钥,也包含了网站的身份信息。

证书机制,就相当于引入了一个认证机构,此处的证书就是一个加密的字符串和服务器的域名。

尽管黑客在理论上可以尝试修改传输中的证书,但是由于签名的存在,他们不能成功地修改证书而不被发现。如果证书被篡改,客户端会在验证过程中检测到这一点,从而拒绝建立连接。

相关文章:

  • 使用filezilla连接Ubuntu22.04虚拟机
  • Linux renice命令教程:如何优雅地调整进程优先级(附案例详解和注意事项)
  • 【笔试】美团2023年秋招第5场笔试(后端数开软件方向)
  • Linux内核之debugfs_create_dir与debugfs_create_file实例与调用栈流程(三十二)
  • 每日一题 --- 四数相加 II[力扣][Go]
  • 星闪BLE与蓝牙
  • maven 依赖机制
  • 鸿蒙系统,作为华为自主研发的一款全新操作系统
  • 要将Oracle中的表从按年分区转换为按月分区,并且保持数据不变,不锁表
  • 程序汪若依微服务华为云Linux部署保姆教程
  • QGraphicsView实现图片放大、缩小、鼠标拖动、以鼠标点放大缩小
  • SpringBoot集成Solr全文检索
  • 非隔离恒压AC-DC电源IC:SM7035P
  • 服务器被挖矿了怎么办,实战清退
  • RK3568-开启ptp服务
  • Docker常见软件部署2
  • 简单了解原型模式
  • C++——vector类及其模拟实现
  • 专业130+总分410+西南交通大学924信号与系统考研经验西南交大电子信息通信工程,真题,大纲,参考书。
  • 【echart】数据可视化+vue+vite遇到问题
  • 菲护卫艇企图侵闯中国黄岩岛领海,南部战区:依法依规跟踪监视、警告驱离
  • 公募基金改革八大要点:建立浮动管理费收取机制、降低规模排名考核权重
  • 网民反映“潜水时遭遇服务质量不佳”,三亚开展核查调查
  • 沪幼升小网上报名明起开始,是否参与民办摇号怎么定?
  • 贵州黔西游船倾覆事故70名落水人员在院救治,均为轻伤
  • 路遇交通事故镇干部冲进火海救人,已申报见义勇为