HTTPS加密解析

news2024/11/16 17:28:55

日升时奋斗,日落时自省 

目录

1、加密解释

2、对称加密

3、非对称加密

4、证书


HTTPS(HyperText Transfer Protocol over Secure Socket Layer)也是一个应用层协议,是在HTTP协议的基础上引入了一个加密层

HTTP协议内容都是按照文本的方式明文传输的,这就导致子传输过程中出现一些被篡改的情况(运营商劫持)

运营商劫持:例如:你想下载一个软件但是,但是你点击下载的那一时间突出的下载却不与原内容不符,

HTTPS  就如同:HTTP + 安全层(SSL)

SSL/TSL用来加密的协议

1、加密解释

网络上明文传输数据很危险,就需要加密才能保证安全

加密:其实不难理解,这里举出一个日常例子,如果你想要让普通人看不到你写的字,但是你又想让某人看见,制作一个加密规则(我用笔蘸花露水在纸上写了一些内容等待纸上的水干了字就消失了,对方拿到纸后将纸放到水中就显示出来字迹了);此处就是进行加密

加密前的数据  : 就是我用花露水写的内容

加密后的数据  : 等花露水干了字迹消失 加密成功

拿到密文的数据:一张白纸

解密后的数据  :将纸放在水中显现纸上内容

这里的密钥 就是 水

2、对称加密

HTTPS其实主要是涉及到其中的SSL部分 SSL不是在HTTPS使用,现在我们知道安全传输依赖于加密,加密是一种最简单的办法 。这里叫做“对称加密”

加密的过程:明文   -> 加密(key)  ->密文

解密的过程:密文   ->  解密(key) ->  明文

这里加密和解密都使用的是同一个密钥 称为: 对称加密

对称加密的安全性的前提密钥不能被黑客知道了,如果知道,不就可以直接获取内容了

为什么能获取内容呢??不是加密了吗???

产生这么一个问题:客户端生成密钥,还是服务器生成密钥呢??

由于一个服务器对应多个客户端 ,这些客户端每个人都得有不同的密钥,所以客户端生成密钥同时传内容时也给服务器密钥

此处使用一个事例:客户端生成一个密钥 ,客户端就需要把密钥告知服务器

3、非对称加密

 客户端生成密钥,发送给服务器的过程中被黑客入侵网络设备,知道了其中的密文,那这样加密很容易就被侵入了,所以对称加密 就 仍旧不那么安全

有对称加密 就有 非对称加密

对称加密有问题在传输密钥,需要安全的将密钥传输给服务器(对密钥加密)

注:非对称加密是针对对称加密的密钥进行加密

生成一对密钥,公钥和私钥(私钥可以解密公钥可以通过一系列的公式理论可以推导出来)

明文  -> 公钥(加密) -> 密文 使用公钥加密

密文  -> 私钥(加密) -> 明文 使用私钥解密   

注:该两种密钥可以 反过来 ,也是可以使用的

公钥是公开的,私钥只有服务器这边才有(谁也拿不到)

试问:公钥可以反推私钥吗???

答案:暂时不行,因为计算量太大了当前计算机算不出来(计算时间太长,可以算做计算不出来)

针对上图进行解析:

服务器生成一对 公钥和私钥

客户端持有公钥 服务器持有私钥 ,此时客户端拿着公钥,从服务器拿的,黑客也能知道公钥,,但是不能知道私钥,服务器肯定不会给的

客户端使用公钥,来对对称密钥进行加密,传输给服务器,服务器就可以拿着自己的私钥来解密得到对称密钥,只需要这一次就针对“ 对称密钥 ”加密即可,后面客户端和服务器直接就可以直接使用这个对称密钥进行后续传输

试问:非对称加密这么安全,还要对称加密干啥呢??主要是都是非对称加密太慢了,行不通

 看到非对称密钥那可谓是天衣无缝了

那现在不是就万无一失了,其实还是破除当前僵局还是有迹可循的

黑客:虽然我破解不了(不能以公钥反推私钥解密),但是我能既骗你,也骗服务器(中间人攻击)

如何做到中间人:针对客户端时 自称为 服务器 ;针对服务器时 自称为 客户端

4、证书

 针对“非对称加密”情况带来的漏洞如何预防??

问题主要出在了客户端,不能识别服务器的真伪;服务器这边有私钥卡着(涉及不到服务器的问题),解决中间人攻击的关键,在于让客户端能够辨别当前这个响应(公钥)是不是真的是服务器发送来的,针对公钥是不是服务器的操作安全产生了“证书”(第三方的公证机构)相当于是身份认证

服务器创建不是说创建一个公网服务器就创建的,需要去专门的认证机构,申请证书(提供一些资质)像身份证一样,说明你是一个合法公民,审核通过,就会给你颁发证书,服务器生成的公钥,也就包含在这个证书中。

客户端向服务器请求公钥 :此时请求的不仅仅是一个公钥,而是请求整个证书

客户端拿到证书之后,就可以对证书进行校验(验证一下,证书是不是假的,是不是被篡改过)

如果发现证书是无效,浏览器就会直接弹框警告(有些小网站会有这样提示,只要你别手点继续访问)

证书请求的基本流程:

 客户端拿到证书以后就可以会证书进行校验,证书上面会有一个特定的字段,叫做证书的签名

这个签名可以比喻做:你在学校以前写请假条的时候,班主任亲笔拿给门卫才会放你出校,因为门卫会认识学校各个班主任老师的亲笔签名(好使)

证书:

(1) 客户端可以使用认证机构提供的公钥 进行解密,解密之后得到的结果相当于是一个hash值,这个hash值类似于tcp udp里校验和根据证书的其他字段,综合计算出来的结果

(2)客户端就可以使用同样的hash算法,针对其他字段再算一次hash值,得到hash2,看看hash(从签名中解出来的)和hash2(客户端自己算的)这两值相同,说明证书正确有效(没有被偷偷更改过)

为什么说这样可以做到安全??

试问:黑客能否把证书给篡改???将公钥替换???

<1>一旦替换了公钥,就意味着客户端算的hash2和签名解密出来的hash就对不上了,客户端就知道此证书是无效的,自然就会报出警告

<2>黑客是不知道认证机构的 私钥,即使黑客自己算好了新的篡改后的hash值,也无法加密成签名

此处公钥和签名就构成绑定关系有一个修改不了(伪装不了)就不能获得对称加密的密钥(解决了中间人的问题)

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

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

相关文章

卷积神经网络(CNN)基础知识

文章目录CNN的组成层卷积层卷积运算卷积的变种分组卷积转置卷积空洞卷积可变形卷积卷积层的输出尺寸和参数量CNN的组成层 在卷积神经⽹络中&#xff0c;⼀般包含5种类型的⽹络层次结构&#xff1a;输入层、卷积层、激活层、池化层和输出层。 输入层&#xff08;input layer&a…

Android Audio HAL 服务

在 Android 系统中&#xff0c;Audio HAL 服务用于管理对音频硬件的访问&#xff0c;AudioFlinger 通过 Audio HAL 服务访问音频硬件。这里以 Android Automotive (AAOS) 版模拟器为例&#xff0c;来看 Audio HAL 服务的设计、实现和访问&#xff0c;代码分析基于 android-12.1…

【JavaSE】数组的定义和使用(下)

数组的定义和使用&#xff08;下&#xff09;4. 数组练习4.1 模拟实现toString4.2 数组拷贝4.3 比较两个数组是否相同4.4 填充数组4.3 求数组中元素的平均值4.4 查找数组中指定元素&#xff08;顺序查找&#xff09;4.5 查找数组中指定元素&#xff08;二分查找&#xff09;4.6…

力扣-树节点

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道中等的力扣sql练习题。 文章目录前言一、题目&#xff1a;608. 树节点二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总结前言 …

基于nvidia xavier智能车辆自动驾驶域控制器设计与实现-百度Apollo架构(二)

智能车辆操作系统 智能车辆操作系统是智能车辆系统的重要组成部分。现代汽车软件组件通常首 先由不同的供应商开发&#xff0c;然后在有限的资源下由制造商进行集成[42]。智能车辆操作 系统需要采用模块化和分层化设计思想来兼容传感器、分布式通信和自动驾驶通用 框架等模块&a…

适当的合同管理有什么积极影响?若管理不善有什么后果?

合同管理将决定合同是主要的风险因素还是业务增长的工具。事实是&#xff0c;如何处理合同会影响企业的底线。据研究显示&#xff0c;糟糕的合同管理使企业每年损失超过9%的收入。实施合同管理最佳实践将帮助企业提高合同签约效率。 什么是合同管理&#xff1f; 合同管理是对合…

玩转CodeQLpy之用友GRP-U8漏洞挖掘

0x01 前言CodeQLpy是作者使用python3实现的基于CodeQL的java代码审计工具&#xff0c;github地址https://github.com/webraybtl/CodeQLpy。通过CodeQLpy可以辅助代码审计人员快速定位代码中的问题&#xff0c;目前支持对SprintBoot的jar包&#xff0c;SpringMVC的war包&#xf…

初探git——版本控制工具git实用教程

文章目录前言基本配置基本操作1.初始化2.查看修改状态(status)3.添加工作区到暂存区4.提交暂存区到本地仓库5.查看提交日志6.版本回退7.添加文件至忽略列表分支1.基本命令2.分支冲突git远程仓库1.创建远程仓库2.配置公钥3.操作远程仓库idea配置git前言 Git是目前世界上最先进的…

九龙证券|业绩增长态势向好 沪市数字产业公司活力迸发

3月8日晚间&#xff0c;中国联通发表年报并举行成绩说明会&#xff0c;年报显现&#xff0c;公司2022年完成经营收入&#xff08;兼并报表&#xff09;3549.44亿元&#xff0c;同比增加8.30%&#xff1b;归属于母公司股东净利润72.99亿元&#xff0c;同比增加15.80%&#xff0c…

【计算机视觉】Zero-shot, One-shot和Few-shot的理解

机器学习任务按照对 样本量 的需求可以分为&#xff1a;传统监督式学习、Few-shot Learning、One-shot Learning、Zero-shot Learning。 文章目录一、传统监督式学习二、Zero-shot learning &#xff08;零样本学习&#xff0c;简称ZSL&#xff09;三、Few-shot learning3.1 什…

【SpringMVC】 一文掌握 》》》 @RequestMapping注解

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ RequestMapping注解一、SpringMVC环境准备1.相…

阿里云服务器使用教程:CentOS 7 安装JDK及Tomcat(以jdk1.8、tomcat9.0.37为例)

目录 1、下载JDK及Tomcat的安装包并上传至服务器 2、安装JDK 3、安装Tomcat 4、Tomcat启动后无法打开Tomcat首页的原因 1、下载JDK及Tomcat的安装包并上传至服务器 &#xff08;1&#xff09;下载JDK1.8版本压缩包 官网&#xff1a;Java Downloads | Oracle &#xff08…

C++回顾(十七)—— 类型转换

17.1 static_cast(expr) static_cast强制类型转换 用于基本类型间的转换&#xff0c;但不能用于基本类型指针之间的转换 用于有继承关系类对象之间的转换和类指针之间的转换 static_cast是在编译期间转换的&#xff0c;无法在运行时检测类型 所以类类型之间的转换有可能存在风…

002 第一季SpringBoot2核心技术-核心功能:

三、核心技术之- ->核心功能 1. 配置文件 1.1 文件类型 1.1.1 properties 同以前的properties用法 优先级高于yml的方式。 1.1.2 yaml 1) 简介 YAML 是 “YAML Ain’t Markup Language”&#xff08;YAML 不是一种标记语言&#xff09;的递归缩写。在开发的这种语言时…

ArcGIS:栅格计算器的运算符和函数详解

01 栅格计算器在哪&#xff1f;02 运算符说明栅格计算器的表达式书写与Python语法一致&#xff08;由于其为解释型语言并且语言简洁优美&#xff0c;因此简单上手&#xff09;&#xff0c;这里主要简单说明各个运算符即可使用栅格计算器构建地图代数表达式以输出要求的栅格图像…

给力|这是一个专业的开源快速开发框架!

在低代码开发市场&#xff0c;专业的开源快速开发框架可以助力企业提升办公协作效率&#xff0c;实现提质增效的办公自动化的发展目标。 流辰信息低代码技术开发平台服务商&#xff0c;拥有丰富的技术经验和案例合作经验&#xff0c;针对不同的客户需求&#xff0c;提供个性化、…

Docker-数据卷之Dockerfile

dockerfile相当于一个脚本通过该脚本可以生成一个自定义的镜像Dockerfile命令:注意&#xff1a;Dockerfile中的指令必须都是大写#基础镜像&#xff0c;一切从这儿开始构建 FROM #镜像是谁写的&#xff0c;姓名邮箱 MAINTAINER #镜像构建时候需要运行的命令 RUN #步骤&#xff1…

Nginx 文件名逻辑漏洞(CVE-2013-4547)

注意&#xff1a;仅用于技术讨论&#xff0c;切勿用于其他用途&#xff0c;一切后果与本人无关&#xff01;&#xff01;&#xff01; 个人博客地址&#xff1a;HJW个人博客 理论基础&#xff1a; 建议提前学习nginx的原理&#xff1a;Nginx服务漏洞详解 - 知乎 漏洞原理&a…

【项目实战】如何使用Postman调用WebSocket程序

一、背景说明 项目中需要使用WebSocket进行通信&#xff0c;开发完了WebSocket接口&#xff0c;总得测试吧&#xff0c;以下是Postman调用WebSocket程序的方法。 二、注意事项 2.1 为啥选Postman&#xff1f; 最近都在用ApiFox做接口调用&#xff0c;但是目前版本的ApiFox&…

新库上线 | CnOpenData注册会计师及事务所数据

注册会计师及事务所数据 一、数据简介 注册会计师是指取得注册会计师证书并在会计师事务所执业的人员&#xff0c;从事审计、咨询、税务等相关业务。事务所是指依法在中国境内设立&#xff0c;由中国公民组成&#xff0c;具有独立法人资格&#xff0c;接受投资者和其他利害关系…