HTTPS加密流程

HTTPS协议加密流程 HTTPS协议加密流程一、HTTPS的协议是啥?二、加密流程(一)对称加密非对称加密:三、中间人攻击(四)官方证书 一、HTTPS的协议是啥? HTTPS是在HTTP的基础上引入了一层加密层。 HTTP协议属于明文传输,在传输过程中,可能会被运营商劫持数据并篡改,于是就搞出了HTTPS协议进行加密传输。 HTTPS引入的加密层,被称为SSL/TLS。 注:加密不是不能破解,而是指破解的成本远远高于获得其中数据的价值。就像计算一个很多的排列组合数要花费一台普通计算机几百年、几千年的时间成本一样。 二、加 阅读详情

转载自:https://www.toutiao.com/a6613628254299357703/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1539909614&app=news_article&utm_source=mobile_qq&iid=46547913405&utm_medium=toutiao_android&group_id=6613628254299357703

写在前面

最近在看了解HTTP相关的一些知识,主要在看《图解HTTP》这本书,感觉还不错。所以结合自己的理解,做一下笔记。话说之前还大概过了下《HTTP权威指南》,感觉这本书内容过多了,不太适合新手看。新手还是建议看《图解HTTP》。

什么是HTTPS

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。

HTTPS在应用层(HTTP)和传输层(TCP)之间加入了一个安全层(SSL或TLS)。目的是为了解决HTTP协议的几个缺点:

  • 通信使用明文(不加密),内容可能会被窃听。
  • 无法证明报文的完整性,所以有可能早已篡改。
  • 不验证通信方的身份,因此有可能遭遇伪装。

 

HTTPS学习总结拿走不谢

 

 

HTTPS是位于安全层之上的HTTP,这个安全层位于TCP之上

HTTP的几个缺点

通信使用明文(不加密),内容可能会被窃听。

HTTP协议并没有对通信以及数据进行加密,是明文发送的。而我们使用HTTP请求的时候,数据会经过许多个路由器,代理之类的设备,在这个过程中,只要有人在某一个环节抓取了数据包(这个操作并不难),那这个请求的数据就会被看到。如果请求里面有一些重要的数据,比如银行卡账号、手机号、密码等信息,就会有泄露的风险。

无法证明报文的完整性,所以有可能早已篡改。

由于HTTP协议无法证明通信的报文完整性,因此,在请求或响应送出之后直到对方接收之前的这段时间内,即使请求或响应遭到篡改,也没有办法获悉。

换句话说,没有任何办法确认,发出的请求/响应和接收到的请求/响应是相同的。

 

HTTPS学习总结拿走不谢

 

 

数据在传输过程中可能会遭到篡改

不验证通信方的身份,因此有可能遭遇伪装。

HTTP协议的实现本身非常简单,不论是谁发过来的请求都会返回响应,因此不确认通信方,会存在以下隐患:

  • 无法确认请求发送至目标的Web服务器是否是按真实意图返回响应的那台服务器。有可能是伪装的Web服务器。
  • 无法确认响应返回到的客户端是否是按真实意图接收响应的那个客户端,有可能是伪装的客户端。
  • 无法确定正在通信的对方是否具备访问权限,因为某些Web服务器上保存着重要的信息,只想发给特定用户通信的权限。
  • 无法判断请求是来自何方,出自何手。

即使是无意义的请求也会照单全收。无法阻止海量请求下的DoS攻击。

HTTP+加密+完整性保护+认证=HTTPS

我们来看下HTTPS是如何解决上面的问题的。

使用通信加密解决HTTP的明文发送问题

不同于HTTP的明文通信,HTTPS的通信是经过加密的。所以,就算有人在通信的过程中抓取到了数据包,因为没有密钥,所以无法知道数据包的具体内容,这样可以对传输的数据进行保护。

 

HTTPS学习总结拿走不谢

 

 

HTTPS中,网络传输的数据(请求和响应)都是经过加密的

HTTPS通信中,客户端和服务器都会有两个相同的通信密钥(设为密钥A),客户端发送请求时,会使用密钥A对请求进行加密成密文,服务器接收到请求之后,会使用密钥A对请求内容进行解密,得到客户端发送的明文,进行处理。响应过程也相似。

因此,在网络传输的过程中,因为数据被加密了,所以就算有人获取到了数据包,因为没有密钥A,所以就无法解密出数据包的内容,看到的是一堆乱码。

像这种加密和解密都是使用同一个密钥的加密方式叫做对称加密(也叫共享加密,共同拥有一个密钥)。使用密钥A加密的内容,只能用密钥A来解密,其他的密钥都无法解密。常用的对称加密算法有DES,3DES,AES。

还有一种加密方式叫非对称加密(也叫公开密钥加密)。非对称加密需要使用两个密钥,公开密钥(public key)和私有密钥(private key)。公开密钥是公开的,所有人都知道。私有密钥是保密的,除了自己,不让任何人知道。

  • 使用公开密钥加密的数据,只有使用私有密钥才能解密。
  • 使用私有密钥加密的数据,只有使用公开密钥才能解密。
  • 使用摘要验证保证数据完整性

HTTPS不仅仅使用了对称加密的方式,还使用了非对称加密的方式。事实上,HTTPS通信过程中,客户端会持有一个公钥,服务器会持有一个私钥。使用非对称加密可以完成好几个关键的操作。比如验证身份,比如协商通信的对称密钥,比如数据传输过程中加密摘要。

 

HTTPS学习总结拿走不谢

 

 

HTTPS中使用摘要算法来验证数据完整性,使用非对称密钥加解密摘要,使用对称密钥对数据进行加解密

如上图所示,在请求和响应过程中,除了加密后的数据,还会发送一个报文摘要,通过这个摘要,可以验证数据是否被篡改。

拿响应为例,

  • 服务器会将明文的响应用摘要算法计算摘要,跟数据一起发送给客户端。
  • 客户端将接收到的响应数据解密出来后,计算摘要。

然后客户端会将自己计算出来的摘要跟服务器发送过来的摘要进行对比,如果两个是相同的,那么证明服务器发出的响应数据跟客户端收到的响应数据是相同的。也就是数据是完整的,没有丢失,也没有遭到篡改。

但是这里的前提是,服务器发过来的摘要没有被篡改,如果有人在篡改了数据之后,连摘要也改了,那就有点坑了。所以HTTTPS会使用非对称加密对摘要进行加密,防止摘要被篡改。

  • 服务器会将明文的响应用摘要算法计算摘要。
  • 将摘要使用私钥进行加密,跟数据一起发送给客户端。
  • 客户端将接收到的响应数据解密出来后,计算摘要。
  • 客户端将接收到的摘要使用公钥进行解密。

然后客户端会将自己计算出来的摘要跟解密出来的服务器发送过来的摘要进行对比,如果两个是相同的,那么证明服务器发出的响应数据跟客户端收到的响应数据是相同的。也就是数据是完整的,没有丢失,也没有遭到篡改。

为什么非对称加密可以保证服务器发送的摘要不被修改呢?

因为私钥只有服务器有,也就是说,只有服务器能够使用私钥进行加密。而使用私钥加密的数据,只有公钥可以解密。换句话说,用公钥能够解密出来的数据,就是使用私钥加密过的。所以,只要客户端使用公钥能够解密出来加密过的摘要,那么这个摘要就是服务器使用私钥加密的。而且私钥只有服务器知道,别人无法篡改加密后的摘要。

这里其实我有个疑问,反过来,在请求过程中,客户端使用公钥加密摘要,然后服务器私有私钥解密摘要。貌似只有证明这个摘要是使用公钥加密的,但是,公钥是公开的,别人也能知道,那别人不就可以篡改这个摘要?

使用数字证书验证服务器的身份

HTTPS是如何确认服务器的真实性的呢?也就说,怎样确认跟客户端通信的服务器就是我们的域名指向的服务器,而不是其他服务器冒充的?

HTTPS采用非对称加密方式解决问题。

服务器拥有私钥,这个私钥只有服务器有,所以,只要客户端拥有服务器的公钥,那么,当服务器使用私钥加密数据发送给客户端,而客户端能够解密出数据,说明公钥和私钥是配对的,而公钥是对应着我们想要的那个服务器的,所以就代表服务器是真的。

那么问题又来了,我们怎么拿到该服务器的公钥呢?在客户端内置?怎么多网站,怎么看都不现实。

那我们就在建立连接的时候发送给客户端。

嗯,HTTPS就是这么做的。

不对,那发送公钥的时候,公钥也可能被篡改啊,要是被篡改成其他服务器的公钥,以后就是跟其他冒充的服务器通信了,那怎么玩?

嗯,HTTPS引入了权威的第三方机构来确保这个公钥确实是该服务器的。

如果要使用HTTPS,服务器管理人员需要向CA(权威的证书颁发机构)购买证书。CA会将该服务器的域名、公钥、公司信息等内容封装到证书中。并且使用CA自己的私钥对证书进行签名。那么,服务器将证书发给客户端,客户端如果验证出证书是有效的,并且证书的域名跟目前通信的域名一致,那么这个证书里面的公钥就是有效的。而且当前是域名指向的服务器的公钥。所以,我们就能确保拿到的公钥是真的了。

嗯,这个CA机构颁发的证书就叫做数字证书。

问题又来了,客户端如何验证服务器发过来证书是有效的呢?

证书上有CA用其私钥做的签名,而一般客户端都会内置这些权威机构(CA)的公钥的,所以能够直接拿到CA的公钥对证书上的签名进行解密,然后自己根据证书上的说明计算摘要,两个摘要一致的话,代表证书是有效。因为只有CA自己才有私钥,别人是不可能冒充这个签名的。

说了那么多,HTTPS在连接建立时会发给客户端一个数字证书,客户端验证了数字证书之后,就能确认服务器的身份。同时还可以用数字证书上的公钥加密随机生成的共享密钥A,与服务器协商接下来通信过程中加密数据所用的共享密钥A。

HTTPS握手过程

 

HTTPS学习总结拿走不谢

 

 

HTTPS握手过程

SSL 协议既用到了公钥加密技术又用到了对称加密技术,对称加密技术虽然比公钥加密技术的速度快,可是公钥加密技术提供了更好的身份认证技术。SSL 的握手协议非常有效的让客户和服务器之间完成相互之间的身份认证,其主要过程如下:

①客户端向服务器请求HTTPS连接。

客户端向服务器传送客户端SSL 协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息。

②服务器确认并返回证书。

服务器向客户端传送SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书。

③客户端验证服务器发来的证书。

客户端利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步。

④信息验证通过,客户端生成随机密钥A,用公钥加密后发给服务器。

从第③步验证过的证书里面可以拿到服务器的公钥,客户端生成的随机密钥就使用这个公钥来加密,加密之后,只有拥有该服务器(持有私钥)才能解密出来,保证安全。

⑤服务器用私钥解密出随机密钥A,以后通信就用这个随机密钥A来对通信进行加密。

我们这个握手过程并没有将验证客户端身份的逻辑加进去。因为在大多数的情况下,HTTPS只是验证服务器的身份而已。如果要验证客户端的身份,需要客户端拥有证书,在握手时发送证书,而这个证书是需要成本的。

 

常用的20个Git命令—举例说明 常用的20个Git命令—举例说明 参考链接:https://www.toutiao.com/i6802046516283310599/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1610581541&app=news_article&utm_source=mobile_qq&utm_medium=toutiao_android&use_new_style=1&req_id=202101 阅读详情

相关推荐

surface client share

NULL 博文链接:https://buptmax.iteye.com/blog/973351

RTP相关

RTP

Seehom的博客 1056

攻克+86手机号Discord验证墙:从“无效”到“成功”的实战指南

本文提供了一份针对+86手机号在Discord注册时频繁遭遇“手机号无效”问题的实战解决指南。文章系统分析了问题根源,并分步详解了从打造纯净网络环境、尝试多种手机号格式(如+86前加0),到更换iOS等客户端设备的有效方法,旨在帮助用户成功完成Discord手机号验证。

mac99的博客 1111

今日头条视频下载器[android下载源码]

在家无聊,看到赵四大神 写的一个python脚本下载今日头条的工具,最后他还给出了移动端的样子,可惜没有源码,在他的虚心教导下,看完了他的文章,我决定自己撸一个,见笑了: 优快云图片最大值只能传2m,所以用了两张gif图,大家见笑了。 下面说一下具体的实现过程,这一点说实在,基本上是翻译了赵大神 的文章,没啥要说,但是还是记录一下吧。具体的实现步骤大概可以用下的思路概括: 说得挺高上,其

成长的烧年 1万+

物料主数据管理难在哪?基于AI算法的数据清洗工具了解一下

企企通打造的一套以AI模型和算法为核心的产品及服务,可针对各类企业的不同主数据痛点难点,提供多种解决方案,能够快速完成物料主数据清洗、识别、匹配、梳理,满足一物一码、分类梳理、一品多商、多维度比价、精准寻源选品、建立标准物料库、供应商及客户主数据清洗等业务场景需求。随着AI技术的快速发展,智能算法在数据清洗领域的应用越来越广泛,越来越多的数据清洗工作已经开始交由智能算法完成,通过自动化的方式处理大量数据,识别和纠正错误,填补缺失值,检测异常值,以及执行其他数据预处理任务,并提高效率并减少人为错误。

QQT_qqt的博客 1364

C#开发医学影像胶片打印系统(一):万能花式布局的实现思路

本篇文章将介绍开发医学影像胶片打印系统(printscu模式)遇到不规则排版时的一种思路,一般来讲,医院打印胶片时都是整张胶片打印,但有时需要将多个病人或一个病人的多个检查打印在同一张胶片上,这时候就需要不规则排版来满足打印需求,使胶片利用率最大化。

罗万科技的博客 1325

Centos7等保三级检查命令

一、操作系统   1、查看文件权限 查看该文件的权限 ls -la /var/log/audit/audit.log 查看如下文件的权限是否满足 ls -l /etc/passwd ls -l /etc/hosts ls -l /etc/login.defs ls -l /etc/hosts.allow ls -l /etc/shadow ls -l /etc/hosts.deny ls -l /etc/group

人走茶良的博客 2239

AI在电商中的搜索优化

自拟标题 《AI技术助力电商搜索优化:深度解析一线大厂面试题及算法编程实践》 概述 随着人工智能技术的不断发展,AI在电商搜索优化中的应用日益广泛。本文将围绕“AI在电商中的搜索优化”这一主题,介绍国内头部一线大厂如阿里巴巴、百度、腾讯、字节跳动等在面试中常见的AI相关面试题和算法编程题,并提供详尽的答案解

AI天才研究院 912

Https加密流程

htpps加密配置思路,对全部加密和部分加密分别都进行了详细配置

m0_46456908的博客 909

隧道裂缝检测【C++PCL】

我们团队注重每一个细节,确保代码的可读性、可维护性和可扩展性达到最高标准。我们严格遵循行业最佳实践,采用模块化和面向对象的设计原则,使得我们的代码结构清晰且易于理解。我们的点云服务更是引以为傲。我们的技术团队拥有深厚的专业知识和丰富的经验,能够提供高度准确和高效的点云处理服务。无论是点云的获取、存储还是分析,我们都能够满足客户的需求,并提供出色的解决方案。我们的技术实力也是无与伦比的,拥有广泛的技术背景和深入的专业知识。

weixin_45196569的博客 848

【同等学力】01-逻辑符号表达

F(x): x是确诊者,G(x):x有症状F(x): x是老人,G(x):x是宠物,L(x,y): x喜欢y。

super_mochi1 1880

HTTPS加密流程总结

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

沐北的博客 1363

Qt C++ 的虚拟演播室系统

**数据流转**:OpenCV 处理的图像格式通常是 `cv::Mat`,而 Qt 3D 渲染需要 `QImage` 或 `QTexture2D`。// 临时用颜色代替。// 前景在背景前面。#### 3.3 主窗口与 Qt 3D 集成 (`mainwindow.h` / `.cpp` / `.ui`)* **更复杂的 3D 场景**:加载 3D 模型(.obj, .gltf 等)作为背景和道具。1. **构建项目**:确保 `.pro` 文件中的 OpenCV 路径配置正确,然后构建项目。

寒寒豆豆软件公司的博客 111

HTTPS 的加密流程

HTTPS 工作过程中涉及到的密钥有三组。第一组(非对称加密): 用于校验证书是否被篡改。第二组(非对称加密): 用于协商生成对称加密的密钥。第三组(对称加密): 客户端和服务器后续传输的数据都通过这个对称密钥加密解密。HTTPS是当前互联网上广泛使用的安全通信协议,对于保护用户隐私和数据安全至关重要。

weixin_49817511的博客 3104

视频理解与处理——OpenClaw视频能力深度解析(2026视频版)

本文介绍了OpenClaw视频理解与处理的核心技术,重点分析了视频预处理流程。通过VideoProcessor类实现视频加载、帧采样、尺寸调整和归一化等基础处理功能,支持本地和在线视频源处理,为后续视频分析任务提供标准化输入。预处理模块采用均匀采样和标准化方法优化视频数据,确保动作识别、场景分析等高级应用的准确性,展现了OpenClaw强大的视频处理能力。

一键难忘的博客 464

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

https加密流程

本篇文章简单介绍一下https并分析其加密流程。由于http是明文传输,我们在网络传输的数据包很容易被解析,也就是说只要获得了数据包,就可以看到里面的内容,这样极其不安全,所以就有了https,所谓https介绍在http的基础上进行了加密,来保护用户的信息安全。本篇文章介绍了https的加密流程,描述了https的加密是如何一步步的进行完善,改进的。

2301_80817503的博客 744

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HTTPS的加密流程

HTTP协议采用的是明文传输,所以就存在数据被截取和修改的危险,比较有名的一件事就是2015的运营商劫持事件,所以针对HTTP协议传输的数据进行加密是非常有必要的,H,可以说HTTPS=HTTP+SSL;了解加密过程之前需要了解几个概念:明文,密文,密钥,对称加密,非对称加密:要传输的数据;:对明文进行加密就可以得到密文;:对明文进行加密和解密的重要道具/方法,密钥是非常安全,没有解密的密钥破解是非常大的,所以一般黑客不回去破解密钥,而是想法设法劫取到密钥。:加密,解密是同一个密钥。

分享所学,所见,所闻,期待遇见志同道合的人 1642

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【应用层协议】HTTPS的加密流程

HTTPS的加密流程,这个是非常重要的!

是小辰 1290

总结 HTTPS 的加密流程

HTTPS也是⼀个应⽤层协议.是在HTTP协议的基础上引⼊了⼀个加密层.HTTP协议内容都是按照⽂本的⽅式明⽂传输的.这就导致在传输过程中出现⼀些被篡改的情况.上篇文章中已经介绍到了臭名昭著的运营商劫持案件, 这里再介绍一下.下载⼀个天天动听 未被劫持的效果,点击下载按钮,就会弹出天天动听的下载链接已被劫持的效果,点击下载按钮,就会弹出QQ浏览器的下载链接。

m0_63562631的博客 1178

HTTPS的基本理解以及加密流程

同时,服务端也会发送握手结束通知,通知消息中会把之前所有内容的数据做一个摘要,用来供客户端检验。客户端收到服务端回应后,验证数字证书是否合法,如果证书受信任,或者用户接受该不受信的证书,客户端生成一个48字节的随机数作为预主密钥,并用证书中的提供的服务器公钥加密,发送给服务器。密钥交换算法,因为考虑到性能的问题,所以双方在加密通信数据时使用的是对称加密密钥,而对称加密密钥是不能被泄漏的,为了保证对称加密密钥的安全性,所以使用非对称加密的方式来保护对称加密密钥的协商,这个工作就是密钥交换算法负责的。

m0_72874409的博客 1319
上一篇: C#开发人员应该知道的13件事情
下一篇: centos7安装后不能上网
安静平和
博客等级 码龄17年 377粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值