HTTPS基本原理

HTTPS基本原理目录
1、HTTPS介绍
2、加密算法
3、HTTPS 原理
1、HTTP 访问过程
2、HTTP 向 HTTPS 演化的过程
3、HTTPS 总结
4、HTTPS工作原理具体解释 1、HTTPS介绍
HT

目录

1.HTTPS概述

2. 加密算法

3.HTTPS原理

1.HTTP访问处理

2、从HTTP到HTTPS的演进过程

3.HTTPS概述

4.HTTPS工作原理详解

1、HTTPS介绍

HTTPS(正式名称:HyperText Transfer Protocol over Secure Socket Layer)其实是Google很早就开始启用的协议,最初的目的是保证数据安全。 近年来,谷歌、百度、Facebook等互联网巨头开始积极推广HTTPS,国内外多家互联网巨头也启用了全站HTTPS。这也是未来互联网发展的趋势。

为了方便全球网站实施HTTPS,一些互联网公司提出了自己的要求。

Google 调整了其搜索引擎算法,以便使用HTTPS 的网站在搜索中排名更高。

从2017 年开始,Chrome 将使用HTTP 协议的网站标记为不安全。

Apple 在2017 年强制要求App Store 中的所有应用程序都使用HTTPS 加密连接。

目前国内非常流行的微信小程序也需要使用HTTPS协议。

对新一代HTTP/2协议的支持必须基于HTTPS。

请稍等。在不久的将来,整个网络都采用HTTPS是不可避免的。

HTTP 协议(超文本传输协议):客户端程序(例如浏览器)与Web 服务器之间的应用层通信协议。

HTTPS协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS。也就是说,HTTPS的安全基础是SSL,所以加密细节要求SSL是安全的。发送HTTP 数据。

如上图所示,与HTTP 相比,HTTPS 多了一层SSL/TLS。

SSL(Secure Socket Layer):由Netscape于1994年开发,SSL协议位于TCP/IP协议和各种应用层协议之间,为数据通信提供安全支持。

TLS(传输层安全):其前身是SSL。最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由Netscape于1999年标准化,从3.1开始更名,发展至今。共有三个版本:TLS 1.0、TLS 1.1 和TLS 1.2。 SSL3.0和TLS1.0由于安全漏洞很少使用。 TLS 1.3 有重大变化,但仍处于草案阶段,其中TLS 1.1 和TLS 1.2 使用最广泛。

2、加密算法

有记载显示,古希腊人在公元前400年发明了替代密码,二战期间德国军方使用了恩尼格玛密码机,因此密码在社会发展中得到了广泛的应用。

对称加密有两种类型:流式和分组式,其中加密和解密使用相同的密钥。 示例:DES、AES-GCM、ChaCha20-Poly1305 等。

非对称加密使用不同的密钥进行加密和解密,分别称为公钥和私钥。公钥和算法是私钥。非对称加密算法的性能较低,但加密的性质也限制了可以加密的数据长度。

示例:RSA、DSA、ECDSA、DH、ECDHE

哈希算法将任意长度的信息转换为较短的固定长度值,这些值通常比信息小得多。该算法是不可逆的。

示例:MD5、SHA-1、SHA-2、SHA-256 等。

数字签名签名是在信息末尾添加内容(信息经过哈希处理后的值),以证明信息没有被篡改。哈希值通常被加密(即签名)并与消息一起发送,以确保哈希值不被修改。

3、HTTPS 原理

1、HTTP 访问过程

如上图所示,在HTTP请求的过程中,客户端和服务器之间没有身份验证过程,所有数据都以明文方式在互联网上“裸奔”发送,这使得你更容易受到攻击。由黑客。下面继续:

可以看到,客户端发送的请求很容易被黑客拦截。在这种情况下,如果黑客冒充服务器,他或她可以在客户端不知情的情况下将任何信息发送回客户端,这就是我们经常听到“劫持”一词的原因。 ” 现象如下。

在下面的两幅图中,浏览器输入相同的URL。左边是正确的响应,右边是劫持的响应(从漂亮到漂亮)。

因此,HTTP传输存在以下风险:

窃听风险:黑客可能会了解您的通信内容。

篡改风险:黑客可以更改您的通信内容。

冒充风险:黑客可能会冒充他人参与通信。

2、HTTP 向 HTTPS 演化的过程

第一步:为了防止上述现象的发生,人们想出了一种对传输的信息进行加密的方法(这样即使黑客截获了也无法破译)。

如上图所示,这种方法是对称加密,即双方拥有相同的密钥,信息传输安全。然而,这种方法有以下缺点:

(1)由于客户端和服务器有很多不同的客户端和服务器,双方都需要维护大量的密钥,使得维护成本非常高。

(2) 由于每个客户端和服务器的安全级别不同,密钥很容易泄露。

步骤2:由于使用对称加密使得密钥维护非常繁琐,所以我们尝试使用非对称加密。

如上图所示,客户端使用公钥对请求的内容进行加密,服务器使用私钥对内容进行解密。然而,上述过程也有缺陷。

(1)公钥是公开的(即黑客也有公钥),因此如果黑客截获了步骤4中用私钥加密的信息,则可能无法使用公钥来解密信息。获得。内容。

第三步:非对称密码学也有其缺点,因此将对称密码学和非对称密码学结合起来,取其精华,去其糟粕,最大限度地发挥各自的优势。

如图1所示,

(1)在第3步中,客户端说:(后续的响应我们使用对称加密,这就是对称加密算法和对称密钥。)这一段是用公钥加密的,传递给服务器。

(2) 服务器收到信息后,提取对称加密算法和对称密钥,使用私钥解密,并回复“(OK)对称密钥加密”。

(3) 双方后续的信息传输可以采用对称加密。

遇到的问题:

(1) 客户端如何获取公钥

(2) 如何确定服务器是真实的而不是黑客的

第4 步:获取您的公钥并找到您的服务器ID

1. 获取公钥

(1)提供公钥下载地址,要求客户端下载后再回复。 (缺点:下载地址可能是假的,客户端每次回复之前都要下载公钥,比较麻烦)

(2) 一旦会话开始,服务器将公钥发送给客户端(缺点:黑客可以冒充服务器并向客户端发送假公钥)

2. 有没有办法安全获取公钥,防止被黑客欺骗? 接下来,你需要使用终极武器:SSL证书(订阅)。

如上图所示,在步骤2中,服务器将SSL证书发送给客户端。 SSL证书包含的具体内容如下:

(1) 证书颁发机构CA

(二)证书有效期

(3) 公钥

(4) 证书持有者

(5) 签名

……

3. 客户端收到服务器发来的SSL证书后,会验证证书的真实性,以浏览器为例。步骤如下:

(1)首先浏览器从证书中读取证书所有者、有效期等信息并一一验证。

(2) 浏览器开始搜索操作系统内置的受信任的证书颁发机构CA,并将其与服务器发送的证书中的颁发者CA 进行比较,以确保该证书是由合法组织颁发的。发表。

(3) 如果没有找到证书,浏览器会报错,表明服务器发送的证书不可信。

(4) 如果找到,浏览器从操作系统检索颁发者CA的公钥,并对服务器发送的证书中的签名进行解密。

(5)浏览器使用相同的哈希算法计算服务器发送的证书的哈希值,并将计算出的哈希值与证书中的签名进行比较。

(6)如果比较结果一致,则证明服务器发送的证书是合法的,没有被欺骗。

(7) 此时浏览器就可以读取证书内的公钥进行后续加密。

4、因此,发送SSL证书不仅解决了公钥找回的问题,还解决了黑客冒充的问题,形成了一石二鸟的HTTPS加密流程。

因此,HTTPS 传输比HTTP 更安全。

(1)所有信息均经过加密处理,黑客无法截取。

(2)具有验证机制,如果被篡改,通信双方会立即发现。

(3)配备身份证,防止身份盗用。

3、HTTPS 总结

综上所述,HTTPS协议比HTTP协议更复杂,因为它涉及更多的握手、加解密等处理,但可以保证数据通信的安全性。因此,在这个互联网扩张的时代,潜伏着各种看不见的危险。我们建议推广HTTPS,以保证数据安全,维护网络稳定。

HTTPS 的缺点:

SSL 证书非常昂贵,并且在服务器上部署、更新和维护非常麻烦。

HTTPS 减慢用户访问速度(多次握手)

网站切换到HTTPS后,从HTTP跳转到HTTPS的方式会增加用户的访问时间(大多数网站采用302跳转)。

HTTPS相关的安全算法消耗CPU资源,需要增加很多机器(https访问过程需要加解密)。

4、HTTPS工作原理具体解释

客户您好:

发送内容:客户端的Hello消息通过TCP连接发送到服务器。包含信息:

支持的SSL/TLS 版本(例如TLS 1.2 或TLS 1.3) 支持的加密算法(密码套件) 随机数(客户端随机) 可选扩展(例如服务器名称指示SNI) 包含密钥:不包含密钥,仅包含随机数和支持的协议信息。 服务器您好:

发送内容:服务器的Hello消息通过TCP连接发送回客户端。包含信息:

所选的SSL/TLS 版本所选的加密算法随机数(服务器随机) 服务器的数字证书(包含公钥) 可选的Server Hello 扩展包含密钥: 不包含密钥,但服务器包含公钥(包含在数字证书中)。 服务器证书:

发送内容:服务器向客户端发送数字证书。包含信息:

服务器的数字证书。包含服务器的公钥和由证书颁发机构(CA) 签名的信息。是否包含密钥:不包含会话密钥,但包含服务器公钥。 客户端密钥交换:

发送内容:客户端生成预主密钥,使用服务器的公钥对预主密钥进行加密,并将其发送到服务器。包含信息:

预主密钥(使用服务器的公钥加密)是否包含私钥:包含加密的预主密钥。 服务器解密预主密钥。

解决方法:服务器使用其私钥来解密预主密钥。是否包含密钥:服务器在解密后检索预主密钥。 生成会话密钥。

生成内容:客户端和服务器使用客户端随机密钥、服务器随机密钥和预主密钥生成对称会话密钥。是否包含密钥:生成的会话密钥不包含在TCP 数据包中发送,由双方独立计算。 完成握手。

发送内容:双方使用会话密钥加密并发送“Finished”消息,表示握手完成。包含密钥:包含使用会话密钥加密的握手完成消息。 加密数据传输:

您发送的内容:所有后续数据传输均使用对称会话密钥(例如AES)进行加密。包含密钥:包含使用会话密钥加密的数据。

以上#HTTPS基本原理相关内容来源仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91188.html

(0)
CSDN's avatarCSDN
上一篇 2024年6月21日 下午6:51
下一篇 2024年6月21日 下午6:51

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注