HTTPS加密过程详解

2023-11-18

目录

一、HTTPS是什么

1.1 运营商劫持

1.2 加密是什么

二、HTTPS的工作过程

2.1 对称加密

2.2 非对称加密

2.3 引入证书


一、HTTPS是什么

HTTPS 也是一个应用层协议。是在 HTTP 协议的基础上引入了一个加密层。
HTTP 协议内容都是按照文本的方式明文传输的。这就导致在传输过程中出现一些被篡改的情况。

1.1 运营商劫持

为什么会引入HTTPS协议,这就要从运营商劫持说起了。由于HTTP是使用明文传输的,所以在向服务器发送数据的时候就会被中间人“运营商”将发送的请求进行劫持,进而给客服端响应“运营商”自己的数据。

例如:在网页浏览器下载某个软件的时候就会出现明明没有下载其他的东西,但是下载好的东西就不是你想要的,这就是典型的“运营商劫持”。当下载一个天天动听软件,未被劫持的时候是天天动听的链接

如果被劫持了,点击下载就会弹出其他应用的下载链接,这里就是qq浏览器的下载链接了!

这其中的缘由就是我们通过网络传输任何数据的时候都会经过运营商的网络设备(路由器,交换机),那么运营商就会解析传输的数据,并且进行篡改。

点击“下载按钮”其实就是向服务器发送一个http请求,服务器返回的响应就是包含了该软件的的下载链接。但是被运营商劫持后,他们就会把请求数据进行解析,当他们发现要下载“天天动听的”软件时,这时候就会将这个链接篡改成“qq浏览器”的下载地址了。

其实这里不只是运营商可以劫持请求数据,其他的黑客也可以用类似的手段进行劫持,从而获取用户的隐私信息(如果获取的是银行卡的账号以及密码,那后果是不是很严重呢!!!)。所以网络上的明文传输是一件比较危险的事情!!!

HTTPS就是在HTTP的基础上进行了加密处理,进一步来保证用户的信息安全!

1.2 加密是什么

加密就是把 明文 (要传输的信息)进行一系列变换,生成 密文 。解密就是把 密文 再进行一系列变换,还原成 明文 。在这个加密和解密的过程中,往往需要一个或者多个中间的数据,辅助进行这个过程, 这样的数据称为 密钥 。

二、HTTPS的工作过程

既然要保证数据的安全,那就需要对数据进行“加密”。网络传输中已经不在直接传输明文了,而是加密后的“密文”。加密的过程有很多种,但是整体的可以分为两类:“对称加密”和“非对称加密

2.1 对称加密

对称加密其实就是引入一个密钥 key,通过这个 key 将 明文 加密成 密文,并且还能使用这个 key 密文 解密成 明文。以下是一个正常的对称加密流程:

但是在这个过程中key的传输是通过网络传输的,所以这里的key就会被黑客获取到,从而利用key对传输的数据进行解密获取。以下就是黑客获取数据的全过程:

为了防止这种情况的发生,引入了非对称加密将对称加密中的key进行加密(因为在数据传输的过程中也是需要考虑效率的,所以不能引用非对称加密及进行数据传输,但是可以加密对称加密中的key,然后再利用对称加密来加密数据)

2.2 非对称加密

换而言之,非对症加密 就是对 对称加密 再加密的过程,需要将 对称加密的中的 key 安全的告诉服务器。下面是一组 非对称加密 的安全加密过程(之所以这么说是因为只有非对称加密也是不安全的)

虽然这个过程黑客无法直接获取到key了,但是他可以通过其他的手段拿到key,接下来就是黑客通过自己的 pub key pri key 拿到客户端的 密钥key

为了解决上述问题,HTTPS的解决方案就是引入证书,有了证书之后,就能够很好的解决上述的问题了。

2.3 引入证书

引入证书过程相对复杂,这里就不过多的介绍,大概了解就行了。在客户端和服务器刚一建立连接的时候,服务器给客户端返回一个 证书。这个证书包含了刚才的公钥,也包含了网站的身份信息

这个证书就好比人的身份证,作为这个网站的身份标识。搭建一个 HTTPS 网站要在CA机构先申请一个证书。(类似于去公安局办个身份证)

当客户端获取到这个证书之后,会对证书进行校验(防止证书是伪造的)。

  • 判定证书的有效期是否过期
  • 判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构)。
  • 验证证书是否被篡改:从系统中拿到该证书发布机构的公钥,对签名解密,得到一个 hash 值(称为数据摘要),设为 hash1。然后计算整个证书的 hash 值,设为 hash2。对比 hash1 和 hash2 是否相等。如果相等,则说明证书是没有被篡改过的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTPS加密过程详解 的相关文章

  • C# - 如何进行 HTTP 调用

    我想对网站进行 HTTP 调用 我只需要点击 URL 不想上传或下载任何数据 最简单 最快的方法是什么 我尝试了下面的代码 但它很慢 并且在第二次重复请求后 它只是超时 59 秒 然后恢复 WebRequest webRequest Web
  • 无法通过 HTTPS 调用 Web 服务

    我正在开发一个 Net 应用程序 它与 Web 服务通信以获取一些数据 Net 应用程序和 Web 服务之间的连接是通过 HTTPS 完成的 当我从 Net 应用程序调用 Web 服务时 我得到以下堆栈跟踪 System Net WebEx
  • Android:从 https url 获取响应

    问候 我正在开发一个 Android 应用程序 需要通过 https 打开一个 url 带有 POST 参数 并获取响应 我有一个自签名证书 这让情况更加复杂 我还需要接受cookies 有人知道从哪里开始吗 提前谢谢了 Android 附
  • Vertx HttpClient getNow 不工作

    我的 vertx HttpClient 有问题 下面的代码显示使用 vertx 和纯 java 测试 GET Vertx vertx Vertx vertx HttpClientOptions options new HttpClientO
  • 服务器返回网页 404,但页面在浏览器中显示正常 - 为什么?

    一个奇怪的网页横亘在我面前 作为一名开发人员 我必须解开这个谜团 在任何浏览器中访问网页时 一切似乎都很正常 网页按预期显示 但是当查看控制台时 服务器实际上返回了 404 状态代码 那么浏览器为什么要渲染页面呢 查看正文显示返回了有效的
  • 如何最好地将 Facebook 评论从 http 移至 https

    我们正在将 Ruby On Rails 网站从 HTTP 迁移到 HTTPS 我们的网站使用fb comments用于捕获各个页面上的用户评论的插件 在我们的测试过程中 我们发现当我们将页面从 HTTP 切换到 HTTPS 时 Facebo
  • 如何增加asp classic的请求接受限制

    我从java小程序向asp classic发送post请求 我在此请求中发送非常大的数据 即 csv 数据 当此请求中的字符数增加并超过 138000 时 asp 不接受该请求 java 小程序给出 500 错误 所以有人可以告诉我如何才能
  • 在 iOS 中,http 204 响应返回空白页面,有办法阻止这种情况吗?

    以前可能有人问过这个问题 但我似乎找不到解决方案 所以如果是这种情况 我深表歉意 我正在开发一个使用express的简单节点应用程序 其中一个帖子路由返回 http 204 并发送它 下面是我的代码 router post id funct
  • 防止 ASP.Net 中的表单重新提交(不重定向到我自己)

    我有一个带有表单元素的母版页
  • 在读取正文之前拒绝 HTTP 请求

    我正在开发一个网站 用户需要上传一些非常大的文件 该网站是用 PHP 编写的 在某些情况下 我想根据标头拒绝文件 理想情况下 我想在收到标头后立即拒绝请求 而不读取正文 如果标头足以表明该文件应被拒绝 则没有理由读取 200M 的文件 此外
  • ASP.NET Core URL 重写

    我正在尝试将我的网站从 www 重定向到非 www 规则以及 http 到 https https example com https example com 在中间件中 我曾经在 web config 中进行这些重定向更改 例如
  • SSL/TLS/HTTPS 站点在 C#/.NET WebBrowser 控件中非常慢,但在 Internet Explorer 中则很好

    背景 我正在修改自动维基浏览器 http en wikipedia org wiki Wikipedia AutoWikiBrowser使用托管在安全服务器上的 MediaWiki 站点 我允许用户通过 C 应用程序中的 WebBrowse
  • Android - API 请求

    我开发了一个应用程序 它也在 iPhone 上 问题出在 api 请求上 我为所有请求设置了超时 有时会出现 30 60 秒的中断 看起来这个应用程序执行了几个请求 然后就中断了 一直超时 大约 45 秒后一切正常 不知道是服务器问题还是安
  • AJAX 发送数据到 Node.js 服务器

    我尝试使用 AJAX 将数据发送到 Node js 服务器 但不断遇到同样的问题 即接收问题 这是客户端 JavaScript AJAX 代码 var objects function return new XMLHttpRequest f
  • 诸如用于测试 HTTP 请求的虚拟 REST 服务器之类的东西? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我一直在四处寻找 但找不到任何这样的网站 我想知道是否有一些虚拟服务器可以响应测试 GET 请求并返回
  • 404 标头 - HTTP 1.0 还是 1.1?

    为什么我能找到的几乎每个例子 包括这个问题 https stackoverflow com questions 437256 sending a 404 error in php大约一年前 说 404 标头应该是HTTP 1 0 404 N
  • UNIX/MacOS 上静态文件的“临时 Web 服务器”?

    是否有一个像小型网络服务器这样的东西 我可以从命令行调用它 只从本地文件系统获取文件并通过特定端口上的 HTTP 为它们提供服务 我希望能够做这样的事情 cd Sites mysite serve 10 0 1 1 8080 这应该会启动一
  • IIS 8 HTTPS/需要 SSL 导致超时错误

    尝试通过 IIS 8 通过 SSL 发布网站 但出现超时错误 任何帮助表示赞赏 采取的步骤 已验证该网站可以通过 HTTP 访问 http xxx xxx xxx xxx有效 此时使用 IP 地址 如果重要的话 IIS gt 服务器证书 g
  • 如何使用 net/http 验证 ruby​​ 中的 SSL 证书链

    我如何验证网站的证书 例如https processing ukash com https processing ukash com 在 ruby 中使用 net http https Net HTTP new processing uka
  • 如何在android网络库(ION)中使用自签名SSL?

    使用此网络库 https github com koush ion https github com koush ion 由于当前状态是开发 我想使用自签名 SSL 证书 图书馆论坛有一些讨论 https github com koush

随机推荐

  • 90-50-010-源码-hbase的rowkey设计

    1 视界 1 rowKey编码概述 注 Kylin源码分析系列基于Kylin的2 6 0版本的源码 其他版本可以类比 2 相关概念 前面介绍了Kylin中Cube构建的流程 但Cube数据具体是以什么样的形式存在 可能还不是特别清晰明了 这
  • 拷贝构造函数调用总结

    拷贝构造函数主要在以下三种情况下起初始化作用 1 在声明语句中用一个对象初始化另一个对象 2 将一个对象作为参数按值调用方式传递给另一个对象时生成对象副本 3 生成一个临时对象作为函数的返回结果 那么接着就看一下在这三种情况下拷贝构造函数分
  • python自动化课程笔记(六)函数

    函数 类 模块 包 项目 包与文件夹的区别在于 包中有很多模块 和init文件 函数 提高编码的效率及代码的重用 把独立功能的代码块组成一个小模块 def printInfo 定义一个函数 print 10 print 人生苦短 我用pyt
  • Microsoft Office 2021安装

    哈喽 大家好 今天一起学习的是office2021的安装 有兴趣的小伙伴也可以来一起试试手 一 测试演示参数 演示操作系统 Windows 11 支持Win10安装 不支持Win7 XP系统 系统类型 64位 演示版本 cn office
  • PMP估算方法对比:参数估算、类比估算、自下而上估算、三点估算和粗略量级估算

    目录 1 类比估算 2 参数估算 3 自下而上估算 4 三点估算 5 粗略量级估算 1 类比估算 英文全称 Analogous Estimating Technique 定义 与过去类似活动的参数值 如范围 成本 预算和持续时间等 或规模指
  • 快乐E栈项目实战第四阶段

    快乐E栈项目实战第四阶段 文章目录 快乐E栈项目实战第四阶段 1 思路 2 代码 3 结果 学完Java的IO操作 我们使用文件将快递信息存储起来 这样程序重新启动起来存储的快递信息也不会丢失 暂时不使用序列化进行存储 使用Properti
  • MySQL C/C++ API libmysqlclient-dev

    完整的API内容地址 https www mysqlzh com doc 196 html 接口 接口 解释 mysql library init 初始化MySQL C API库 mysql library end 最终确定MySQL C
  • Calendar的使用

    Calendar Calendar是一个抽象类 构造器被protected修饰 需要通过getInstance 获取实例 public static void main String args Calendar instance Calen
  • IDEA2021中VUE代码爆红解决方案

    1 在IDEA中安装vue js插件 找到vue js安装即可 之后点击apply gt OK 2 安装完成后打开cmd 输入npm v npm命令集成在node js里面 如果这条命令失败则前往node js进行相关的安装 3 爆红的主要
  • 解决Ubuntu 20.04网络无法连接,没有网络图标

    现象 网络适配器处于NAT 并且电脑主机有网络 但是Ubuntu20 04中没有网络 或者初次启动Ubuntu20 04时是由网络的 但后来不知是何原因导致网络不通 无法用浏览器访问百度 如下图右上角有线网络图标消失了 解决方法 删除Net
  • 【教程分享】Docker搭建Zipkin,实现数据持久化到MySQL、ES

    1 拉取镜像 指定版本 在git查看相应版本 参考 https github com openzipkin zipkin 如2 21 7 docker pull openzipkin zipkin 2 21 7 2 启动 Zipkin默认端
  • Mybatis源码阅读(四)-Spring集成Mybatis-Mapper接口的注入:MapperScannerConfigurer

    一 Spring包扫描注解注入会过滤掉接口类 在Spring IOC容器启动的过程中 Spring会在扫描 CompopnentScan指定的路径时 会将被 Component Service等注解的类自动注册BeanDefinition到
  • 微信小程序NPM使用及第三方依赖安装详解

    一 NPM 1 1NPM介绍 首先我们介绍NPM的使用 NPM是随同NodeJS一起安装的包管理工具 能解决NodeJS代码部署上的很多问题 常见的使用场景有以下几种 允许用户从NPM服务器下载别人编写的第三方包到本地使用 安装第三方依赖过
  • top命令浅析

    top 使用top命令会实时的刷新系统的负载信息 top命令的选项很多 此处只列举我个人觉得比较实用的几个选项 具体选项可以参考man top 进行查看 u user 只显示指定用户启动的进程 p pid 只显示指定pid的进程 d sec
  • 【图像分类】基于PyTorch搭建LSTM实现MNIST手写数字体识别(单向LSTM,附完整代码和数据集)

    写在前面 首先感谢兄弟们的关注和订阅 让我有创作的动力 在创作过程我会尽最大能力 保证作品的质量 如果有问题 可以私信我 让我们携手共进 共创辉煌 提起LSTM大家第一反应是在NLP的数据集上比较常见 不过在图片分类中 它同样也可以使用 我
  • 字节跳动自研万亿级图数据库 & 图计算实践

    本文选自 字节跳动基础架构实践 系列文章 字节跳动基础架构实践 系列文章是由字节跳动基础架构部门各技术团队及专家倾力打造的技术干货内容 和大家分享团队在基础架构发展和演进过程中的实践经验与教训 与各位技术同学一起交流成长 2019 年 Ga
  • 视频接口(2)—— MIPI Solution

    目录 1 MIPI概述 2 MIPI优点 3 CSI 2 3 1 多个物理通道字节数据格式 3 2 低电压等级协议特性 3 3 短包结构 3 4 长包结构 3 5 Data Identifier DI 3 6 数据类型类 3 7 帧同步包结
  • 关于type_C接口

    文章目录 概要 一 引脚定义 二 六脚Type c 三 12脚Type c 四 16脚Type c 五 usb3 0 概要 type C接口外观好看 双面插等众多优点 已经成为了现在主流的接口 一 引脚定义 VBus 总线电源 USB PD
  • androidのview游戏框架

    android view游戏框架 1 view游戏框架介绍 首先需要建立一个Activity public class MainActivity extends Activity Override public void onCreate
  • HTTPS加密过程详解

    目录 一 HTTPS是什么 1 1 运营商劫持 1 2 加密是什么 二 HTTPS的工作过程 2 1 对称加密 2 2 非对称加密 2 3 引入证书 一 HTTPS是什么 HTTPS 也是一个应用层协议 是在 HTTP 协议的基础上引入了一