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

一文了解https为什么是安全的

目录

  • 前言
  • 一、https和http
  • 二、http为什么不安全?
    • 2.1 http的工作原理
    • 2.2 http的明文传输
  • 三、https
    • 3.1 加密
    • 3.2 身份验证
  • 四、总结


前言

目前绝大多数网站都已经切换到了https,切换的原因很简单,因为它更安全,https未来会完全取代http,本文从https与http的简介了了解http为什么不安全以及https为什么安全。

一、https和http

HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,是Web上数据交换的基础。HTTP是一个无状态的协议,即服务器不会在两个请求之间保留任何数据。它是建立在TCP/IP协议之上的。

HTTPS(Hypertext Transfer Protocol Secure)是HTTP的安全版本,通过在HTTP和TCP之间加入SSL/TLS协议来加密数据传输。HTTPS的加密机制可以确保数据在传输过程中不被窃取或篡改,因此更适合用于传输敏感信息,如个人信息、银行信息等。

总的来说,HTTP是一种用于传输超文本的协议,而HTTPS是对HTTP的加密和安全扩展。在网站安全性要求较高的情况下,通常会采用HTTPS协议来保护数据传输的安全。

二、http为什么不安全?

要了解http为什么不安全,首先要明白http的基础工作原理。

2.1 http的工作原理

在手机或电脑进行http请求的时候,实际上是浏览器或其他应用程序将一个http的请求报文发送到了服务器。
在这里插入图片描述

服务器收到这个请求报文之后,去处理,处理之后,返回一个响应报文。
在这里插入图片描述
但是这个请求是怎么到达对方服务器的呢?

在实际的网络中,我们的消息会经过很多的中间节点,比如我们的路由器、小区的网关等等,这些节点会以接力的形式帮我们一步步转发消息,一步步的让消息到达目标服务器。

在这里插入图片描述
最终服务器才接收到这个消息并进行处理。

那么中间的转发者又是怎么转发这些消息的呢?

如果它能够原封不动的发送到下一节点,那么一切都很顺利,但是如果它篡改了我们发送的消息呢,那不就坏事了!
其实不只是篡改,单纯的窃听也很有风险,比如我们在发送自己的账号密码到服务器上时,路上的每一个节点都能看到,这是不是很危险?而且不只是中间节点,网络中的其他节点也是可以对消息进行监听的。

所以网络从本质上就不可避免地会让别人看到我们发送和接受的信息。这个是http不安全的原因之一。但是总不能因为这个把整个网络结构改了吧?
这就涉及到http不安全的另一个原因:明文传输

2.2 http的明文传输

所谓明文传输就是将消息内容不做任何修饰加工就直接传输。与之对应的一个概念就是加密。

三、https

3.1 加密

https就是通过加密来让消息变得安全。https把http消息进行加密之后再传送,这样别人就算拿到之后也看不懂,这样就做到了安全!
具体来说,https是通过对称加密、非对称加密、哈希算法共同作用来在性能和安全性上达到一个平衡。
加密是会影响传输性能的,尤其是非对称加密,因为它的算法比较复杂。

3.2 身份验证

光是加密就确保安全了吗?https不仅对消息进行了加密,而且对通信对象进行了身份验证。

如果我要访问www.xxx.com,需要知道我的访问对象确定是目标xxx.com而不是被拦截了网络请求然后被转移到一个其他的地址,这种拦截在http里是可以做到的,你有没有在浏览器中输入想要的网站,但是页面加载过程中突然被转移到了一个其他冒红点的其他网站,这就是被拦截到其他地址去了。

在这里插入图片描述

但是https引入了证书机制,通过证书链可以对访问对象进行身份验证,能够保证你所访问的对象一定是你认为的那个对象。
在这里插入图片描述
在这里插入图片描述

不然浏览器就会警告提醒,而在代码开发中,会报异常。

在这里插入图片描述

那么直接在http上实现加密、证书机制不就得了嘛?为什么还要引出一个新的https呢?毕竟一个新的东西涉及到兼容性、大众接受度、换代周期等等。
事实上,https也的确是这么做的,
https并不是一种新的协议,它使用了一种TLS(Transport Layer Security)传输层安全性协议,这个安全提提供了数据加密的支持,让http消息运行在这个安全层上就达到了安全,而运行在这个安全层上面的http,就叫做https,htttp Security。

四、总结

看完上面内容,相信会对https和http有一个较深的理解了,但是加密过程中的对称加密、非对称加密、哈希算法,以及证书机制在这里并未深入讲到,不妨看这篇文章:彻底搞懂HTTPS的加密原理

相关文章:

一文了解https为什么是安全的

目录 前言一、https和http二、http为什么不安全?2.1 http的工作原理2.2 http的明文传输 三、https3.1 加密3.2 身份验证 四、总结 前言 目前绝大多数网站都已经切换到了https,切换的原因很简单,因为它更安全,https未来会完全取代…...

[‘column‘]和[:,‘column‘]的区别

之前,关于numpy和pandas的操作一直不熟悉,对于获取数据中的行,列一直混淆。 df[column] df[column]是 Pandas DataFrame 切片的常用语法,用于选择名为 column 的单个列。它返回一个 Pandas Series 对象。 df.loc[:,column] df[:,…...

icloud如何高效利用

iCloud是Apple提供的一项云存储和云计算服务,能够帮助用户在不同的Apple设备之间同步和共享数据。要高效利用iCloud,可以参考以下几个方面: 自动备份:确保所有重要的Apple设备都开启了iCloud备份功能,这样可以自动将设…...

k8s二进制安装与部署

目录 一、实验目的 二、实验环境 三、实验步骤 3.1 操作系统初始化配置 3.2 部署 docker引擎 3.3 部署 etcd 集群 3.3.1 在 master01 节点上操作 ​3.3.2 在 node01 节点上操作 3.3.3 在 node02 节点上操作 3.4 部署 Master 组件 3.4.1 在 mast…...

驱动编译报error: negative width in bit-field ‘<anonymous>’错误

错误如下图所示: 代码如下: 问题点:module_param的其他用户的权限参数上。 在Linux中,文件权限由读(r)、写(w)、执行(x)权限组成,分别对应数值4、2、1。 第一位0是占位符,在这里没有意义,因为…...

Go语言的命名规范是怎样的?

文章目录 Go语言的命名规范详解一、标识符命名规范示例代码 二、包名命名规范示例代码 三、变量命名规范示例代码 四、常量命名规范示例代码 五、函数命名规范示例代码 总结 Go语言的命名规范详解 在Go语言中,代码的命名规范对于项目的可读性、可维护性和可扩展性至…...

Vue3骨架屏(Skeleton)

效果如下图:在线预览 APIs 参数说明类型默认值必传animated是否展示动画效果booleantruefalsebutton是否使用按钮占位图boolean | SkeletonButtonPropsfalsefalseavatar是否显示头像占位图boolean | SkeletonAvatarPropsfalsefalseinput是否使用输入框占位图boolea…...

【文末附gpt升级方案】亚马逊与Hugging Face合作:定制芯片低成本运行AI模型的创新探索

亚马逊与Hugging Face合作:定制芯片低成本运行AI模型的创新探索 摘要 本文探讨了亚马逊云部门与人工智能初创公司Hugging Face的合作,旨在通过定制计算芯片Inferentia2在亚马逊网络服务(AWS)上更低成本地运行数千个AI模型。文章首…...

二叉树的链式实现

目录 一、二叉树的基础操作 二、二叉树代码图解 2.1 遍历 2.2 求大小 2.3 创建与销毁 2.4 与队列结合解决问题 三、二叉树C语言源码汇总 二叉树的代码实现运用了函数递归的思想,了解函数递归的知识请见博主的另一篇博客: http://t.csdnimg.cn/Po…...

STM32中断编程入门

文章目录 一、 理论部分1.中断系统2.中断执行流程3.NVIC的基本结构4.EXTI介绍5.AFIO复用IO口 二、实验目的:学习stm32中断原理和开发编程方法。使用标准完成以下任务:(一)实验一 开关控制LED的亮灭1.代码部分2.运行结果 &#xff…...

《我的阿勒泰》读后感

暂没时间写,记录在此,防止忘记,后面补上!!! 【经典语录】 01、如果天气好的话,阳光广阔地照耀着世界,暖洋洋又懒洋洋。这样的阳光下,似乎脚下的每一株草都和我一样,也把身子完全舒展开了。 02、…...

Android.mk简单介绍、规则与基本格式

文章目录 Android.mk与makefile区别Android.mk规则Android.mk基本格式 Android.mk与makefile区别 Android.mk 和 Makefile 都是用于构建代码项目的构建脚本文件,但是它们在特定上下文中有一些区别: Android.mk: Android.mk 是用于构建 Android 应用或库…...

【MySQL精通之路】InnoDB(3)-MVCC多版本管理

InnoDB是一个多版本(MVCC)的存储引擎。 它保留有关更改行的旧版本的信息,以支持事务性功能,如并发和回滚。 这些信息存储在称为回滚段的数据结构中的Undo表空间中。 参见“Undo表空间”。 InnoDB使用回滚段(rollback…...

uniapp 对接 微信App/支付宝App 支付

相关文档:uni.requestPayment(OBJECT) | uni-app官网 示例代码: import qs from qsasync aliPay(){const { provider } await uni.getProvider({ service:payment })if(provider.includes(alipay)){uni.request({url:后端接口地址,data:{ //传参 },suc…...

cmake配置opencv与boost库

Cmake配置外部依赖库(以Opencv和Boost为例) Cmake对于外部依赖库,需要知道外部库的头文件路径,库文件路径以及库的名字。比如,对于要使用的Boost库,需要知道头文件的位置,库目录的位置以及库依…...

【Kotlin 一】Kotlin入门知识简介、变量声明、数字类型

1. Kotlin简介 Kotlin旨在解决 Java语言在编码效率和代码质量上存在的问题,并且与Java语言完全兼容。Kotlin通过简化语法、提供更强大的函数以及减少样本代码的编写,使开发者能够更高效地编写代码。Kotlin适用于Android、Web后端开发等多种场景 2.Kotl…...

Java 微信小程序登录(openId方式)

1 需求 在开发微信小程序项目时,登录采用的是openId方式,这是一种用户无感的登录方式,用户点开微信小程序时,去调用后端的登录接口。 核心代码 Slf4j Component public class WeChatUtil {private static final String …...

为何程序员35岁就开始被嫌弃了?程序员该如何避免中年危机?

文章目录 一、为何程序员35岁就开始被嫌弃了?1、技术更新迅速2、职业发展瓶颈3、成本考虑4、年龄歧视5、市场供需变化6、个人因素 二、程序员该如何避免中年危机?1、持续学习与技能更新2、拓展技术广度与深度3、提升软技能4、关注行业趋势与市场变化5、建…...

【2024软考】史上最全!软考刷题+解析大合集(9万字全手工打,货真价实)

计算机基础知识 1.中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号(INTR)以后,由中断控制器(INTC)确定其中断号,并根据中断号查找中断向量表来取得其中断服务程序的入口地…...

【Spring Security + OAuth2】授权

Spring Security OAuth2 第一章 Spring Security 快速入门 第二章 Spring Security 自定义配置 第三章 Spring Security 前后端分离配置 第四章 Spring Security 身份认证 第五章 Spring Security 授权 第六章 OAuth2 文章目录 Spring Security OAuth21、基于request的授权1…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

ESP32读取DHT11温湿度数据

芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...