HTTPS工作原理

工作大致过程

1、客户端发起HTTPS请求

浏览器里面输入一个HTTPS网址,然后连接到服务端的443端口上。注意这个过程中客户端会 发送一个密文族给服务端,密文族是浏览器所支持的加密算法的清单。

2、服务端配置

采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就 是自己颁发的证书需要客户端验证通过才可以继续访问,而使用受信任的公司申请的证书则不 会弹出提示页面。这套证书其实就是一对公钥和私钥,可以这么理解,公钥就是一把锁头,私 钥就是这把锁的钥匙,锁头可以给别人对某个东西进行加锁,但是加锁完毕之后,只有持有这 把锁的钥匙才可以解锁看到加锁的内容。前面说过客户端会传送密文族给服务端,服务端则会 从这些密文族中,挑选出一个

3、传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构、过期时间等等。

4、客户端解析证书

这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,如颁发机构、过期时间等 等,如果发现异常则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成 一个随机值,然后用证书对该随机值进行加密。注意一下上面提到的"发现异常"。证书中会包 含数字签名,该数字签名是加密过的,是用颁发机构的私钥对本证书的公钥、名称及其他信息 做hash散列加密而生成的。客户端浏览器会首先找到该证书的根证书颁发机构,如果有,则用 该根证书的公钥解密服务器下发的证书,如果不能正常解密,则就是"发现异常",说明该证书 是伪造的。

5、传送加密信息

这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,然后客户端和服 务端的通信就可以通过这个随机值来进行加密和解密了。

6、服务端解密信息

服务端用私钥解密后,得到了客户端传过来的随机值,至此一个非对称加密的过程结束,看到

TLS利用非对称加密实现了身份认证和密钥协商。然后把内容通过该值进行对称加密。

7、传输加密后的信息

这部分是服务端用随机值加密后的信息,可以在客户端被还原。

8、客户端解密信息

客户端用之前生成的随机值解密服务端传送过来的信息,于是获取了解密后的内容,至此一个 对称加密的过程结束,看到对称加密是用于对服务器待传送给客户端的数据进行加密用的。整 个过程即使第三方监听了数据,也束手无策。

相关推荐
蒙奇D索大37 分钟前
【数据结构】考研数据结构核心考点:平衡二叉树(AVL树)详解——平衡因子与4大旋转操作入门指南
数据结构·笔记·学习·考研·改行学it
郭庆汝2 小时前
自然语言处理笔记
笔记·自然语言处理·easyui
二进制怪兽2 小时前
[笔记] 驱动开发:Virtual-Display-Driver编译过程
笔记
ouliten2 小时前
cuda编程笔记(28)-- cudaMemcpyPeer 与 P2P 访问机制
笔记·cuda
im_AMBER2 小时前
数据结构 04 栈和队列
数据结构·笔记·学习
要做朋鱼燕3 小时前
密码学安全:CIA三元组与三大核心技术
网络·笔记·密码学·嵌入式·加密·aes
金水谣3 小时前
考研10.5笔记
笔记
Cc00108524 小时前
【AI学习笔记】用AI生成spring boot + redis
spring boot·笔记·学习·ai编程
繁花与尘埃4 小时前
列表标签之有序标签(本文为个人学习笔记,内容整理自哔哩哔哩UP主【非学者勿扰】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
笔记·学习
Starry_hello world4 小时前
Linux 进程地址空间
linux·笔记·有问必答