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

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

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

相关文章

阿里云服务器-Linux搭建fastDFS文件服务器

阿里云官网购买服务器,一般会有降价活动,这两天就发现有活动,99计划活动(在活动期内,续费都是99元) 阿里云官网-云服务器ECS 在这里,我购买了这台服务器,活动期内续费每年99元&…

[FFmpeg学习]windows环境sdl播放音频试验

参考资料: FFmpeg和SDL2播放mp4_sdl 播放mp4 声音-CSDN博客 SimplePlayer/SimplePlayer.c at master David1840/SimplePlayer GitHub 在前面的学习中,通过获得的AVFrame进行了播放画面, [FFmpeg学习]初级的SDL播放mp4测试-CSDN博客 播放…

仲恺ZK——信计专业《软件体系结构》24年试卷回忆

以下是我在总结的复习内容,有需要可以参考借鉴一下。我的主页还有另外一篇复习总结《仲恺ZK——信计专业《软件体系结构》,两者结合起来复习,帮助你轻松过考试😊。总的来说,考试不会太难,只要你了解了各类设…

Dockerfile 自定义镜像

大家好 , 今天我要和大家分享一个现代软件开发中不可或缺的工具 - Docker . 在这个快速发展的技术时代 , 我们经常面临着应用部署的复杂性、环境差异以及不同操作系统之间的兼容性问题 . 这些问题不仅消耗大量时间 , 还可能导致项目延期和成本增加 . Docker 的出现解决了我们在…

MFC工控项目实例之三theApp变量传递对话框参数

承接专栏《MFC工控项目实例之二主菜单制作》 用theApp变量传递对话框参数实时改变iPlotX坐标轴最小值、最大值。 1、新建IDD_SYS_DATA对话框,类名SYS_DATA。 三个编辑框IDC_EDIT1、IDC_EDIT2、IDC_EDIT3变量如图 2、SEAL_PRESSURE.h中添加代码 #include "re…

【前端项目笔记】1 登录与登出功能实现

项目笔记 ☆☆代表面试常见题 前后端分离:后端负责写接口,前端负责调接口。 登录/退出功能 登录业务流程 登录页面:用户名密码 调用后台接口进行验证 通过验证,根据后台响应状态跳到项目主页 登录业务相关技术点&#xff1…

Python(三)---字符串

文章目录 前言1.创建字符串2.字符串的编码3.空字符串和len()函数4.转义字符5.从控制台读取字符串6.字符串的相关操作6.1.通过[]访问元素6.2.字符串切片slice操作6.3.字符串拼接和字符串复制6.4.split()分割和join()合并6.5.常用查找方法6.6.replace() 实现字符串替换6.7.去除首…

vulnhub靶机hacksudoLPE中Challenge-1

下载地址:https://download.vulnhub.com/hacksudo/hacksudoLPE.zip 主机发现 目标146 端口扫描 服务扫描 漏洞扫描 上面那整出来几个洞,可以试试 easy? 估计就是看源码 看来是的 登入咯 这里进不去就是ssh咯 这个看着有点像提权的操作 一…

远程桌面端口,远程桌面改端口有哪些方法

方法一:通过修改注册表 步骤一:打开注册表编辑器 按下 Windows键R 打开“运行”对话框。输入 regedit 并按 Enter 打开注册表编辑器。 步骤二:定位到远程桌面服务的端口设置 导航至第一个注册表路径:HKEY_LOCAL_MACHINE\SYSTE…

分类模型部署-ONNX

分类模型部署-ONNX 0 引入:1 模型部署实战测试:1 安装配置环境:2 Pytorch图像分类模型转ONNX-ImageNet1000类3 推理引擎ONNX Runtime部署-预测单张图像: 2 扩展阅读参考 0 引入: 在软件工程中,部署指把开发…

kubeadm快速部署K8S

目录 一、kubeadm安装K8S 1.1 环境准备 1.2 初始化配置 1.3 所有节点安装docker 1.3.1 安装依赖环境和docker 1.3.2 定义docker 配置文件 1.3.3 重启并开机自启docker 1.3.4 查看docker 是否配置成功 1.4 master、node01 、node02安装kubeadm,kubelet和kub…

2.线上论坛项目

一、项目介绍 线上论坛 相关技术:SpringBootSpringMvcMybatisMysqlSwagger项目简介:本项目是一个功能丰富的线上论坛,用户可编辑、发布、删除帖子,并评论、点赞。帖子按版块分类,方便查找。同时,用户可以…

图像处理:Python使用OpenCV进行图像锐化 (非锐化掩模、拉普拉斯滤波器)

文章目录 非锐化掩模 (Unsharp Masking)拉普拉斯滤波器 (Laplacian Filter)效果对比总结 在图像处理中,锐化操作用于增强图像的边缘和细节,使图像看起来更清晰。常见的图像锐化方法包括非锐化掩模(Unsharp Masking)和拉普拉斯滤波…

轻松实现H5页面下拉刷新:滑动触发、高度提示与数据刷新全攻略

前段时间在做小程序到H5的迁移,其中小程序中下拉刷新的功能引起了产品的注意。他说到,哎,我们迁移后的H5页面怎么没有下拉刷新,于是乎,我就急忙将这部分的内容给填上。 本来是计划使用成熟的组件库来实现,…

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

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

畅想智能美颜工具的未来:美颜SDK技术详解

美颜SDK作为技术的核心,承载了美颜工具的实现和创新。本篇文章,小编将深入探讨美颜SDK技术的细节。 一、技术原理 美颜SDK是一种软件开发工具包,集成了一系列图像处理算法和技术,旨在实现对照片和视频中人物的实时美化。其主要技…

逢3必过报数游戏-第13届蓝桥杯省赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第84讲。 逢3必过报数游戏&…

c++_0基础_讲解7 练习

这一讲我为大家准备了几道题目,大家试着独自做一下(可能来自不同网站) 整数大小比较 - 洛谷 题目描述 输入两个整数,比较它们的大小。若 x>yx>y ,输出 > ;若 xyxy ,输出 &#xff…

---异常---

我们在运行程序时总遇到各种与报错,数组越界,空指针的引用,这些在java中都称为异常 对于不同的错误都具有一个与他对应的异常类来秒描述 这是对于数组越界这个类里有的方法,这些是描述异常的 在java中有一个完整的描述异常的类的…

嵌入式数据库的一般架构

嵌入式数据库的架构与应用对象紧密相关,其架构是以内存、文件和网络等三种方式为主。 1.基于内存的数据库系统 基于内存的数据库系统中比较典型的产品是每个McObject公司的eXtremeDB嵌入式数据库,2013年3月推出5.0版,它采用内存数据结构&…