【HTTPS】深入解析 https

news2024/10/8 17:30:48

我的主页:2的n次方_      

在这里插入图片描述

1. 背景介绍

在使用 http 协议的时候是不安全的,可能会出现运营商劫持等安全问题,运营商通过劫持 http 流量,篡改返回的网页内容,例如广告业务,可能会通过 Referer 字段 来统计是从哪个页面转接进来的,但是运营商就可能把信息改为自己的,也就是从运营商点击的广告,从而侵害原厂商的的利益,出了这个案例,还可能会篡改其他的信息,使得用户在访问一些界面时强制跳转广告或者下载某个应用时,点击下载却下载了其他应用等等,这些问题都是由于 http 是明文传输的,所以就引入了 https

HTTPS 其实就是 HTTP 的安全版本, HTTPS通过加密、认证和完整性保护,确保通信内容不会被第三方窃听或篡改

先来介绍几个概念:

明文:要传输的原始数据

密文:把明文进行加密之后的数据

密钥:进行加密和解密的重要数据(辅助工具)

公钥:可以公开的密钥,通常可以广泛的分发给任何需要的人

私钥:严格保密的密钥,只有密钥所有者才知道,与公钥成对出现,用于解密由客户端使用服务器公钥加密后的数据

对称加密:不论是加密还是解密,都使用同一个密钥

非对称加密:使用公钥对数据进行加密,使用私钥对数据进行解密,例如,A 要向 B 发送机密信息,A 可以使用 B 的公钥对信息进行加密,B 收到加密信息后,使用自己的私钥进行解密。

为了防止上述的数据被篡改的安全问题,就需要把数据进行加密传输

2. 引入对称加密

一般情况下都是多个客户端对应一个服务器,这些客户端在连接上服务器之后需要自己生成一个随机的对称密钥给服务器,服务器拿到这个密钥之后才能解密,如果多个客户端使用同一个密钥,那么黑客登录一个客户端就之后密钥是什么了

但是上面的过程还是存在一个问题的:

使用对称加密的话,这其实和不加密也没什么区别

3. 引入非对称加密

这里是在之前使用对称加密的基础上引入了非对称加密,对对称加密的密钥进行加密,那为什么不都使用非对称加密呢?非对称加密的的解密过程其实是比较消耗时间的,所以进行一次非对称加密,后续的进行对称加密既保证了数据的安全性,也保证了传输效率

客户端通过服务器的公钥对后续的对称加密的密钥进行加密,服务器通过私钥进行解密:

在上面的过程中,被黑客入侵的中间设备由于没有私钥,所以不能解析客户端使用公钥加密的数据,后续再进行对称加密就保证了数据的安全性

不过呢,上面的还是有缺陷的,通过中间人攻击就可以破解

4. 中间人攻击

被黑客入侵的设备在客户端面前假扮服务器,在服务器面前假扮客户端,就能够骗过双方

就像上面的过程那样,客户端并不知道当前的公钥是黑客伪造的,中间设备劫持上面的数据之后,使用 自己的私钥 pri2 就知道了对称密钥的内容,信息就会被泄露篡改了

5. 证书机制

其实上面问题的关键是客户端无法区分拿到的公钥是否是正常的,通过引入证书机制就可以解决上述的中间人攻击问题,如果想要搭建服务器使用 HTTPS 就需要在公证机构里申请证书(包括证书发布机构,证书有效期,证书所有者,公钥,签名等),服务器申请到证书之后,客户端除了从服务器获取公钥之外还会获取对应的证书。

证书中的签名包括校验和 + 加密,原始数据相同,计算的校验和也就相同,校验和不同就说明被篡改过了,这里的加密采用的是非对称加密,公证机构自己也会有一对公钥和私钥,公钥分发给各种客户端,公正机构用私钥对校验和进行加密,就得到了数字签名

之后的过程就是,客户端验证数字签名

  1. 客户端吧证书中的各个字段再计算一次校验和,得到 checksum1
  2. 客户端使用公证机构的公钥对数字签名进行解密,得到 checksum2(公钥加密只有对应的私钥才能解密,私钥加密,对应的公钥才能解密)
  3. 对比两次的校验和,如果相等就表明得到的证书和服务器发过来的是同一个证书,如果不相等就意味着证书上的内容被篡改过了,就会弹出警告的信息

那么客户端怎么确定拿到的公钥是公证机构的而不是黑客篡改过的?

客户端拿到公证机构的公钥主要通过操作系统或浏览器内置的方式获得,并不是通过网络传输获得的

一般情况下黑客获得不了公证机构的私钥,如果说黑客自己去生成一个私钥,客户端的公证机构的公钥也解密不了,所以通过引入证书机制就使得传输过程更加的安全了


Fiddler 等抓包工具为什么可以解析 HTTPS 加密的数据?

抓包工具也会提供一个证书,客户端同意信任之后就能够拿到客户端的对称密钥,大概是下面的过程:

当服务器发送的证书被 Fiddler 抓到之后,就会篡改证书中的内容,变成自己的证书,然后把整数中服务器的公钥替换成自己的公钥,根据新生成的证书重新计算得到校验和,并且使用自己的私钥来加密,得到数字签名,由于已经信任了 Fiddler 的证书,也就拿到了 Fiddler 的公钥 ,之后也是使用这个公钥进行加密和对称密钥的加密

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubernetes get pods的STATUS字段显示ImagePullBackOff 的解决办法

问题: [rootmaster ingress]# kubectl -n ingress-nginx get pods NAME READY STATUS RESTARTS AGE ingress-nginx-admission-create-mcrc6 0/1 ImagePullBackOff 0 37m ingress-…

掌握RocketMQ——基本概念和系统架构

简述RcoketMQ 概念:RocketMQ是一个开源的分布式消息中间件,由阿里巴巴开发并贡献给Apache软件基金会。它用于处理高吞吐量、低延迟的消息传递,并广泛应用于现代分布式系统中。 1 基本概念 1.1 消息 (Message) 概念:消息是信息传…

自定义协议以及序列化和反序列化

我们知道TCP是全双工的,可以同时进行发收,因为他有一个发送缓冲区和一个接收缓冲区 我们使用write其实是把数据拷贝到发送缓冲区,使用read接收缓冲区的数据,其实是把数据拷贝到文件缓冲区里,发送的过程中,我…

脸书(Facebook)高效开发国外客户的6个技巧

Facebook作为全球使用人数最多的社媒平台,全球三分之一的人都在用。做外贸的话基本上是必须要去掌握的一个平台,因为通过Facebook是可以开发到很多其他渠道平时开发不到的优质客户的。 Facebook跟LinkedIn不同,LinkedIn比较偏向于大B的客户&…

传热学一些“数”和意义

物体单位面积上的导热热阻/单位表面积上的对流换热热阻 无量纲时间 Nu与Bi的表达式相同,但是意义是无量纲的h。它们表达式里的长度取值不同,比如同样一个平板,Bi的L是厚度,Nu是长度,因为Bi面向固体,λ为固…

八种基本服务器类型,看这篇完全够了

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 上午好,我的网工朋友。 服务器作为网络基础设施的核心组件,其重要性不言而喻。 无论是个人空间还是大型企业的数据中心&…

激波是什么?

你肯定能听懂。激波,激烈的波,代表特征:激波扫过你时,重则五脏震动,支离破碎。轻则耳膜震动,隆隆作响,当然也有相对你而言尺度很小的激波,没啥伤害。 所以激波,和相对于…

【VScode】VScode如何离线安装扩展

VScode如何离线安装扩展 一,简介二,操作步骤2.1 扩展下载2.2 扩展安装 三,总结 一,简介 本文以“C/C Extension Pack”扩展为例,介绍如何在没有网络的环境下给VScode安装扩展,供参考。 二,操作…

gradle.properties的注释乱码的解决方案

问题描述: gradle项目的配置脚本的注解出现乱码:(#?????) gradle.properties #??? PRODSERVER2193.168.0.22 解决方案:(3步) 增…

OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3568移植案例(上)

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 持续更新中…… 本文章是基于瑞芯微RK3568芯片的DAYU200开发板,进行标准…

解决AWS Organizatiion邀请多个Linker账号数量限额问题

文章目录 情景再现什么是 AWS Organizations?操作步骤完整支持工单截图参考链接 情景再现 冷知识:默认情况下,一个组织中允许的原定设置最大账户数为10个。新创建的账户和组织的限额可能会低于默认的 10 个账户。 现在需要用一个AWS账号&…

小红书推广的7个数字营销策略分享-华媒舍

数字营销在如今的商业环境中变得越来越重要。在众多数字营销策略中,小红书已经成为了一种受欢迎的推广平台。本文将介绍小红书推广的七个数字营销策略,重点聚焦于第四个策略,该策略能够帮助你超额完成销售目标。 数字营销策略一:明…

JAVA:Fastjson 序列化和反序列化的技术指南

请关注微信公众号:拾荒的小海螺 博客地址:http://lsk-ww.cn/ 1、简述 在 Java 领域,JSON 作为轻量级数据交换格式广泛使用。对于高性能、高并发场景,选择一个高效的 JSON 序列化和反序列化库非常重要。Fastjson 是由阿里巴巴开发…

成长之路:我的技术布道之路回顾

成长之路:从零开始的技术布道之路回顾-哔哩哔哩 大家好,我是许泽宇,今天想跟大家分享一下我在过去一年的成长和收获。这一年对我来说是满满的一年,我在技术布道的道路上取得了一些小小的成绩,也收获了很多宝贵的经验。…

精选四款免费电脑录屏软件,轻松搞定屏幕录制

大家好,我是一个喜欢找各种办公软件的人,今天我要来聊聊咱们日常工作中一个超实用的小工具——电脑录屏软件。作为一个天天和电脑打交道的办公室文员,我算是尝遍了市面上几款热门的录屏神器,它们各有各的绝活,让我在工…

unix系统中的system函数

一、前言 本文将介绍unix系统中的system函数,包括system函数的作用以及使用方法。 二、system函数 简单来说,system函数用于创建一个子进程并让子进程运行新的程序。其原理是依次执行如下操作: fork() --> execl() --> waitpid() 函…

在QT中将Widget提升为自定义的Widget后,无法设置Widget的背景颜色问题解决方法

一、问题 在Qt中将QWidget组件提升为自定义的QWidget后,Widget设置的样式失效,例如设置背景颜色为白色失效。 二、解决方法 将已经提升的QWidget实例对象,脱离父窗体的样式,然后再重新设置自己的样式。

AP8505固定5V输出5V0.2A,SOP7/DIP7非隔离开关电源IC

AP8505基于高压同步整流架构,集成PFM控制器以及500V高可靠性MOSFET,用于外部元器件极精简的小功率非隔离开关电源。AP8505无线门铃芯片内置500V高压启动,实现系统快速启动、超低待机功能。5V非隔离无线门铃芯片AP8505提供了完整的智能化保护功…

基于Python的爬虫设计与数据分析—计算机毕业设计源码37836

目 录 摘要 1 绪论 1.1课题背景 1.2研究目的及意义 1.3爬虫技术 1.4django框架介绍 2 1.5论文结构与章节安排 3 2 基于Python的爬虫设计与数据分析分析 4 2.1 可行性分析 4 2.2 系统流程分析 4 2.2.1数据流程 5 2.2.2业务流程 5 2.3 系统功能分析 5 2.3.1 功能性分析 6 2…

线性代数入门:打开数学的另一扇门

线性代数入门:打开数学的另一扇门 线性代数,作为数学的一个重要分支,它不仅是许多科学和工程领域的核心工具,也是理解现代科技的关键。这篇文章将带你走进线性代数的世界,为你揭开这门学科的神秘面纱。 什么是线性代…