【探索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++、算法和编程的奥秘。祝您生活愉快,排便顺畅!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

@EqualsAndHashCode(callSuper = false和ture)的区别

EqualsAndHashCode(callSuper false和ture)的区别 区别 如果值是true,那么会比较父类的字段值,只有两个对象的父类字段也相同的时候,两个对象的比较结果才会是true;如果值是fasle,那么既便两个…

Weevil-Optimizer象鼻虫优化算法的matlab仿真实现

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 Weevil-Optimizer象鼻虫优化算法的matlab仿真实现,仿真输出算法的优化收敛曲线,对比不同的适应度函数。 2.测试软件版本以及运行结果展示…

SpringBoot实现的大文件上传

前言 大文件分片上传和断点续传是为了解决在网络传输过程中可能遇到的问题,以提高文件传输的效率和稳定性。 首先,大文件分片上传是将大文件分割成较小的片段进行上传。这样做的好处是可以减少单个文件的传输时间,因为较小的文件片段更容易快…

【秋招突围】2024届秋招笔试-小红书笔试题-第二套-三语言题解(Java/Cpp/Python)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系计划跟新各公司春秋招的笔试题 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📧 清隆这边…

高频小信号放大器的分类与质量指标

目录 分类 质量指标 增益 通频带 选择性 稳定性 噪声系数 分类 质量指标 增益 电压与功率的放大倍数。 通频带 放大效果比较好的频率范围。 选择性 放大目标信号以滤除其他信号的综合能力。 稳定性 噪声系数

chatglm4本地部署详解

下载地址 模型下载地址:GitHub - THUDM/GLM-4: GLM-4 series: Open Multilingual Multimodal Chat LMs | 开源多语言多模态对话模型 已经训练好的数据下载地址: https://huggingface.co/THUDM/glm-4-9b-chat-1m/tree/main 测试主机配置 cpu:E…

pdf转图片,pdf转图片在线转

pdf转图片的方法,对于许多人来说可能是一个稍显陌生的操作。然而,在日常生活和工作中,我们有时确实需要将pdf文件转换为图片格式,以便于在特定的场合或平台上进行分享、展示或编辑。以下,我们将详细介绍一个pdf转成图片…

【网络安全的神秘世界】AppScan安装及使用指南

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 https://www.hcl-software.com/appscan AppScan是一种综合型漏洞扫描工具,采用SaaS解决方案,它将所以测试功能整合到一个服务中&a…

Java基础——网络编程(一)

初识网络编程 网络编程:在网络通信协议下,不同计算机上运行的程序,进行的数据传输 应用场景:即时通信、网游对战、金融证券、国际贸易、邮件…… BS架构的优缺点: 1、不需要开发客户端,只需要页面服务端 2、…

Redis 键空间迭代 Scan

引言 在平时线上Redis维护工作中,有时候需要从Redis实例成千上万的key中找出特定前缀的key列表来手动处理数据,可能是修改他的值,也可能是删除key。 Redis提供了一个简单暴力的指令keys用来列出所有满足特定正则字符串规则的key。 127.0.0…

26.1 WEB框架介绍

1. Web应用程序 1.1 应用程序有两种模式 应用程序的架构模式主要分为两种: C/S (客户端/服务器端)和B/S(浏览器/服务器端). * 1. C/S模式, 即客户端/服务器模式(Client/Server Model): 是一种分布式计算模式.它将应用程序的功能划分为客户端和服务器端两部分.在这种模式下, 客…

几种经典排序算法

几种经典排序算法 插入排序折半插入排序法 选择排序冒泡排序希尔排序堆排序二路归并排序快速排序 在介绍排序之前,先来说说,研究不同的排序主要是要研究他们的哪些不同: 时间性能。即排序过程中元素之间的比较次数与元素移动次数。我们此次讨…

【最新鸿蒙应用开发】——鸿蒙中的“Slot插槽”?@BuilderParam

构建函数-BuilderParam 传递 UI 1. 引言 BuilderParam 该装饰器用于声明任意UI描述的一个元素,类似slot占位符。 简而言之:就是自定义组件允许外部传递 UI Entry Component struct Index {build() {Column({ space: 15 }) {SonCom() {// 直接传递进来…

IPv6 ND 协议功能概述

ND 协议功能概述 ND(Neighbor Discovery,邻居发现)协议是 IPv6 的一个关键协议,它综合了 IPv4 中的 ARP,ICMP 路由发现和 ICMP 重定向等协议,并对它们做了改进。 作为 IPv6 的基础性协议,ND 协…

ppt添加圆角矩形,并调整圆角弧度方法

一、背景 我们看的论文,许多好看的图都是用PPT做的,下面介绍用ppt添加圆角矩形,并调整圆角弧度方法。 二、ppt添加圆角矩形,并调整圆角弧度 添加矩形: 在顶部工具栏中,点击“插入”选项卡。 在“插图”…

冒泡排序知识点

排序的基本概念 排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录调整为“有序”的记录序列。 常用的排序例子 8 7 1 5 4 2 6 3 9 把上面的这个无序序列变为有序(升序或者降序)序列的过程。 1 2 3 4 5 6 7 8 9&#xff0…

Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求

测试表现层的代码如何测试 加载测试的专用属性 首先写一个测试 假定我们进行测试的时候要加一些属性 要去修改一些属性 我们可以写一个只在本测试有效的测试 写在配置里 测试 打印输出 我们把配置文件里面的配置注释掉后 我们同样可以启动 package com.example.demo;impo…

代码随想录——组合总和Ⅱ(Leetcode 40)需要回顾

题目链接 回溯 本题的难点在于:集合(数组candidates)有重复元素,但还不能有重复的组合。 思想:元素在同一个组合内是可以重复的,怎么重复都没事,但两个组合不能相同。所以要去重的是同一树…

购物车店铺列表查询流程

购物车店铺列表查询流程 购物车结算流程图

嵌入式门槛高不高,工资怎么样?

一般来说,嵌入式岗位的准入门槛其实并不是特别高。通常情况下,只要能够熟练掌握 C 语言编程以及单片机相关知识,就能够去制作一些较为简单的电子产品,由此可见其门槛相对而言是比较低的,相应的薪水可能也不会特别高。 …