HTTPS实现原理

1 为什么需要HTTPS?

HTTP 在进行数据传输时采用明文传输,数据包中的用户信息等隐私数据可以被第三方通过抓包等方式窃取,是不安全的。

如果客户端使用 MD5 加密算法对数据进行加密,由于加密后的结果是不可逆的,服务器无法进行解析,只能使用加密后的字符串进行校验用户身份,而第三方也可以获取数据包中的加密字符串,从而骗取服务器的信任,所以也无法通过 MD5 加密算法解决 HTTP 传输不安全的问题。

为了解决 HTTP 明文传输不安全的问题,比 HTTP 安全的 HTTPS 应运而生。

2 HTTPS是什么?

HTTPS = HTTP + SSL/TLS。HTTPS 使用 HTTP 进行通信,并使用 SSL/TLS 在进行数据传输时对数据包进行加密,确保数据进行安全传输。

在这里插入图片描述

SSL (Secure Sockets Layer) 是由 Netscape 公司设计的用于 Web 的安全通信协议,开发至 3.0 版本后交由 IETF 进行标准化,IETF 在 SSL 3.0 基础上开发出了 TLS 1.0 (Transport Layer Security),并写入了 RFC。

3 对称加密与非对称加密

3.1 对称加密

对称加密,顾名思义,通信双方采用相同的密钥对数据进行加解密,常见的对称加密算法有 AES、DES、3DES等。

通信过程:在接收到客户端的请求后,服务器生成一把密钥,并通过网络发送给客户端,客户端拿到密钥后对数据进行加密,将加密后的数据发送给服务器,服务器再使用密钥对数据进行解密。

优点:加解密计算量小,速度快。

缺点:由于只有一个密钥供通信双方使用,所以密钥需要在一方生成后传输给另一方,在传输过程中存在被截获的风险。

3.2 非对称加密

非对称加密,顾名思义,加密和解密使用不同的密钥:公钥 (Public Key) 和私钥 (Private Key)。公钥和私钥是一对密钥,使用公钥加密的数据只能通过对应的私钥解密,使用私钥加密的数据也只能通过对应的公钥解密。常见的非对称加密算法有 RSA 等。

通信过程:在接收到客户端的请求后,服务器生成一对密钥,并将其中一把作为公钥通过网络发送给客户端,客户端拿到公钥后对数据进行加密,将加密后的数据发送给服务器,服务器使用私钥对数据进行解密。

优点:加密和解密使用不同的密钥,私钥不用进行网络传输,安全性高。

缺点:加解密计算量大,速度慢,资源占用大。

4 HTTPS原理

HTTPS 采用混合加密方式进行数据传输。考虑到对称加密的密钥可能被截获以及非对称加密计算量大,速度慢的缺点,先采用非对称加密传输密钥,然后采用对称加密对数据包进行加解密。

在接收到客户端的请求后,服务器生成一对公钥和私钥,并把公钥发送给客户端,客户端拿到公钥后,生成用于对称加密的密钥 KEY,然后用公钥对 KEY 进行加密并发送给服务器,服务器接收到后使用私钥进行解密获得 KEY,然后客户端和服务器就可以使用这个相同的 KEY 对数据包进行加解密,如下图所示。

在这里插入图片描述

但是,按照上述过程就能保证安全了吗?

答案是否定的。貌似我们对服务器发出的公钥有很强的信任。试想一下,客户端和服务器之间有个中间人,其也可以获取服务器发出的公钥,如果他拦截了服务器要发送给客户端的公钥,并伪造了一把公钥然后再发送给客户端,在客户端使用伪造的公钥加密 KEY 并发出后进行拦截,那么他就可以窃取到客户端生成的 KEY,从而可以获取到客户端与服务器之间通信的数据包中的用户信息,导致严重的后果。

那么,如何确保客户端收到的公钥是可信的呢?这就需要能够证明服务器身份的数字证书了。

采用 HTTPS 通信的服务器需要向第三方数字证书认证机构 (CA) 申请数字证书(需要付费,安全等级越高价格越贵),机构在进行审核后会颁发电子证书,同时产生一对公钥和私钥,私钥由服务器自己保存,公钥则附加在证书信息中,与证书一起公开。证书本身也带有一个电子签名,该签名用于校验证书的完整性和真实性,可以防止证书被篡改。

所以,在进行数据传输前会增加证书验证的过程。服务器接收到客户端的请求后,将数字证书发送给客户端,里面包含了公钥。客户端接收到证书后会对证书进行校验,校验不通过则会向用户提示警告信息。校验通过后则取出公钥并对 KEY 进行加密,然后发送给服务器,服务器接收到加密后的 KEY 以后使用私钥进行解密,然后客户端和服务器采用对称加密的方式进行数据传输,如下图所示。

在这里插入图片描述

5 参考链接

HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 - SegmentFault 思否

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/442346.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WIN11 - WSL(Windows Subsystem for Linux) 安装教程

前言 WSL,即Windows Subsystem for Linux,是一种在Windows操作系统上运行Linux二进制文件的兼容层。该层提供了Linux环境和GNU工具,可以在Windows系统上运行Linux应用程序。WSL使得开发人员可以在Windows系统上使用Linux工具和命令行界面&am…

VMware vCenter告警:vSphere UI运行状况警报

vSphere UI运行状况警报 不会详细显示告警的具体内容,需要我们自己进一步确认告警原因。 vSphere UI运行状况警报是一种监控工具,用于检测vSphere环境中的潜在问题。当警报触发时,通常表示系统遇到了影响性能或可用性的问题。解决vSphere UI…

博云科技与中科可控全面合作,探索前沿金融科技新机遇

2024年1月26日,博云科技与中科可控在昆山高新区成功举办合作签约仪式。昆山市委常委、昆山高新区党工委书记孙道寻、中科可控董事长聂华、博云科技董事长花磊等领导出席了本次签约仪式。 中科可控将利用其在先进计算和智造领域的优势,为博云科技提供有关…

OSPF排错

目录 实验拓扑图 实验要求 实验排错 故障一 故障现象 故障分析 故障解决 故障二 故障现象 故障分析 故障解决 故障三 故障现象 故障分析 故障解决 故障四 故障现象 故障分析 故障解决 故障五 故障现象 故障分析 故障解决 故障六 故障现象 故障分析 …

哈希表算法模版

模拟散列哈希表 活动 - AcWing 拉链法 思路&#xff1a; 代码如下&#xff1a; #include <cstring> #include <iostream>using namespace std;const int N 1e5 3; // 取大于1e5的第一个质数&#xff0c;取质数冲突的概率最小 可以百度//* 开一个槽 h int h[…

【新课】安装部署系列Ⅲ—Oracle 19c Data Guard部署之两节点RAC部署实战

本课程由云贝教育-刘峰老师出品&#xff0c;感谢关注 课程介绍 Oracle Real Application Clusters (RAC) 是一种跨多个节点分布数据库的企业级解决方案。它使组织能够通过实现容错和负载平衡来提高可用性和可扩展性&#xff0c;同时提高性能。本课程基于当前主流版本Oracle 1…

一种手机短信验证码登录平台的解决方案

前提 爬取数据时&#xff0c;请求需要带上Cookie&#xff0c;这是很常见的一种防爬手段。更新Cookie&#xff0c;常用的方法就是Selenium模拟输入用户名和密码&#xff1b;偶尔会遇到图片验证码&#xff0c;现在打码平台很多且技术也很成熟&#xff0c;这个已经不成问题。所谓…

Gnuplot安装与配置

安装默认选项&#xff0c;下一步配置环境变量 找到系统环境变量&#xff0c;找到PATH 新建 浏览 将bin目录加进去 如图 再按winR&#xff0c;输入cmd打开终端&#xff0c;输入gnuplot&#xff0c;如果提示以下信息就可以绘图 如果要在Visual Studio中结合代码使用&#xff0c;需…

opencv学习 特征提取

内容来源于《opencv4应用开发入门、进阶与工程化实践》 图像金字塔 略 拉普拉斯金字塔 对输入图像进行reduce操作会生成不同分辨率的图像&#xff0c;对这些图像进行expand操作&#xff0c;然后使用reduce减去expand之后的结果&#xff0c;就会得到拉普拉斯金字塔图像。 …

PythonWeb框架库之fastapi使用详解

概要 Python是一门广受欢迎的编程语言&#xff0c;用于构建各种类型的Web应用程序。FastAPI是一个现代、高性能的Web框架&#xff0c;它以简单的方式提供了快速构建API的能力。本文将介绍FastAPI的各种功能和用法&#xff0c;并提供丰富的示例代码&#xff0c;帮助大家开始使用…

上位机在工业控制系统中的重要作用及其与PLC的互补关系

上位机在工业控制系统中的重要作用及其与PLC的互补关系 在现代工业自动化领域&#xff0c;上位机与可编程逻辑控制器&#xff08;PLC&#xff09;都是不可或缺的重要组成部分。它们各自发挥着独特的优势&#xff0c;在实现生产过程控制、监控和数据管理中扮演了关键角色。然而&…

感谢信∣中国智能电动汽车核心零部件百强「科易动力」SRM项目上线,企企通赋能新能源企业加速重构供应链体系

近日&#xff0c;企企通收到来自苏州科易新动力科技有限公司&#xff08;以下简称“科易动力”&#xff09;的感谢信&#xff0c;对企企通团队在SRM项目实施中所付出的努力表示感谢。 在双方的共同努力下&#xff0c;科易动力采购供应链协同管理项目&#xff08;SRM&#xff09…