应用层—HTTPS详解(对称加密、非对称加密、密钥……)

文章目录

  • HTTPS
    • [什么是 HTTPS](#什么是 HTTPS)
    • [HTTPS 如何加密](#HTTPS 如何加密)
    • [HTTPS 的工作过程](#HTTPS 的工作过程)

HTTPS

什么是 HTTPS

HTTPS 也是一个应用层的协议。是在 HTTP 协议的基础上引入的一个加密层。

由来:HTTP 协议内容都是按照文本的方式明纹传输,这就导致在传输过程中出现一些被篡改的情况,因此引入 HTTPS 加密层,用于保护数据。

典型案例就是运营商劫持。由于我们通过网络传输的任何数据包,都会经过运营商的网络设备(路由器、交换机等),那么运营商的网络设备就可以解析出你传输的数据内容,并进行篡改。比如说运营商在用户请求和响应的过程中,插入自己的广告或其他内容,改变原始网页的内容。

运营商为啥要这么做呢??

不止运营商可以劫持,其他的 黑客 也可以用类似的手段进行劫持,来窃取用户隐私信息,或者篡改内容。

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


HTTPS 如何加密

想必大家都看过抗战时期的电视剧。在战争中,指挥部向前线传达命令或者情报时,通常会用利用无线电也就是我们所说的电报进行传达。

我们为什么会用电报进行信息传达呢??其中最重要的一个原因是,电报具有很高的保密性.

在电报传输的时候,需要有一个密码本(称密钥 )和一段要传输的文字(称明文 ),通信员会按照文字在密码本上的格式来进行传输,以此来形成一段密文 。当接收方收到这段密文后,可以参照密码本来进行解析。如果是敌军截获这段电报,是很难解析出来其中的含义的。HTTPS 网络传输的过程,就相当于电报通信的过程。

根据电报的例子我们不难理解,明文+密钥 = 密文(加密) 、密文+密钥 = 明文(解密).

有的场景,加密和解密,使用的是相同的密钥,称为"对称加密"

还有的场景,加密和解密,使用的是不同的密钥,称为"非对称加密"

非对称加密中的不同密钥,还可以分为"公钥 "和"私钥"。公钥可以用来加密,私钥就能用来解密。反过来同样如此。


HTTPS 的工作过程

对称加密

最简单的保证安全的做法,是引入对称密钥,针对传输的数据(HTTP 的 header 和 body)进行加密。

但事情没这么简单。每个客户端,都需要有一把自己的对称密钥(不同客户端的密钥也要不同)如果客户端生成了密钥,就需要把密钥传输给服务器。

这时候,就还需要想办法,把密钥安全的传输到对端。**需要对这个密钥进行加密!!**此时如果还继续使用对称加密,针对刚才的密钥进行加密,就一定是不行的!!

需要使用非对称加密,针对对称密钥进行加密。


非对称加密

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

公钥和私钥是配对的。最大的缺点就是运算速度非常慢,比对称加密要慢很多,因此传输中通常使用对称加密。

  • 通过 公钥 对明文加密,变成密文。
  • 通过 私钥 对密文解密,变成明文。

反过来也可以用。

针对上面对称加密产生的问题,可以使用非对称加密来解决。

首先,服务器产生一对 公钥 和 私钥 ,私钥服务器自己留着用,公钥会发给服务器。接着客户端利用公钥生成密文发送给服务器(发送对称加密的密钥给服务器),服务器利用自己的私钥解开密文。在这过程中因为黑客没有掌握私钥,所以无法破解密文。


上述的过程中,还存在一个严重的问题,中间人攻击。黑客可以使用中间人攻击的方式,仍然可以拿到对称密钥。

简单来说就是,黑客可以假装自己是服务器,收到服务器发来的 公钥(pub1) 后,自己再设置一对 公钥(pub2) 和 私钥(pri2),将自己的 公钥(pub2) 发给客户端,以此骗取客户端对称加密的密钥,从而在后续过程中截取信息。


如何解决中间人攻击的问题呢??

解决中间人攻击的关键,需要让客户端能够确认当前收到的公钥,确实是服务器返回的,而不是黑客伪造的!!!

因此引入了证书机制,需要有一个第三方的认证机构。通过第三方机构作保,来确认当前的 公钥 是有效的。


到了这一步,黑客仍然还有办法!!!黑客可以把自己伪装成认证机构,骗客户端安装自己的公钥。此时就可以正大光明的替换掉证书中的数字签名。(这里如何进一步进行反针对,就不再讨论)

网络安全中,"攻击"和"防御"是一个对抗的过程。这个过程,理论上是"无限升级的过程"。由此我们可以看到,网络上没有绝对的安全。

上网需谨慎,消息套路深!!!

相关推荐
Zach_yuan6 小时前
传输层之TCP/UDP 核心原理全解析:从协议基础到实战机制
linux·网络协议·tcp/ip·udp
chenjingming6666 小时前
浏览器(如chrome)代理抓包时提示Your Connection is not private 问题临时处理
chrome·https
阿钱真强道6 小时前
13 JetLinks MQTT:网关设备与网关子设备 - 温控设备场景
python·网络协议·harmonyos
寻星探路12 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
王达舒199412 小时前
HTTP vs HTTPS: 终极解析,保护你的数据究竟有多重要?
网络协议·http·https
朱皮皮呀12 小时前
HTTPS的工作过程
网络协议·http·https
Binary-Jeff12 小时前
一文读懂 HTTPS 协议及其工作流程
网络协议·web安全·http·https
那就回到过去19 小时前
MPLS多协议标签交换
网络·网络协议·hcip·mpls·ensp
胖咕噜的稞达鸭1 天前
网络基础:初识TCP/IP协议
网络·网络协议·tcp/ip
全栈工程师修炼指南1 天前
Nginx | stream content 阶段:UDP 协议四层反向代理浅析与实践
运维·网络·网络协议·nginx·udp