结合网络安全原理理解HTTPS

news2025/7/19 10:13:38

引言

面试中 HTTPS 应该是老生常谈了,下面我将结合计算机网络安全原理基础知识带着大家一起学习 HTTPS

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉【入门&进阶全套282G学习资源包免费分享!】

现代密码系统

在聊 HTTPS 之前我们先补充一些网络安全原理中密码学的基础知识,学什么东西基础很重要吧

概述

现代密码系统通常可以划分为对称密钥密码系统和公开密钥密码系统两类。

1.对称密码系统,加密密钥和解密密钥完全相同,这种密码系统也称为单钥密码系统或者秘密密钥系统。简单的说用这种系统加密的明文,他们加密和解密的方法是一样的。
2.公开密钥密码系统中,加密密钥和解密密钥形成一个密钥对,两个密钥互不相同,从其中一个密钥难以推导出另外一个密钥。公开密钥面系统也被称为非对称密钥密码系统或者双钥密码系统。简单的说用公开密钥密码系统加密的明文,它的加密用的是一种方法,解密用的是另一种方法,当然这两钟方法存在着某种联系,让他们可以互相解密对方加密的东西。

两者的优缺点

1,对称密钥密码算法处理迅速,但是需要共享密钥,这往往需要耗费巨大的代价
2.公开密钥无需共享密钥,但是算法处理速度慢

在 HTTPS 中的应用

  • HTTPS 采用共享密钥加密和公开密钥加密两者并用的混合加密机制。因为我们即希望它们的密钥能够安全交换,又能解决处理速度慢的问题
  • 所以 HTTPS 在交换密钥环节使用公开密钥加密方式,之后的建立通信交换报文则使用共享密钥加密方式(对称密钥系统)
  • 这样就解决了共享密钥加密方式,共享过程中密钥泄露问题,又能发挥出共享密钥加密的速度优势

数字证书

  • 公开密钥加密方式有一个问题就是无法证明公开密钥本身就是货真价实的公开密钥,它很有可能是第三方伪造的,这个时候它就需要有一个身份的标识,这就是数字证书的作用
  • 那么去哪里获取数字证书呢?得有一个颁发机构吧 ==> CA 机构
  • 怎么确保这个证书就是CA机构颁发,是我们可信任的?CA 机构会用自己的私钥在证书上完成数字签名,用户通过它的公钥能成功解密就说明这个证书是它所颁发的,因为私钥是它独有的

散列函数

  • 散列函数是现代密码学的重要组成部分,它也被称为“哈希函数”
  • h = H(M),其中 h 表示散列码,H 表示散列函数,M 表示加密内容
  • 对 M 的任意修改都将使 M 的散列值发现变化,通过检查散列值我们就可以判定 M 是否被修改过,因此散列值也被称为“数字指纹”
  • HTTPS 中就是利用这一特性去保护传输内容的完整性

HTTPS

HTTPS 其实就是身披 SSL 外壳的 HTTP。

在这里插入图片描述
在采用 SSL 后,HTTP 就拥有了 HTTPS 加密、证书和完整性保护这些功能

过程解析

tips:在这里我不对它每一次握手过程去做很详细的解析,我就结合上面讲的内容描述一下它的要点,理解它的思想比起去记住它每一个步骤要重要得多

在这里插入图片描述

  • 从图中我们可以看到服务器会向通信的客户端发送一个CA证书,然后客户端会去验证这个证书的有效性,即可以确定此公钥可信任
  • 客户端生成一个随机数(预主密钥)并用对方的公钥进行加密,然后传输给对方;服务端会用自己的公钥去解密,即可得到这个随机数(预主密钥),这里就是利用了公钥密码系统的地方
  • 双方在利用最开始协商决定的加密组件,去生成第三个随机数就会话密钥(master secret),后面就用这个会话密钥进行通信了,这里就是利用了对称密钥的地方

tips:在以上流程中,应用层发送数据会附加一种叫MAC的报文摘要,它能够查知报文是否遭到篡改,从而保护报文的完整性。原理其实就是我们刚才提到的散列函数。

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉【入门&进阶全套282G学习资源包免费分享!】

网络安全工程师(白帽子)企业级学习路线

第一阶段:安全基础(入门)

在这里插入图片描述

第二阶段:Web渗透(初级网安工程师)

在这里插入图片描述

第三阶段:进阶部分(中级网络安全工程师)

在这里插入图片描述

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉【入门&进阶全套282G学习资源包免费分享!】

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

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

相关文章

【来点小剧场--项目测试报告】个人博客项目自动化测试

前述 针对个人博客项目进行测试,个人博客主要由七个页面构成:注册页、登录页、个人博客列表页、博客发布页、博客修改页、博客列表页、博客详情页,主要功能包括:注册、登录、编辑并发布博客、修改已发布的博客、查看详情、删除博…

操作系统有哪些特征?(并发,共享,虚拟,异步)

操作系统的特征 操作系统的目标和功能目标功能 操作系统的四个基本特征1并发 (Concurrence)相似概念:并行 2共享 (Sharing)并发和共享互为存在条件 3虚拟(Virtual)OS的虚拟技术1.时分复用技术 (TDM,Time Division Multiplexing)2.空分复用技术…

【算法练习Day22】 组合总和 III电话号码的字母组合

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 组合总和 III剪枝 电话号码…

【Linux】文件IO基础知识——下篇

目录 一,stderr 2. errno全局变量 二,文件系统 1. 软链接 2. 硬链接 三,静态库 1. 制作静态库 2. 自动化生成静态库 & 自动发布库与头文件 3. 如何使用第三方库 法(一):修改系统文件库 …

企业有了BI,为什么还需要以指标为核心的ABI平台?

#01 企业对BI期望越高 失望越大? — BI(Business Intelligence,商业智能)历经多年发展,已经被中国企业所熟知。 随着信息化的发展,企业越发希望决策有理有据,而不是拍脑袋就决定。这样产生的…

Godot 官方2D C#重构(1):

前言 Godot 官方 教程 Godot 2d 官方案例C#重构 专栏 Godot 2d 重构 github地址 实现效果 难点介绍 Godot GDScript和C# 对应关系大部分靠猜 文件导入 资源地址:默认为res://开头2D贴图导入类型:Texture2D public Texture2D Bullet_Image new Textu…

【Java基础面试十三】、面向对象的三大特征是什么?

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:面向对象的三大特征是什…

【Java基础面试十二】、说一说你对面向对象的理解

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官: 说一说你对面向对象的理…

微查系统,一站式查询,让您的查询更加便捷

微查系统是挖数据一款功能强大的查询系统,是一个集多种查询和核验工具于一身的综合性平台。它可以大大简化企业和个人的查询流程,节省时间和成本,提高查询的准确性和效率。本文将介绍微查系统的主要特点,功能和使用方法&#xff0…

CSS如何画出平行四边形

其实如果项目中有这样的画图 还是会用到的比如 看起来样子怪怪的 哈哈 但是确实可以完成一些需求哈哈哈 这个就要用到一个css3转换的一个 属性了 skew 让一个元素再平面上进行倾斜 div {width: 200px;height: 50px;background-color: #f00;transform: skew(20deg);margin: 100…

AI绘画提示词全攻略,让你所想即所画!(附12000+图片提示词库)

这可能是你从来没有见过的生产模式。 提示词又成为魔法、咒语,在AI时代,掌握了提示词,你可以在一分钟之内写一篇文章,做一首歌曲,生成一张精致的图片。 基础原理 大多数人用不好提示词的根本原因是他没有理解提示词…

Tips linux如何获取当前连接的ssh用户信息

linux ubuntu debian如何获取当前连接的ssh用户信息 这里需要用到一个常用的网络工具netstat,如果没有这个软件可以通过下边的命令安装: sudo apt-get install net-tools安装完成后通过下边的指令获取ssh所有连接用户: netstat -al|grep s…

主流压力测试工具推荐

在产品研发过程中,常常会混淆压力/负载/性能测试这三者之间的区别,这三种测试到底有什么不同呢? 压力测试(StressTesting),也称为强度测试,通过模拟实际应用的软硬件环境及用户使用过程的系统负…

emqx broker安装

emqx broker安装 Emq x百万级开源 MQTT 消息服务器 是基于 Erlang/OTP 语言平台开发 一款完全开源,高可用低时延的百万级分布式物联网 MQTT 5.0 消息服务器 官方地址: https://www.emqx.com/zh Centos7 安装 #下载Centos7 amd64位版本 wget https://www.emqx.c…

Android MediaCodec将h264实时视频流数据解码为yuv,并转换yuv的颜色格式为nv21

初始化mediacodec //宽高根据摄像头分辨率设置private int Width 1280;private int Height 720;private MediaCodec mediaCodec;private ByteBuffer[] inputBuffers;private void initMediaCodec(Surface surface) {try {Log.d(TAG, "onGetNetVideoData: ");//创建…

Bootstrap的进度条效果

在Bootstrap中,进度条一般由嵌套的两层结构标签构成,外层标签引入类progress,用来形成进度槽;内层标签引入类progress-bar,用来设计进度条。 目录 01-最基本的进度条效果02-为进度条添加文本03-设置进度条的高度04-设…

【c语言】编译链接--详解

文章目录 一.程序的翻译环境和运行环境二.翻译环境:预编译编译汇编链接(一)预编译(二)编译1)词法分析2)语法分析3)语义分析 (三)汇编(四)链接1.编…

FDTD Solutions笔记

FDTD Solutions笔记 目录使用流程实例 目录 使用流程 实例 材料条件 步骤 基底 2. 添加规则膜层 3. 添加仿真区 解释: 仿真区为(0,0),x方向为0.4,y方向是1 解释: 一般先用低精度进行计算 解释&#xff1a…

【汇编语言特别篇】DOSBox及常用汇编工具的详细安装教程

文章目录 📋前言一. ⛳️dosbox的介绍、下载和安装1.1 🔔dosbos简介1.2 🔔dosbox的下载1.2.1 👻方式一:官网下载(推荐)1.2.2 👻方式二:网盘安装包 1.3 🔔dosbox的安装1.4 &#x1f5…

Git GUI使用笔记

看这个视频 Git GUI基本使用_哔哩哔哩_bilibili 1 下载 Git-2.42.0.2-64Window64位安装包-最新版资源-CSDN文库 安装软件就一路next就可以 2 配置 空白处右键,选择Open Git Bash here ,输入下面两行配置信息 git config --global user.name "Y…