当前位置: 首页 > news >正文

【探索Linux】P.34(HTTPS协议)

在这里插入图片描述

阅读导航

  • 引言
  • 一、HTTPS是什么
    • 1. 什么是"加密"
    • 2. 为什么要加密
    • 3. 常见的加密方式
      • (1)对称加密
      • (2)非对称加密
  • 二、证书认证
    • 1. CA认证
  • 三、HTTPS的加密底层原理
    • ✅非对称加密+对称加密+证书认证
  • 温馨提示

引言

在上一篇文章中,我们深入探讨了HTTP协议的工作原理及其在网络通信中的重要性。HTTP作为互联网上应用最广泛的协议之一,为信息的传输提供了基础架构。然而,随着网络安全问题的日益突出,我们认识到了在数据传输过程中保护用户隐私和数据完整性的必要性。今天,我们将延续这一话题,进一步介绍HTTPS协议——HTTP的安全版本,它通过加密技术确保了数据传输的安全性。

一、HTTPS是什么

HTTPS(超文本传输安全协议)是一种用于安全通信的网络协议,它是HTTP协议的安全版本。HTTPS通过在HTTP下层使用SSL/TLS(安全套接层/传输层安全)协议来加密数据传输确保数据在客户端和服务器之间传输过程中的安全性和完整性。使用HTTPS可以防止数据在传输过程中被窃听、篡改或伪造

1. 什么是"加密"

加密是一种将原始数据(明文)转换成难以理解的形式(密文)的过程,以防止未授权的访问或篡改。这个过程通常涉及到使用一个密钥,这个密钥只有发送方和接收方知道。加密技术广泛应用于保护数据的安全性和隐私。

2. 为什么要加密

当我们通过互联网传输数据时,数据包会经过包括路由器和交换机在内的多个网络设备,这些设备可能属于运营商。由于HTTP协议的明文传输特性,这些设备理论上能够解析并查看数据包的内容,甚至可能对数据进行篡改。

例如,当用户点击一个网页上的“下载按钮”,实际上是在向服务器发起一个HTTP请求。正常情况下,服务器会响应这个请求,并返回包含应用程序下载链接的HTTP响应。但是,如果运营商或其他第三方进行了所谓的“劫持”,他们可能会识别出这个请求是用于下载特定的应用程序。

这种行为被称为“流量劫持”,是一种网络安全问题,它不仅侵犯了用户的隐私,还可能引导用户下载并安装恶意软件或其他不期望的应用程序。为了防止这种情况,使用HTTPS等加密协议变得至关重要,因为它们能够保护数据传输过程中的安全性,防止数据被轻易地截获和篡改。同时,作为用户的我们也应该提高警惕,注意检查下载链接的来源和安全性。

3. 常见的加密方式

(1)对称加密

对称加密是一种单密钥加密方法,使用同一个密钥进行信息的加密和解密。这种加密方式的特点是:

  • 加密和解密使用的密钥相同
  • 算法公开,计算量小,加密速度快,效率高

常见的对称加密算法包括:

  • DES(数据加密标准)
  • 3DES(三重数据加密标准)
  • AES(高级加密标准)
  • TDEA(三重数据加密算法)
  • Blowfish
  • RC2

对称加密的基本原理是,通过同一个“密钥”,将明文加密成密文,并且也能将密文解密回明文。例如,一个简单的对称加密操作可以通过按位异或(XOR)来实现

(2)非对称加密

非对称加密需要两个密钥来进行加密和解密,分别是:

  • 公钥(Public Key):公开的密钥。
  • 私钥(Private Key):保密的密钥。

这种加密方式的特点是:

  • 算法强度复杂,安全性依赖于算法和密钥的长度
  • 加密解密速度相对较慢,不如对称加密快速

常见的非对称加密算法包括:

  • RSA
  • DSA(数字签名算法)
  • ECDSA(椭圆曲线数字签名算法)

非对称加密的基本原理是,使用公钥对明文进行加密,生成密文;使用私钥对密文进行解密,恢复明文。这个过程也可以反过来进行,即用私钥加密,用公钥解密

公钥和私钥是配对使用的,它们共同构成了非对称加密系统的核心。非对称加密的一个主要缺点是运算速度较慢,特别是与对称加密相比。

二、证书认证

服务端在使⽤HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信
息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端
公钥的权威性

1. CA认证

CA认证,即证书认证(Certificate Authority),是网络安全中用于验证网络实体身份的一种机制。CA是一个受信任的第三方机构,负责发放和管理数字证书。数字证书是一种包含公钥、身份信息和CA签名的电子文档,用于确保网络通信的安全性和数据的完整性。

CA认证的基本原理如下:

  1. 证书签发:CA为每个使用公开密钥的用户发放一个数字证书,证明用户合法拥有证书中列出的公开密钥。
  2. 证书内容:证书通常包含电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等。
  3. 证书验证:用户可以通过验证CA的签名来确认证书的有效性。CA的数字签名确保了证书不能被伪造或篡改。
  4. 信任链:客户端内置了受信任的CA根证书,这些根证书是信任链的起始点。通过这些根证书,客户端可以验证服务器证书的合法性。
  5. 证书申请:用户向CA提出申请,CA在核实用户身份后,会为用户分配一个公钥,并将其与用户的身份信息绑定,然后签发证书。
  6. 证书格式:证书的格式和验证方法普遍遵循X.509国际标准。
  7. 加密与解密:CA认证涉及到加密和解密过程,其中加密是将信息转换成不可直接阅读的形式,解密则是将密文转换回明文。

CA认证确保了用户之间在网上传递信息的安全性、真实性、可靠性、完整性和不可抵赖性,是安全电子交易的核心环节。通过CA认证,可以建立一个可信赖的网络安全环境。

三、HTTPS的加密底层原理

✅非对称加密+对称加密+证书认证

在这里插入图片描述
当客户端和服务器初次建立连接时,服务器会向客户端发送一个包含服务器公钥和网站身份信息的证书。以下是对证书认证过程的重新组织描述:

  1. 证书接收:客户端在与服务器建立连接时,首先接收服务器返回的证书。

  2. 证书校验:客户端需要对收到的证书进行验证,以确保证书的真实性和安全性。验证过程包括:

    • 有效期检查:确认证书是否仍在有效期内,防止使用过期证书。
    • 信任机构验证:确认证书的签发机构是否为操作系统中已内置的受信任的CA(证书授权中心)。
    • 篡改检测:使用以下步骤验证证书是否被篡改:
      • 从系统中获取证书签发机构的公钥。
      • 使用该公钥对证书上的数字签名进行解密,得到一个hash值,称为数据摘要(记为hash1)。
      • 同时,客户端计算整个证书的内容的hash值,称为hash2。
      • 比较hash1和hash2是否相等。如果两者相等,则表明证书未被篡改,是安全的。
  3. 证书信任:如果证书通过了上述校验,客户端将信任该证书,并继续进行后续的通信过程。

通过这一过程,客户端能够确保与服务器的通信是基于一个安全和可信的基础上进行的,从而保护数据传输的安全和完整性。

温馨提示

感谢您对博主文章的关注与支持!如果您喜欢这篇文章,可以点赞、评论和分享给您的同学,这将对我提供巨大的鼓励和支持。另外,我计划在未来的更新中持续探讨与本文相关的内容。我会为您带来更多关于Linux以及C++编程技术问题的深入解析、应用案例和趣味玩法等。如果感兴趣的话可以关注博主的更新,不要错过任何精彩内容!

再次感谢您的支持和关注。我们期待与您建立更紧密的互动,共同探索Linux、C++、算法和编程的奥秘。祝您生活愉快,排便顺畅!

相关文章:

【探索Linux】P.34(HTTPS协议)

阅读导航 引言一、HTTPS是什么1. 什么是"加密"2. 为什么要加密3. 常见的加密方式(1)对称加密(2)非对称加密 二、证书认证1. CA认证 三、HTTPS的加密底层原理✅非对称加密对称加密证书认证 温馨提示 引言 在上一篇文章中…...

Python 踩坑记 -- 调优

前言 继续解决问题 慢 一个服务运行有点慢,当然 Python 本身不快,如果再编码不当那这个可能就是量级上的劣化。 整个 Code 主线逻辑 1700,各依赖封装 3000,主线逻辑也是很久远的痕迹,长函数都很难看清楚一个 if els…...

英特尔澄清:Core i9处理器崩溃问题根本原因仍在调查,eTVB非主因

英特尔否认了有关已找到导致Core i9崩溃问题根本原因的报道,强调调查仍在继续。此前,德国媒体Igors Lab曾报道,英特尔已经发现了影响第13代猛禽湖(Raptor Lake)和第14代猛禽湖Refresh Core i9处理器稳定性的根源问题&a…...

python实战根据excel的文件名称这一列的内容,找到电脑D盘的下所对应的文件位置,要求用程序实现

今天客户需要 根据excel的文件名称这一列的内容,找到电脑D盘的下所对应的文件位置,要求用程序实现 数据样例:记录.xlsx 解决代码: 1、安装必要的库: pip install pandas openpyxl2、编写Python脚本: im…...

LVS ipvsadm命令的使用(二)

目录 上篇:负载均衡集群(一)-CSDN博客 命令参数概述 调度算法 基本命令 1. 添加虚拟服务器 2. 添加真实服务器 3. 删除虚拟服务器 4. 删除真实服务器 5. 列出当前配置 6. 修改服务器权重 7.保存规则 8. 清除所有配置 进行增加虚拟…...

Java面向对象-接口

Java面向对象-接口 一、JDK1.8之前二、接口的作用三、JDK1.8之后,新增非抽象方法四、静态方法 一、JDK1.8之前 1、类是类,接口是接口,它们是同一层次的概念 2、接口中没有构造器 3、接口如何声明:interface 4、在jdk1.8之前&…...

怎么不使用springboot Helper或Spring Initializr来创建spring项目

1. 创建项目目录结构 首先,创建项目的基本目录结构。一个典型的 Maven 项目结构如下: my-spring-project ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── example │ │ │ └…...

STM32CubeMX配置-RTC周期唤醒

一、简介 MCU为STM32G070,采用内部时钟32KHZ,配置为周期6s唤醒,调用回调函数,进行喂狗操作。 二、配置 初始时间、日期、周期唤醒时间配置。 开启周期唤醒中断 三、生成代码 调用回调函数,进行喂狗操作。 //RTC唤醒回…...

js如何添加新元素到数组中

1.push方法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。这是向数组添加元素的最常用方法。 let arr [1, 2, 3]; arr.push(4); // 向数组末尾添加元素4 console.log(arr); // 输出: [1, 2, 3, 4] 2.unshift方法 unshift() 方法可向数组的…...

Python变量和基本数据类型

变量和基本数据类型 变量是什么? 变量是存储在内存中的值,这就意味着在创建变量时会在内存中开辟一个空间。 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同…...

嵌入式数据库_1.嵌入式数据库的定义及特点和分类

1.嵌入式数据库的定义及特点 1.1定义 嵌入式数据库的名称来自其独特的运行模式。这种数据库嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销。嵌入式数据库实际上是轻量级的,在运行时,它们需要较少的内存。它们是使用精…...

新人学习笔记之(变量)

一、什么是变量 1.变量是存储数据的小盒子,不是里面的数据 2.经常发生改变的数据 二、变量的定义格式 1.数据类型 变量名; 数据类型:为盒子中存储的数据,加入类型【限制】 变量名:为盒子起的名字 分号:语句的结束 三…...

Windows修改CMD窗口编码为UTF-8

windows下的cmd的默认编码是GBK编码,有时可能造成乱码问题,下面是我找到的两种更换编码方式为UTF-8的方法。 1、临时修改 (1)先进入cmd命令窗口(快捷键win键R) (2)直接输入“chcp…...

os实训课程模拟考试(1~7)

操作系统的基本功能和设计目标 1、 操作系统是一组 ____(单选) A、 文件管理程序 B、 资源管理程序 C、 中断处理程序 D、 设备管理程序 2、 以下哪项不是操作系统关心的主要问题?(单选) A、 管理计算机裸机 B、 设计…...

yolov10 学习笔记

目录 推理代码,source可以是文件名,路径, 预测可视化: 预测可视化加nms 训练自己的数据集, 训练一段时间报错:dill库 解决方法: 推理代码,source可以是文件名,路径…...

NAT概述

NAT概念 NAT(Network Address Translation,网络地址转换)是一种用于修改网络地址信息的技术,主要用于在路由器或防火墙上进行地址转换,以解决 IPv4 地址短缺问题、提高网络安全性以及实现私有网络与公有网络之间的通信…...

Ansys Mechanical|学习方法

Ansys Mechanical是Ansys的旗舰产品之一,涉及的学科体系全面丰富,包括的力学分支主要有理论力学,振动理论,连续介质力学,固态力学,物理力学,爆炸力学及应用力学等。 在自媒体及数字经济飞速发展…...

热门开源项目ChatTTS: 国内语音技术突破,实现弯道超车

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...

环形链表2证明

解法 快慢指针相遇后,其中一个指回头部,然后同步前进 代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:ListNod…...

fetch_lfw_people()报错urllib.error.HTTPError: HTTP Error 403: Forbidden的解决方案

零、实验报告地址 计算机视觉实验二:基于支持向量机和随机森林的分类(Part one: 编程实现基于支持向量机的人脸识别分类 )-CSDN博客 一、代码报错 fetch_lfw_people()报错urllib.error.HTTPError: HTTP Error 403: Forbidden 二、报错原因 通常是由于访问权限不足导致的…...

Verilog-Behavior Level 和 RTL Level 和 GATE Level的区别

硬件设计中对硬件的描述可以具有不同的抽象级别,以Verilog为例: Behavior Level。描述的是硬件的行为,当我们在看到如下关键字时就是行为级别的代码:#,wait,while,force,release等&…...

华为OD机考题HJ1 字符串最后一个单词的长度

前言 描述 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾) 输入描述: 输入一行,代表要计算的字符串,非空,长度小…...

C语言---------深入理解指针

目录 一、字符指针 二、指针数组: 三、数组指针: 1、定义: 2、&数组名和数组名区别: 3、数组指针的使用: 四、数组参数,指针参数: 1、一维数组传参: 2、二维数组传参&am…...

C++ 算法教程

归并排序 #include<iostream> using namespace std; template <class T> void Merge(T data[],int start,int mid,int end) {int len1 mid - start 1, len2 end - mid;int i, j, k;T* left new int[len1];T* right new int[len2];for (i 0; i < len1; i)…...

【支持向量机】问题梳理

学完支持向量机后我有些地方不太清楚&#xff0c;故做如下梳理&#xff1a; 1.为什么支持向量机模型认为一个点划分正确的标志是y(wxb)>1呢&#xff0c;为什么不是y(wxb)>0&#xff0c;比如y为1&#xff0c;wxb为0.5&#xff0c;大于0&#xff0c;则预测正确。 2.所以意思…...

车载网络安全指南 网络安全框架(二)

返回总目录->返回总目录<- 目录 一、概述 二、网络安全组织管理 三、网络安全活动 四、支撑保障 一、概述 汽车电子系统网络安全活动框架包含汽车电子系统网络安全活动、组织管理以及支持保障。其中,网络安全管理活动是框架的核心,主要指汽车电子系统生命周期各阶段…...

元数据、数据元、数据字典、数据模型及元模型的区别详解

在数据管理和分析领域&#xff0c;有许多相似的概念&#xff0c;如元数据、数据元、数据字典、数据模型和元模型。这些概念的定义和应用往往容易混淆。 数据元 数据元是通过一系列属性描述的数据单元&#xff0c;包括定义、标识、表示以及允许值等。这些属性帮助我们理解和使用…...

【百度智能体】零代码创建职场高情商话术助手智能体

一、前言 作为一个程序猿&#xff0c;工科男思维&#xff0c;走上职场后&#xff0c;总会觉得自己不会处理人际关系&#xff0c;容易背锅说错话&#xff0c;这时候如果有个助手能够时时刻刻提醒自己该如何说话如何做事情就好了。 而我们现在可以通过百度文心智能体平台构建各…...

实战项目: 负载均衡

0. 前言 这个项目使用了前后端,实现一个丐版的LeetCode刷题网站,并根据每台主机的实际情况,选择对应的主机,负载均衡的调度 0.1 所用技术与开发环境 所用技术: C STL 标准库 Boost 准标准库 ( 字符串切割 ) cpp- httplib 第三方开源网络库 ctemplate 第三方开源前端网…...

运维监控系统

做监控系统集成&#xff0c;持续更新ing 1.Prometheus k8s安装prometheusdocker部署prometheusthanos实现prometheus高可用部署 2.Grafana docker安装grafanagrafana的admin密码忘记了grafana使用mysql远程存储 3.Alertmanager 4.Consul 5.夜莺系统 6.时序数据库 6.1 …...

潍坊网站推广/灰色关键词排名代做

【返回目录】 我相信大家小时候都玩过积木&#xff0c;回忆一下&#xff0c;我们玩过的积木大致分两种&#xff1a;一种是各种形状的木块&#xff0c;我们只要根据自己的想象往上搭就可以搭建出各式各样的小房子、小汽车&#xff1b;而另一种是后来才出现的塑料积木&#xff0c…...

网站文章正文可以做内链吗/专业优化网站排名

这篇文章主要为大家详细介绍了[转载]Discuz x3.2前台GET型SQL注入裂痕&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。前台非盲注&#xff0c;只需要共同一个xss&#xff0c;就能消除鸡肋了。信pandas&#xff0c…...

凡科轻站/外贸网站推广费用

Python Web&#xff08;1&#xff09;&#xff1a;建立第一个Web项目 海天一树X关注 2018.09.03 12:07:42字数 361阅读 12,934 一、 安装PyCharm专业版 注意不要安装社区版&#xff0c;因为社区版没有集成Django框架&#xff0c;得自己安装配置&#xff0c;过程比较繁琐 二、…...

wordpress5.0.2/友联互换

ONVIF开发经验总结 ONVIF开发经验总结....................................................................................................... 1 一、 利用gsoap2.8.14生成Onvif相关源代码................................................................ 2 1. 生…...

学校网站系统破解版/推广app用什么平台比较好

作者 | kbsc13来源 | 机器学习与计算机视觉&#xff08;ID&#xff1a;AI_Developer&#xff09;上周结束了如何构造一个机器学习项目的系列文章&#xff0c;当然还有一篇简单的总结以及介绍一些入门的学习资料&#xff0c;不过还在整理&#xff0c;应该这周内会整理好的。现在…...

vi设计案例ppt/网络推广优化培训

第一部分 Javascript弹出子窗口 可以通过多种方式实现&#xff0c;下面介绍几种方法 (1) 通过window对象的open()方法&#xff0c;open()方法将会产生一个新的window窗口对象 window.open(URL,windowName,parameters); 也可以这样写&#xff1a; var newWindow open(,_blank)…...