HTTPS的工作过程

一、HTTPS是什么

HTTPS是⼀个应⽤层协议.是在HTTP协议的基础上引⼊了⼀个加密层(SSL/TLS),HTTP协议内容都是按照⽂本的⽅式明文传输的.这就导致在传输过程中出现⼀些被篡改的情况.

"运营商劫持"

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

不仅是运营商,黑客也会对此类信息进行攻击,因此,明文传输风险极大,HTTPS就是在HTTP基础上进行加密,从而保护用户的信息安全。

二、工作过程

整体分为两大类:对称加密 和非对称加密

对称加密

对称加密通过一个同一个"密钥",把明文变成密文。至于密钥的生成,就依据不同的规则设置了。

每个客户端的密钥都应该是不一样的,如果使用统一的密钥,黑客也就容易拿到了。

但是,服务器将要保存每个客户端对应的密钥,这是一个很麻烦的事情,代价极大。

因此,比较理想的做法是当服务器与客户端建立连接的时候,商定好使用的密钥。

但这又会引发一个新问题:

把密钥明文传送的话,黑客也会拿到,那么就需要对密钥进行加密,就得再发送key2,然后对key2加密......

这种方式显然也是行不通的。

非对称加密

为了解决对称密钥面临的风险,引入非对称加密。

非对称加密要用到两个密钥,一个"公钥",一个"私钥",这两个钥匙是配对的,缺点是运算速度非常慢,比对称密钥还慢上很多。

这里的公钥所有设备都能拿到,但是解密的私钥只有服务器有,这样就把对称加密的过程加了层保护。这样看似很安全了。

但上述的过程存在重大隐患。

中间人攻击

黑客自己生成一对公钥私钥,把客户端拿到的服务器换成自己的,这样就能拿到客户端的对称密钥,然后通过服务器的公钥加密,这样就能混入客户端与服务器的会话中。

因此,需要一个校验机制来让客户端判断公钥是否来自服务器。

证书

服务器向可信任的第三方机构申请证书,需要提交材料,包括服务器的域名之类内容,然后服务器依据进行审查,通过后给服务器颁发证书,类似于一个结构体,里面包含颁发证书的机构、证书的有效期、服务器的公钥,服务器的域名等,然后通过机构的私钥进行加密生成一个数字签名,实际上就是一个被加密的校验和。

这个证书在服务器搭建的时候就申请好。因此客户端就需要验证证书:

校验过程:客户端拿到证书后,根据证书里的信息使用同样的算法再次计算校验和,记为a。

通过认证机构的公钥解密数字签名得到第二个校验和,记为b。

比较a和b,如果不同,证书无效,即中间被人修改过。可能遭到第三方攻击。

如果客户端拿到的公钥是黑客生成的呢?

在安装操作系统时,会内置一些知名第三方认证机构的公钥。所以拿到的公钥是安全的。

如果黑客直接修改证书里的公钥呢?

那么计算出的校验会改变,系统会提示网站不安全

如果黑客自己申请一个证书来替换服务器给的证书呢?

证书里包含服务器域名,黑客申请的域名肯定是与你要访问的服务器是不同的,这样会这导致在校验时发现域名不匹配

相关推荐
FPGA小迷弟3 小时前
FPGA开发Vivado Block Design/Vitis/SDK/xlinx/开发教程,保姆级别,一看就会!
网络协议·tcp/ip·fpga开发·verilog·fpga
FPGA小迷弟3 小时前
基于FPGA实现智能网卡的概念,什么是智能网卡
网络协议·tcp/ip·fpga开发·verilog·fpga
jaysee-sjc9 小时前
【苍穹外卖】Day10:定时任务与 WebSocket 实时提醒实战
java·开发语言·javascript·数据库·vue.js·websocket·网络协议
@Ma10 小时前
Fiddler无法从苹果手机上获取app上https数据包解决方案
智能手机·https·fiddler
幻智星科技11 小时前
我砍掉了FPGA里的ARM核项目反而提前交付了
arm开发·网络协议·fpga开发·硬件架构
cyf3111 小时前
半小时玩转RDMA:从零跑通高速网络通信
网络协议·rdma·高速通信·rocev2·wireshark抓包·ai 智算网络·入门实战
奇牙coding13 小时前
doubao-seed-2.1-pro 报 HTTP 401 怎么办?Key 正确也要检查请求头和端点
网络·数据库·http·ai
砺星Leetx20 小时前
工业总线选型与对接实战:PROFINET、EtherCAT、EtherNet/IP、PROFIBUS、Modbus-TCP 与 CC-Link
网络·网络协议·tcp/ip·控制器·国产拧紧系统
李纲明1 天前
WordPress 后台登录马上被踢回登录页:Cookie 域、HTTPS、盐值和页面缓存怎么查
运维·缓存·https·php·wordpress·cookie
Lsetea1 天前
curl指定--tlsv1.2仍连接TLS1.3:最低版本与tls-max排查
linux·https·ssl证书·curl·tls