https和http总结

Zhicheng Jiang Lv1

overview

http和https协议都是应用层的协议,在http3.0之前,http协议的底层(传输层)都是基于TCP协议的。

http和https的主要不同

https和http最大的不同就是https在http的基础上多加了SSL/TLS层。也就是说,在TCP三次握手建立连接之后,https协议还需要通过SSL/TLS进行加密传输前的一系列工作,包括生成会话密钥,颁布证书等等

https最重要的几个知识点

why?
使用https主要是解决以下三个风险

  1. 窃听风险:通信链路上可以获取通信内容,用户的账号密码可能会被窃取
  2. 篡改风险:发回来的信息被人修改,比如网页里面植入广告,视觉污染了
  3. 冒充风险:冒充是淘宝网站,钱容易不见(往你以为是正确的淘宝网站输入了账号密码而且给了钱)

https通过以下三种机制解决了上面的三个问题

  1. 信息加密
  2. 校验机制
  3. 身份证书:你出示了证书,我才会相信你的身份,证明了你是真的淘宝网

信息加密

通过混合加密的方式保证了信息的机密性,解决了窃听的风险。how?
(1)通信建立前采用非对称加密的方式交换会话密钥,后续就不采用非对称加密。产生的会话密钥是相同的,而且是不能暴露给别人的
(2)通信过程中使用对称加密的会话密钥来加密明文数据

生成密钥这个过程主要有RSA算法和ECDHE算法实现。

RSA算法的流程如下

  1. 先建立TCP连接
  2. 客户端生成随机数发送给服务器端
  3. 服务器端发送随机数和证书给客户端
  4. 客户端验证证书,然后利用服务器的公钥生成premaster给服务器端。只有真正的服务器端才能解开这个premaster,因为需要私钥才行
  5. 双方都有了密钥: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