https和http总结
overview
http和https协议都是应用层的协议,在http3.0之前,http协议的底层(传输层)都是基于TCP协议的。
http和https的主要不同
https和http最大的不同就是https在http的基础上多加了SSL/TLS层。也就是说,在TCP三次握手建立连接之后,https协议还需要通过SSL/TLS进行加密传输前的一系列工作,包括生成会话密钥,颁布证书等等
https最重要的几个知识点
why?
使用https主要是解决以下三个风险
- 窃听风险:通信链路上可以获取通信内容,用户的账号密码可能会被窃取
- 篡改风险:发回来的信息被人修改,比如网页里面植入广告,视觉污染了
- 冒充风险:冒充是淘宝网站,钱容易不见(往你以为是正确的淘宝网站输入了账号密码而且给了钱)
https通过以下三种机制解决了上面的三个问题
- 信息加密
- 校验机制
- 身份证书:你出示了证书,我才会相信你的身份,证明了你是真的淘宝网
信息加密
通过混合加密的方式保证了信息的机密性,解决了窃听的风险。how?
(1)通信建立前采用非对称加密的方式交换会话密钥,后续就不采用非对称加密。产生的会话密钥是相同的,而且是不能暴露给别人的
(2)通信过程中使用对称加密的会话密钥来加密明文数据
生成密钥这个过程主要有RSA算法和ECDHE算法实现。
RSA算法的流程如下
- 先建立TCP连接
- 客户端生成随机数发送给服务器端
- 服务器端发送随机数和证书给客户端
- 客户端验证证书,然后利用服务器的公钥生成premaster给服务器端。只有真正的服务器端才能解开这个premaster,因为需要私钥才行
- 双方都有了密钥:premaster+客户端随机数+服务器随机数
校验机制
身份证书
每个浏览器上面都有装有一些绝对承认正确的数字证书。这些是根证书。
以你访问www.baidu.com为例,百度提供的证书为123。但是他是由www.example.com颁布的,你不相信example.com,然后你再看example.com颁布证书的是你的根证书的人,这下你就相信了example,从而相信了www.baidu.com
- Title: https和http总结
- Author: Zhicheng Jiang
- Created at : 2023-11-04 11:30:12
- Updated at : 2023-12-15 02:30:54
- Link: https://walterj726.github.io/2023/11/04/https和http/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments