计算机网络(HTTPS协议)

本文概述了HTTP与HTTPS的区别,重点讲解了HTTPS协议如何通过SSL/TLS加密,包括对称加密与非对称加密的应用,以及HTTPS请求流程,数字证书的角色和不同级别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 HTTP 和 HTTPS 协议

在研究 HTTPS 协议之前,我们先总结下 HTTP 协议的优点和缺点:

优点缺点
通信方式简单:基于请求和响应,客户端发起请求,服务器端返回响应明文通信:信息明文传输,安全性低
无需维护状态:HTTP 是无状态协议,不识别客户端。没有状态:例如对于需要保持登录状态的网站,需要依靠其他外部方式(Cookie、Session)维护状态。
速度快,效率高。

如上表所示,HTTP 协议牺牲了安全性,换来了效率,但是在某些安全性要求高的场景,使用 HTTP 协议是不合适的。

HTTP 协议的全称是 Hypertext Transfer Protocol,HTTPS 协议的全程是 Hypertext Transfer Protocol Secure,多了一个 Secure(安全)的限制词。从协议上看,HTTPS 协议基于 HTTP 协议,使用 SSL/TLS 协议对传输内容进行加密,从公式上定义:HTTP + SSL(TLS) = HTTPS

HTTPS 协议将 HTTP 协议的通信部分由 SSL 或者 TLS 协议替代,网络模型划分如下:

除了 SSL 协议以外,HTTPS 协议还涉及几个重要的概念:CA 证书、混淆加密方式,以及 HTTPS 协议具体的工作流程,下面我们拆分解释。

二、 对称加密和非对称加密算法

HTTPS 协议的核心是加密流程,首先我们需要区分三种加密方式:对称加密、非对称加密以及混淆加密。
(1)对称加密

定义:加密方和解密方都使用了相同的密钥,只要保证密钥不会泄露给第三方, 整个通信过程就是安全的。

对称加密算法流程图:

因为对称加密算法整个过程共享同一个密钥,所以使用特点也比较明显。

优点:算法简单,加密速度快;

缺点:安全性低,如果密钥泄露,密文也被中间人拦截,那么信息很容易就会被破解。

在企业生产环境下,常用的对称加密算法有 AES 算法。

(2)非对称加密

在安全性要求更高的场景下,我们需要使用非对称加密,关于非对称加密算法的流程如下:

首先定义两种密钥:一种是公钥(Public Key),给任何需要和接收方通信的客户端保存;另一种是私钥(Private Key),只给接收方自己保存。

对于要发送的原文文本,发送方通过接收方的公钥对内容加密,加密后的内容只有接收方的私钥可以解密。在整个传输过程中,如果发送方的公钥泄露,加密内容也被窃取,也不会导致传输内容被破解(只要接收方的私钥没有泄露)。

常见的非对称加密算法有 RSA 算法(即一种支持变长密钥的公共密钥算法)。

另外,面试官可能会提出 MD5 算法的划分,MD5 是非常常见的加密算法,例如在保存用户密码时经常被使用。但是要区分的是,MD5 算法不是对称和非对称算法,MD5 算法不可逆,主要目的是为了文件校验(例如判断文件是否在传输过程中损坏),或者数字签名等途径。

三  HTTPS 请求流程

1、HTTPS 简化通信模型

2、请求步骤解析

步骤(1):客户端发送一个 HTTPS 请求,例如请求 https://imooc.com,连接到服务器端的 443 端口(和 HTTP 协议不同,HTTP 默认 80 端口)。

步骤(2):服务器端收到握手信息,使用预先配置好的数字证书,即图中的公钥和私钥。如果是自己颁发的证书,那么需要客户端通过浏览器的弹窗验证,如果是组织申请获得,默认直接通过。

步骤(3):传输证书给客户端,证书组装了多种信息,包含证书的颁发机构、证书有效时间、服务器端的公钥,证书签名等。

步骤(4):客户端解析证书,也就是通过 TLS/SSL 协议,判定公钥是否有效,如果发现异常,会弹出警告框。如果校验没有问题,那么客户端会生成一个随机数,然后用上一步传输过来的公钥对随机数进行加密。

步骤(5):客户端将上个步骤随机数加密后的内容传输给服务器端,这个随机数就是两端通信的核心。

步骤(6):服务器端用自己的私钥进行解密,获取解密前的随机数。然后组装会话秘钥,这里私钥和客户端会话秘钥是相同的。

步骤(7):将服务器端用私钥加密后的内容传输给客户端,在客户端用之前生成的随机数组装私钥还原。

步骤(8):客户端用之前的私钥解密获取的信息,也就获取了通信内容。

上述过程中,SSL 和 TLS 协议是核心模块,具体的证书交互流程相对复杂,面试场景基本不会涉及。我们需要关注的是为什么 HTTPS 同时使用非对称加密和对称加密,有两个原因:

(1)对称加密流程两边需要使用相同的密钥,单纯使用对称加密,无法实现密钥交换。

(2)非对称加密:满足安全要求,但是非对称加密的计算耗时高于对称加密的 2-3 个数量级(相同安全加密级别),对于实际的应用场景,例如电商网站,对网络交互高耗时容忍度是非常低的。所以 HTTPS 才先使用非对称交换密钥,之后再使用对称加密通信。

四  数字证书

数字证书是 CA(Certificate Authority)机构发布的,作用是标记通信双方的身份。

CA 机构总共颁布了 DV、OV、EV 三种证书,他们的区别在于可信任程度。

(1)DV 级别证书:域名级别可信,证书中不显示企业信息,安全性较差

(2)OV 级别证书:企业验证型证书,目前使用最广泛的证书;

(3)EV 级别证书:增强验证型证书,验证最严格的证书,使用者例如 Github 官网。

DV、OV、EV 三种,区别在于可信程度。DV 是最低的,只是域名级别的可信,EV 是最高的,经过了法律和审计的严格核查,可以证明网站拥有者的身份(在浏览器地址栏会显示出公司的名字,例如 Apple、GitHub 的网站)。不同的信任等级的机构一起形成了层级关系。

再简单说下数字签名,数字签名指将通信内容和摘要信息(下面例子中的哈希结果)通过接收方的公钥加密,和原文加密结果一起传输给接收方。接收方拿着自己的私钥解密,判断摘要结果和原文结果是否匹配,数字签名的核心目的是为了防止信息丢失、中间人篡改信息。

举例说明,客户端需要向服务器端发送一段字符串:“Hello,World”,我们首先将 "Hello,World" 通过服务器端的公钥进行加密得到结果 A,假设 "Hello,World" 通过哈希加密算法加密后的结果是 "abc123",将 "abc123" 使用服务器端的公钥进行加密得到结果 B,两者都发送给服务器端。

服务器端收到信息后,先通过自己的私钥对 A 解密,然后再对 B 解密,通过相同的哈希算法计算得到 "Hello,World" 的哈希值,如果相同,说明数据没有被中间人篡改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值