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是否相同

相关推荐
huohaiyu5 小时前
从URL到页面的完整解析流程
前端·网络·chrome·url
winfreedoms7 小时前
Puppypi——hiwonder-toolbox中配置文件解析
网络·智能路由器
Elastic 中国社区官方博客9 小时前
使用 Elastic 进行网络监控:统一网络可观测性
大数据·开发语言·网络·人工智能·elasticsearch·搜索引擎·全文检索
德迅云安全-小潘10 小时前
德迅零域(微隔离):破解云时代横向渗透困局的“手术刀”
网络·数据库·安全
敲代码的哈吉蜂10 小时前
高可用集群Keepalived
运维·服务器·网络·数据库
盟接之桥11 小时前
盟接之桥说制造:从客供的外在共生到内在的身心合一
运维·服务器·网络·人工智能·制造
一名爱学习的ikun11 小时前
VMware 虚拟机设置成静态IP后无法联网
网络·vmware
Remember_99315 小时前
一文吃透Java WebSocket:原理、实现与核心特性解析
java·开发语言·网络·websocket·网络协议·http·p2p
加农炮手Jinx15 小时前
Flutter for OpenHarmony:web_socket_channel 全平台 WebSocket 通信标准库,从原理到鸿蒙实战(3000字深度解析)
android·前端·网络·websocket·flutter·华为·harmonyos