HTTPS加密流程总结

  • 二. ⚡加密方式

    • 1. ⭐对称加密
  • 2. ⭐非对称加密

  • 三. ⚡引入证书

  • 四. ⚡总结

一. ⚡HTTPS

======================================================================

HTTPS 也是一个应用层协议,是在 HTTP 协议的基础上引入了一个加密层(SSL/TLS),HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况,因此HTTPS是要比HTTPS更安全的,现在大部分网站采取的也都是HTTPS协议。在这里插入图片描述

二. ⚡加密方式

=====================================================================

加密就是把明文(要传输的信息)进行一系列变换,生成密文。解密就是把密文再进行一系列变换,还原成对应的明文

加密通常有两种方式,一种为对称加密,另一种为非对称加密

1. ⭐对称加密


对称加密其实就是通过同一个 “密钥” ,把明文加密成密文,并且也能把密文解密成明文。在这里插入图片描述

对称加密里最关键的就是密钥,客户端和服务器需要先约定好密钥是什么,如果客户端生成了密钥,就需要通过网路告知服务器密钥是什么。由于密钥本身也会在网络上明文传输,容易被黑客截获,一旦被黑客截获,那么后续对数据的加密就失去意义了。

因此密钥的传输也必须加密传输,即指定一个"密钥的密钥",即引入非对称加密

2. ⭐非对称加密


非对称加密要用到两个密钥,一个叫做公钥,另一个叫做私钥。(公钥和私钥是成对出现的,公钥用于加锁,私钥用于解锁)

通过公钥对明文加密,变成密文;然后通过私钥对密文解密,变成明文;也可以反着用:通过私钥对明文加密,变成密文,通过公钥对密文解密,变成明文。(通过数论相关知识证明)

公钥和私钥是配对的,最大的缺点就是运算速度非常慢,比对称加密要慢很多

我们引入非对称加密,来对自己的对称密钥进行加密:

  1. 某个网站生成自己的公钥和私钥,把公钥公开出去,自己保留私钥

  2. 客户端使用这个网站的公钥对自己的对称密钥进行加密,然后将自己的对称密钥以密文形式发送给服务器,服务器使用私钥进行解密,因此就获取到了对称密钥的明文

注意:

由于对称加密成本是比较低的,即机器资源消耗量是比较少的,速度也比较快,因此我们传输数据时会先利用非对称加密方式将对称密钥进行加密,然后使用对称密钥再对数据进行加密

三. ⚡引入证书

=====================================================================

  1. 通过以上两种方式,确实可以实现更安全的数据传输,但是还有一点问题,就是客户端是如何获取到服务器(某个网站)的公钥的?如何确保这个公钥不是被伪造的呢?我们只需要引入相应的证书即可,这样客户端和服务器在连接的过程中,而不是简简单单地索取一个公钥了,而是直接向服务器索取一个证书,而相关的公钥就包含在证书里面。

  2. 这个证书不是服务器自己生成的,而是第三方机构颁发的,客户端拿到证书之后,就可以根据证书中的信息去第三方机构进行认证,来检验这个证书是否合法,从而确保公钥的可信性。

### HTTPS 协议原理及加密解密流程详解 HTTPS(HyperText Transfer Protocol Secure)是一种基于 SSL/TLS 协议的安全通信协议,用于确保客户端与服务器之间的数据传输安全。其核心机制是通过加密手段保护数据的完整性和隐私性,防止中间人攻击和数据篡改。 HTTPS加密过程主要包括以下几个关键步骤: #### 1. 证书验证阶段 在 HTTPS 连接建立之初,客户端(如浏览器)会向服务器发起连接请求。服务器响应后,会将自己的数字证书发送给客户端。该证书中包含了服务器的公钥以及由可信证书颁发机构(CA)签名的信息。客户端通过操作系统中预置的 CA 公钥,验证证书的合法性,确保该证书未被篡改,并且确实属于目标服务器。这一阶段使用的是非对称加密技术,用于验证证书的真实性[^3]。 #### 2. 密钥交换阶段 一旦证书验证通过,客户端将生成一个随机的对称加密密钥(也称为会话密钥),用于后续数据的加密和解密。为了确保该密钥在传输过程中不被窃取,客户端会使用服务器证书中的公钥对该对称密钥进行加密,并将加密后的密钥发送给服务器。服务器接收到该加密密钥后,使用与其证书匹配的私钥进行解密,从而获得客户端生成的对称密钥。这一阶段同样使用非对称加密技术,确保密钥交换的安全性[^1]。 #### 3. 数据传输阶段 在密钥交换完成后,客户端和服务器之间所有的通信都将使用之前协商的对称密钥进行加密和解密。由于对称加密算法在加解密效率上优于非对称加密,因此适用于大量数据的传输。通过这种方式,HTTPS 实现了高效且安全的数据传输[^3]。 ### 加密流程总结 HTTPS加密流程可以归纳为以下三组密钥交互过程: - 第一组:非对称加密用于验证服务器证书的合法性,客户端使用 CA 的公钥验证服务器证书。 - 第二组:非对称加密用于安全地传输客户端生成的对称密钥,确保服务器能够解密并获取该密钥。 - 第三组:对称加密用于后续所有数据的传输,提高通信效率并保障数据安全[^3]。 ### 示例代码:HTTPS 请求过程(Python) ```python import requests # 发起 HTTPS 请求 response = requests.get('https://example.com') # 输出响应状态码和内容 print(f"Status Code: {response.status_code}") print(f"Response Body: {response.text}") ``` 该示例展示了如何使用 Python 的 `requests` 库发起 HTTPS 请求,并自动处理底层的 SSL/TLS 加密过程。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值