HTTPS基本概念

HTTP 与 HTTPS 有哪些区别?

  1. HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
  2. HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
  3. 两者的默认端口不一样,HTTP 默认端口号是 80,HTTPS 默认端口号是 443。
  4. HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。

HTTPS

  1. 混合加密

保证信息的机密性,解决了窃听的风险
在通信建立前 采用非对称加密的方式交换「会话秘钥」,后续就不再使用非对称加密。
在通信过程中全部使用 对称加密的「会话秘钥」的方式加密明文数据

采用「混合加密」的方式的原因: 对称加密只使用一个密钥,运算速度快,密钥必须保密,无法做到安全的密钥交换。
非对称加密使用两个密钥:公钥和私钥,公钥可以任意分发而私钥保密,解决了密钥交换问题但速度慢。

请添加图片描述
2. 摘要算法(计算出内容的哈希值) + 数字签名
保证传输的内容不被篡改

公钥加密,私钥解密。 这个目的是为了保证内容传输的安全,因为被公钥加密的内容,其他人是无法解密的,只有持有私钥的人,才能解密出实际的内容;
私钥加密,公钥解密。 这个目的是为了保证消息不会被冒充,因为私钥是不可泄露的,如果公钥能正常解密出私钥加密的内容,就能证明这个消息是来源于持有私钥身份的人发送的(数字签名-----确认消息的身份)

私钥是由服务端保管,然后服务端会向客户端颁发对应的公钥。如果客户端收到的信息,能被公钥解密,就说明该消息是由服务器发送的。
请添加图片描述
3. 数字证书(防止公钥是伪造的)
可以通过哈希算法来保证消息的完整性;
可以通过数字签名来保证消息的来源可靠性(能确认消息是由持有私钥的一方发送的);

但是这还远远不够,还缺少身份验证的环节,万一公钥是被伪造的呢?

请添加图片描述

参考链接
https://xiaolincoding.com/network/2_http/http_interview.html#http-%E4%B8%8E-https-%E6%9C%89%E5%93%AA%E4%BA%9B%E5%8C%BA%E5%88%AB

相关推荐

  1. HTTP基本概念

    2024-01-23 12:30:02       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-23 12:30:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-23 12:30:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-23 12:30:02       82 阅读
  4. Python语言-面向对象

    2024-01-23 12:30:02       91 阅读

热门阅读

  1. 智能小程序主题适配指南(各参数配置详情)

    2024-01-23 12:30:02       66 阅读
  2. 区块链当中Bitcoin的Segwit地址生成原理

    2024-01-23 12:30:02       65 阅读
  3. Spring Boot 指定外部配置文件

    2024-01-23 12:30:02       56 阅读
  4. 免费可用的ChatGPT替代方案

    2024-01-23 12:30:02       124 阅读
  5. 《幻兽帕鲁》服务器该如何选购

    2024-01-23 12:30:02       57 阅读
  6. 笔记-孙子兵法-第二篇-作战-就地补充,速战速决

    2024-01-23 12:30:02       55 阅读
  7. Golang 关于反射机制(一文了解)

    2024-01-23 12:30:02       54 阅读