应用层—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) 发给客户端,以此骗取客户端对称加密的密钥,从而在后续过程中截取信息。


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

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

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


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

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

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

相关推荐
-qOVOp-24 分钟前
408第三季part2 - 计算机网络 - ip分布首部格式与分片
网络协议·tcp/ip·计算机网络
数通Dinner1 小时前
RSTP 拓扑收敛机制
网络·网络协议·tcp/ip·算法·信息与通信
G等你下课5 小时前
AJAX请求跨域问题
前端·javascript·http
qq_171538857 小时前
TCP/IP协议精解:IP协议——互联网世界的邮政编码系统
网络·网络协议·tcp/ip
兮动人8 小时前
获取终端外网IP地址
java·网络·网络协议·tcp/ip·获取终端外网ip地址
用户8762191062458 小时前
【计算机网络】HTTP 版本
http
拾光拾趣录9 小时前
无状态协议下的用户状态管理:Web应用如何保持用户登录态
前端·http·https
摘星编程9 小时前
深入理解责任链模式:从HTTP中间件到异常处理的实战应用
http·设计模式·中间件·责任链模式·实战应用
海外空间恒创科技10 小时前
一台香港原生ip站群服务器多少钱?
服务器·网络协议·tcp/ip
DemonAvenger11 小时前
TCP连接池设计与实现:提升Go应用网络性能
网络协议·架构·go