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

关于HTTPS

目录

什么是加密

对称加密

非对称加密

中间人攻击

引入证书


HTTPS是一个应用层的协议,是在HTTP协议的基础上引入了一个加密层.

HTTP协议内容都是按照文本的方式明文传输,这就导致在传输的过程中出现一些被篡改的情况.

运营商劫持事件

未被劫持的效果,点击下载按钮,就会弹出天天动听的下载链接.

天天动听被劫持的效果,点击下载按钮,就会弹出QQ浏览器的下载链接.

由于我们通过网络传输的任何数据包都会经过运营商的网络设备(路由器,交换机等),那么运营商的网络设备就可以解析出你传输的数据内容,并进行篡改.

点击下载按钮,起始就是在给服务器发送了一个HTTP请求,获取到的HTTP响应就包含了该App的下载链接,运营商劫持之后,就发现这个请求是要下载天天动听,那么就会自动的把交给用户的响应给篡改成QQ浏览器的下载地址了.

不止运营商可以劫持,其他的黑客也可以利用类似的手段来进行劫持,来窃取用户的隐私信息或者篡改内容.

所以,在互联网上,明文传输时比较危险的事情.

HTTPS就是在HTTP的基础上进行了加密,进一步的来保证用户的信息安全.


什么是加密

HTTPS=HTTP+加密层(SSL),SSL是用来加密的协议,也叫做TLS.

进行安全传输,核心就是加密.

加密就是把明文(要传输的信息)进行一系列的变换,生成密文.

解密就是把密文在进行一系列变换,还原成明文.

在这个加密和解密的过程中,往往需要一个或者多个中间的数据,辅助进行这个过程,这样的数据成为密钥.


对称加密

加密其中一种最简单有效的办法,叫做对称加密.

加密过程:明文+密钥=>密文;

解密过程:密文+密钥=>明文.

同一个密钥,既可以用来加密,也可以用来解密,这就是对称密钥.

对称加密安全性的前提是,密钥不能被黑客知道.

由于黑客不知道密钥是什么,即使黑客截获了加密的数据,也不知道数据是什么意思.

但事情并没有这么简单,服务器同一时刻是要给很多客户端提供服务的,这么多客户端,每个客户端的密钥必须是不同的(如果是相同的,黑客作为一个客户端就很容易把密钥获得),因此服务器就需要维护每个客户端和每个密钥之间的关联关系,这是个很麻烦的事情.

更理想的做法是在客户端和服务器建立连接的时候,双方协定确定这次的密钥是什么 .

但是如果直接把密钥进行明文传输,那么黑客也就能获得密钥了,此时后续的加密操作就形同虚设了.

因此密钥的传输必须加密传输.

但是此时如果还对密钥的传输采用对称加密的方式,就仍需要双方协定一个密钥的密钥,显然这是行不通的.

那么此时就需要引入非对称加密了.


非对称加密

非对称加密要用到两个密钥,一个叫做公钥,一个叫做私钥.

公钥和私钥是配对的,最大的缺点就是运算速度非常慢,比对称加密要慢很多.

通过公钥对明文加密,变成密文;通过私钥对密文解密,变成明文.也可以反着用.

客户端在本地生成对称密钥,通过公钥加密,发给服务器.

由于中间的网络设备没有私钥,即使截获了数据,也无法还原出内部的原文,也就无法获取到对称密钥.

服务器通过私钥解密,还原出客户端发送的对称密钥,并且使用这个对称密钥加密给客户端返回的响应数据.

后续客户端和服务器的通信都只用对称加密即可.由于该密钥只有客户端和服务器两个主机知道,其他设备不知道密钥即使截获数据也没有意义.

注意:由于对称加密的效率比非对称加密高很多,因此只有在开始阶段协商密钥的时候采用非对称加密,后续的传输仍然使用对称加密.

中间人攻击

有了上述过程之后,那么客户端如何获取到公钥呢?
如果采用简单询问的方式,就会出现中间人攻击的情况.

黑客在中间设备自己也生成一对非对称密钥,称为pub2和pri2.同时黑客自己存下pub1.黑客拿着自己的pri2进行解密,就拿到了对称密钥key,然后黑客继续使用服务器的pub1公钥,对key重新加密,继续传送给服务器.

这就导致对称密钥泄露了,此时黑客就可以拿着这个对称密钥对后续的数据进行篡改了.

引入证书

解决这个中间人攻击的关键,在于让客户端能够辨别当前的公钥响应是服务器真实的公钥.

引入证书就可以解决这个问题.

在客户端和服务器刚建立连接的时候,服务器就不单单给客户端返回公钥了,而是返回一个证书.

在这个证书里就包含了刚才的公钥,也包含了网站的身份信息.

这个证书就好比人的身份证,作为这个网站的身份标识,搭建一个HTTPS网站要在CA机构先申请一个证书(类似去公安局办身份证).

这个证书可以理解成是一个结构化的字符串,里面包含了证书发布机构,证书有效期,公钥,证书所有者,签名等信息.

当客户端获取到这个证书之后,会对证书进行校验(防止证书是伪造的).

如何校验?

  • 判定证书的有效期是否过期.
  • 判定证书的发布机构是否受信任(操作系统中已经内置了受信任的证书发布机构).
  • 验证证书是否被篡改:从系统中拿到该证书发布机构的公钥,对签名进行解密,得到一个hash值,称为数据摘要,设为hash1.然后计算整个证书的hash值,设为hash2.对比hash1和hash2是否是相等的.如果相等,则说明证书是没有被篡改过的.

证书可以在浏览器里查看

黑客能够篡改证书?

认证机构也有一组公钥私钥,私钥用来加密hash值得到签名了,公钥是客户端拥有的使用公钥解密签名获取hash值.

如果黑客替换了公钥,此时客户端计算的hash2和签名解密出来的hash1就对不上了,客户端就知道无效了.

另外黑客不知道认证机构的私钥,即使黑客自己计算好了新的篡改后的hash值,也无法加密生成签名!

相关文章:

关于HTTPS

目录 什么是加密 对称加密 非对称加密 中间人攻击 引入证书 HTTPS是一个应用层的协议,是在HTTP协议的基础上引入了一个加密层. HTTP协议内容都是按照文本的方式明文传输,这就导致在传输的过程中出现一些被篡改的情况. 运营商劫持事件 未被劫持的效果,点击下载按钮,就会…...

安全配置审计概念、应用场景、常用基线及扫描工具

软件安装完成后都会有默认的配置,但默认配置仅保证了服务正常运行,却很少考虑到安全防护问题,攻击者往往利用这些默认配置产生的脆弱点发起攻击。虽然安全人员已经意识到正确配置软件的重要性,但面对复杂的业务系统和网络结构、网…...

【计算机毕业设计】python+django数码电子论坛系统设计与实现

本系统主要包括管理员和用户两个角色组成;主要包括:首页、个人中心、用户管理、分类管理、数码板块管理、数码评价管理、数码论坛管理、畅聊板块管理、系统管理等功能的管理系统。 后端:pythondjango 前端:vue.jselementui 框架&a…...

最优化方法Python计算:无约束优化应用——神经网络回归模型

人类大脑有数百亿个相互连接的神经元(如下图(a)所示),这些神经元通过树突从其他神经元接收信息,在细胞体内综合、并变换信息,通过轴突上的突触向其他神经元传递信息。我们在博文《最优化方法Python计算:无约…...

Spring Data Redis对象缓存序列化问题

相信在项目中,你一定是经常使用 Redis ,那么,你是怎么使用的呢?在使用时,有没有遇到同我一样,对象缓存序列化问题的呢?那么,你又是如何解决的呢? Redis 使用示例 添加依…...

自动驾驶代客泊车AVP巡航规划详细设计

目 录 巡航规划详细设计... 1 修改记录... 2 目 录... 3 1 背景... 5 2 系统环境... 6 2.1 巡航规划与其它模块联系... 6 2.2 巡航规划接口说明... 6 3 规划模块设计... 9 3.1 巡航规划架构图... 9 3.2 预处理... 10 3.3 Planner. 10 3.3.1 Geometry planner. 10 …...

亚马逊云科技 re:Invent 2023 产品体验:亚马逊云科技产品应用实践 国赛选手带你看 Elasticache Serverless

抛砖引玉 讲一下作者背景,曾经参加过国内世界技能大赛云计算的选拔,那么在竞赛中包含两类,一类是架构类竞赛,另一类就是 TroubleShooting 竞赛,对应的分别为亚马逊云科技 GameDay 和亚马逊云科技 Jam,想必…...

Flink on K8S集群搭建及StreamPark平台安装

1.环境准备 1.1 介绍 在使用 Flink&Spark 时发现从编程模型, 启动配置到运维管理都有很多可以抽象共用的地方, 目前streampark提供了一个flink一站式的流处理作业开发管理平台, 从流处理作业开发到上线全生命周期都做了支持, 是一个一站式的流出来计算平台。 未来spark开…...

SpringBoot如何优雅的处理免登录接口

在项目开发过程中,会有很多API接口不需要登录就能直接访问,比如公开数据查询之类的 ~ 常规处理方法基本是 使用拦截器或过滤器,拦截需要认证的请求路径。在拦截器中判断session或token信息,如果存在则放行,否则跳转到…...

元旦档首日票房超4.69亿,“下雪场尴尬”上热搜!

哇塞,元旦假期终于来啦!🎉在这个喜庆的时刻,电影院也热闹非凡,据猫眼专业版数据显示,截至12月30日,2023年元旦档首日票房竟然超过了4.69亿!这简直是个天文数字啊!&#x…...

CentOS系统中设置IP地址的方式和存在的问题

在CentOS系统中设置IP地址通常涉及以下步骤: 打开网络接口配置文件: 使用文本编辑器(如vi、nano或emacs)打开 /etc/sysconfig/network-scripts/ifcfg-eth0 文件。这里的"eth0"是网卡的名称,如果你的系统中有…...

使用vmware,在ubuntu18.04中使用笔记本的摄像头

步骤1:在windows中检查相机状态 win10系统中,在左下的搜索栏,搜索“相机”,点击进入即可打开相机,并正常显示图像。 注意:如果相机连接到了虚拟机,则不能显示正常。 步骤2:在ubuntu…...

中间件系列 - Redis入门到实战(高级篇-分布式缓存)

前言 学习视频: 黑马程序员Redis入门到实战教程,深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 中间件系列 - Redis入门到实战 本内容仅用于个人学习笔记,如有侵扰,联系删除 学习目标 Redis持久化Redis主从…...

使用Visual Studio调试VisionPro脚本

使用Visual Studio调试VisionPro脚本 方法一 : 修改项目文件 csproj步骤: 方法二 : Visual Studio附加功能步骤: 方法一 : 修改项目文件 csproj 步骤: 开启VisionPro脚本调试功能 创建一个VisionPro程序…...

Ubuntu安装K8S的dashboard(管理页面)

原文网址:Ubuntu安装k8s的dashboard(管理页面)-CSDN博客 简介 本文介绍Ubuntu安装k8s的dashboard(管理页面)的方法。 Dashboard的作用有:便捷操作、监控、分析、概览。 相关网址 官网地址:…...

zookeeper之集群搭建

1. 集群角色 zookeeper集群下,有3种角色,分别是领导者(Leader)、跟随着(Follower)、观察者(Observer)。接下来我们分别看一下这三种角色的作用。 领导者(Leader): 事务请求(写操作)的唯一调度者和处理者,保…...

从0开始界面设计师 Qt Designer

QT程序界面的 一个个窗口、控件,就是像上面那样用相应的代码创建出来的。 但是,把你的脑海里的界面,用代码直接写出来,是有些困难的。 很多时候,运行时呈现的样子,不是我们要的。我们经常还要修改代码调整界…...

Html / CSS刷题笔记

WebKit是一个开源的浏览器引擎,它最初是由苹果公司开发的,并且被广泛用于Safari浏览器和其他基于WebKit的浏览器,比如Google Chrome的早期版本。它也是构建许多移动设备浏览器的基础。WebKit的主要功能是解析HTML和CSS,并将其渲染…...

关于“Python”的核心知识点整理大全51

目录 17.2.2 添加自定义工具提示 bar_descriptions.py 17.2.3 根据数据绘图 python_repos.py 17.2.4 在图表中添加可单击的链接 python_repos.py 17.3 Hacker News API hn_submissions.py 17.4 小结 往期快速传送门👆(在文章最后)&a…...

Termius for Mac/Win:一站式终端模拟器、SSH 和 SFTP 客户端软件的卓越选择

随着远程工作和云技术的普及,对于高效安全的远程访问和管理服务器变得至关重要。Termius,一款强大且易用的终端模拟器、SSH 和 SFTP 客户端软件,正是满足这一需求的理想选择。 Termius 提供了一站式的解决方案,允许用户通过单一平…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

在rocky linux 9.5上在线安装 docker

前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

浅谈不同二分算法的查找情况

二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况&#xf…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

Bean 作用域有哪些?如何答出技术深度?

导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答&#xff0c…...