HTTPS 的加密流程

一.HTTPS是什么

HTTPS也是⼀个应⽤层协议.是在HTTP协议的基础上引⼊了⼀个加密层.

HTTP协议内容都是按照⽂本的⽅式明⽂传输的.这就导致在传输过程中出现⼀些被篡改的情况.

加密"是什么

加密就是把明⽂ (要传输的信息)进⾏⼀系列变换,⽣成密⽂

解密就是把密⽂ 再进⾏⼀系列变换,还原成明⽂

二.HTTPS的⼯作过程

既然要保证数据安全,就需要进⾏"加密".

⽹络传输中不再直接传输明⽂了,⽽是加密之后的"密⽂".

加密的⽅式有很多,但是整体可以分成两⼤类:对称加密和⾮对称加密

1.引⼊对称加密

对称加密其实就是通过同⼀个"密钥",把明⽂加密成密⽂,并且也能把密⽂解密成明⽂

把密文和密钥通过网络传输到服务器,黑客很容易就拿到密钥对密文解析得到明文 这跟没加密没什么区别

2.引⼊⾮对称加密

⾮对称加密要⽤到两个密钥,⼀个叫做"公钥",⼀个叫做"私钥".

公钥和私钥是配对的.最⼤的缺点就是运算速度⾮常慢,⽐对称加密要慢很多.

• 通过公钥对明⽂加密,变成密⽂

• 通过私钥对密⽂解密,变成明⽂

也可以反着⽤

• 通过私钥对明⽂加密,变成密⽂

• 通过公钥对密⽂解密,变成明⽂

客⼾端在本地⽣成对称密钥,通过公钥加密,发送给服务器.

• 由于中间的⽹络设备没有私钥,即使截获了数据,也⽆法还原出内部的原⽂,也就⽆法获取到对称密钥

• 服务器通过私钥解密,还原出客⼾端发送的对称密钥.并且使⽤这个对称密钥加密给客⼾端返回的响应数据.

• 后续客⼾端和服务器的通信都只⽤对称加密即可.由于该密钥只有客⼾端和服务器两个主机知道,其他主机/设备不知道密钥即使截获数据也没有意义

3.中间⼈攻击

⿊客可以使⽤中间⼈攻击,获取到对称密钥.

  1. 服务器具有⾮对称加密算法的公钥S,私钥S'

  2. 中间⼈具有⾮对称加密算法的公钥M,私钥M'

  3. 客⼾端向服务器发起请求,服务器明⽂传送公钥S给客⼾端

  4. 中间⼈劫持数据报⽂,提取公钥S并保存好,然后将被劫持报⽂中的公钥S替换成为⾃⼰的公钥M,并将伪造报⽂发给客⼾端

  5. 客⼾端收到报⽂,提取公钥M(⾃⼰当然不知道公钥被更换过了),⾃⼰形成对称秘钥X,⽤公钥M加密X,形成报⽂发送给服务器

  6. 中间⼈劫持后,直接⽤⾃⼰的私钥M'进⾏解密,得到通信秘钥X,再⽤曾经保存的服务端公钥S加密后,将报⽂推送给服务器

  7. 服务器拿到报⽂,⽤⾃⼰的私钥S'解密,得到通信秘钥X

  8. 双⽅开始采⽤X进⾏对称加密,进⾏通信。但是⼀切都在中间⼈的掌握中,劫持数据,进⾏窃听甚⾄修改,都是可以的

4.引入证书

服务端在使⽤HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端公钥的权威性

证书包含以下信息

证书发布机构

有效期

公钥

所有者

签名 :颁布证书的公证机构会在发布证书计算出一个校验和然后公正机构使用自己的私钥(和服务的私钥无关)针对校验和进行加密,此时得到证书的签名

证书的本质:经过加密的校验和

客户端拿到证书之后

1.按照同样的算法,把证书的其他字段重新计算一遍,得到校验和1

2.使用系统中内置的公证机构公钥 对证书的签名进行解密,得打校验和2

看校验和1和校验和2是否相同

相关推荐
逐米时代19 分钟前
工厂数字化规划:BIM与仿真让方案可验证
大数据·网络·人工智能
caimouse40 分钟前
Winsock 用户态库 (ws2_32.dll) 详细分析
网络
云边云科技_云网融合1 小时前
工业制造多厂区、供应链远程数据传输网络如何优化?
运维·服务器·网络
clear sky .1 小时前
[TCP]MCU上如何编辑TCP服务端程序,思路框架
服务器·网络·tcp/ip
FungLeo1 小时前
Flutter 带 TTL 的多级缓存设计:内存+磁盘+网络三层实战
网络·flutter·缓存·性能优化
牛马也想出海2 小时前
使用Playwright被检测为机器人的原因及反检测方案
开发语言·网络·人工智能·机器人·php
暗暗别做白日梦2 小时前
CompletableFuture 并发统计
网络·数据库·oracle
倔强的小石头_2 小时前
中兴F50只能本地管理?刷入UFI-TOOLS后这样远程访问
网络
@CLoudbays_Martin112 小时前
Linux 服务器如何查看是否被植入后门?
linux·服务器·网络·安全·github·ssl
拾光Ծ3 小时前
【Linux网络】深入理解网络层:从IP协议格式,子网划分到NAT与路由机制
linux·网络·网络协议·tcp/ip·计算机网络