网络原理-HTTPS

HTTPS是什么

HTTPS也是一个应用层协议,在HTTP的基础上引入了加密.HTTP的传输是明文传输的,这就导致了在传输过程中可能会被人恶意篡改.在互联网上,明文传输是比较危险的事.HTTPS进行了加密,进⼀步的来保证⽤⼾的信息安全.

加密是什么

加密就是把明文通过一系列的转变,变成密文.解密就是把密文通过一系列的转变,变成明文.在这个过程中,往往需要一个或者多个中间数据辅助一个过程,这个数据称为密钥.

HTTPS的工作过程

在网络传输中,不再传输明文,而是传输加密后的密文.加密的方法大体分为两类:对称加密与非对称加密.

对称加密

对称加密是通过使用同一个密钥进行加密和解密.能通过密钥把明文加密成密文,也能使用密钥把密文解密成明文.

引入对称加密后,即使黑客拦截了数据,但是不知道密钥是什么,就无法对数据解密,这样就保证了安全.但是,服务器一次会和多个客户端进行通信,这些客户端和服务器之间使用的密钥肯定是不相同的(如果相同,那么密钥就形同虚设了).这样,就需要在一开始沟通,这次通信的密钥是什么,这一次通信是没有加密的.如果,黑客拦截到这次通信,那么黑客就知道密钥是多少,就能对后续的通信进行解密.

如果是这种情况,就要对密钥的密钥进行加密,这样就变成了一个套娃问题,密钥的密钥也可能会被拦截,此时对称加密就无法解决这样的问题.

非对称加密

由于对称加密无法解决,密钥传输过程是明文的问题,于是就引入了非对称加密.

非对称加密是什么?非对称加密中会有两个密钥,一个叫"公钥"一个叫"私钥".

如果使用公钥对数据加密,那么就只能使用私钥对数据进行解密.

如果使用私钥对数据加密,那么就只能使用公钥对数据进行解密.

但是非对称加密是非常消耗性能的,如果通信过程全程使用非对称加密,很可能导致服务器崩溃,在HTTPS的通信中,只对对称密钥加密即可.如果对称密钥是安全的,那么对称加密就是安全的.公钥需要先从服务器获取.

这种情况,客户端无法得知获取到的公钥是否是伪造的.黑客使用中间人攻击,让客户端以为在和服务器通信,实际是客户端在和黑客通信.

像这样,黑客设备在中间充当一个转发服务器,就可以知道通信过程中的所有信息.

引入证书

为了防止出现上述的中间人攻击,就引入了证书.证书是服务器在运营前,向公证机构申请的一份标识.证书中包含:证书发布机构,有效期,证书持有者,公钥,Host,签名等待信息.客户端在访问服务器时先获取证书,就能获取到公钥.那么,证书是如何防止篡改的呢?

证书中有一个重要的信息:签名,签名是基于非对称算法的,是一个经过加密的校验和.签名的加密是公证机构使用私钥进行的加密,而公钥一般是内置在操作系统中的.

在中间人攻击中,黑客如果篡改了证书的信息,如公钥,那么在客户端收到证书后,使用签名中的校验和对证书进行判断真伪,就能发现证书被篡改.黑客修改签名来篡改证书呢?显然是不行的,因为签名是由公证机构的私钥加密的,当黑客修改签名后,只能通过其他方法对签名加密.客户端收到后,无法使用公钥正确解密签名,也能知晓证书被篡改.

如果中间人选择调包证书,也是行不通的.因为证书中包含Host,当客户端发现证书中的Host与目标Host不同时,也能知晓服务器证书被调包.

一次通信的完整流程

相关推荐
努力学习的小廉3 小时前
深入了解linux网络—— TCP网络通信(下)
linux·网络·tcp/ip
摇滚侠3 小时前
什么是 mesh 组网
网络协议
Arva .4 小时前
HTTP Client
网络协议·http·lua
Bruce_Liuxiaowei5 小时前
MQTT协议在物联网环境中的安全风险与防范指南
运维·网络·物联网·安全·网络安全
Paul_09205 小时前
golang面经——内存相关模块
服务器·网络·golang
yenggd5 小时前
vxlan-bgp-evnp分布式网关配置案例
网络·分布式·华为
CiLerLinux9 小时前
第四十九章 ESP32S3 WiFi 路由实验
网络·人工智能·单片机·嵌入式硬件
摩羯座-1856903059411 小时前
爬坑 10 年!京东店铺全量商品接口实战开发:从分页优化、SKU 关联到数据完整性闭环
linux·网络·数据库·windows·爬虫·python
YoungLime12 小时前
DVWA靶场之十三:CSP 绕过(Content Security Policy (CSP) Bypass)
网络·安全·web安全