https介绍

news2024/9/21 7:59:06

目录

一.简介

1.1定义

1.2补充知识

1.2.1 对称加密与非对称加密

1.2.2. 数据摘要 && 数据指纹

二.HTTPS 的⼯作过程探究

2.1只使⽤对称加密

2.2只使用非对称加密

2.3非对称加密与对称加密

2.4中间人攻击

三.证书

3.1CA认证

3.2数据签名

3.3 ⾮对称加密 + 对称加密 + 证书认证

3.4常见问题


一.简介

1.1定义

http与tcp协议传输层中间加了一层软件层SSL/TLS,http和这层软件层合起来叫做HTTPS。由于http是明文传输的,https变引入了一个加密层。

1.2补充知识

http绑定的端口是80; https 绑定的端口是443;他们是两套服务,区别是 https 是加密的,就效率来讲http更高,但相对不安全。

加密: 加密就是把 明⽂进⾏变换, ⽣成 密⽂。
解密:解密就是把 密⽂ 再进⾏⼀系列变换,还原成 明⽂。
密钥:在这个加密和解密的过程中, 往往需要⼀个或者多个中间的数据, 辅助进⾏这个过程, 这样的数据称为 密钥 

1.2.1 对称加密与非对称加密

  • 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密。(例如按位异或)
  • 采用公钥和私钥来进行加密和解密,用其中一个密钥进行加密就必须用另一个密钥进行解密,这种加密方法称为非对称加密。

对称加密解释:双方要进行对称加密通信,此时就要去加密方要把密钥给解密方,此时解密方才能对数据进行解密,但加密方把密钥(密钥也是数据)给解密方时也是需要对密钥进行加密的,解密方没法解密就没法拿到密钥(存在安全问题,后面解释)

1.2.2. 数据摘要 && 数据指纹

 数字指纹(数据摘要),其基本原理是利⽤单向散列函数(Hash函数)对信息进⾏运算,⽣成⼀串固定⻓度的字符串—数字摘要(这个字符串就叫做数据摘要/数据指纹)。数字指纹并不是⼀种加密机制,因为他不可以通过这个字符串反解出原数据,即:不可解密。只是⽤来判断数据有没有被窜改。摘要经过加密,就得到数字签明(后面解释)

二.HTTPS 的⼯作过程探究

2.1只使⽤对称加密

如果通信双⽅都各⾃持有同⼀个密钥X,且没有别⼈知道,那么两⽅的通信是安全的。( 即使数据被截获, 由于⿊客不知道密钥是啥, 因此就⽆法进⾏解密)。

服务器同⼀时刻其实是给很多客⼾端提供服务的.,不同双方通信的秘钥最好是不一样的。⽐较理想的做法, 就是能在客⼾端和服务器建⽴连接的时候, 双⽅协商确定这次的密钥(有具体算法去实现),但在传输时秘钥也是数据,也会被黑客获取。

2.2只使用非对称加密

例如:如果 服务器先把公钥以明⽂⽅式传输给浏览器,之后浏览器向服务器传输数据时用公钥加密,从客⼾端到服务器信道似乎是安全的(但有安全问题),但服务器到浏览器的这条路无法保障安全。

改进:二者都使用非对称加密,例如服务端拥有公钥S(server)与对应的私钥S',客⼾端拥有公钥C与对应的私钥C'。

问题:数据传输是要消耗资源的,非对称加密的效率是更低的,若双方同时用非对称加密,并不是非常可取。

2.3非对称加密与对称加密

例如:服务端有非对称秘钥S,S$, 客户端对称秘钥T。

过程:客户端先发起请求,服务端将秘钥S给客户端。

           客户端通过秘钥S加密要传输的数据(对称秘钥T),此时即使黑客截获了数据,也无法获             得加密后的对称秘钥T。

           双方通过对称秘钥T进行加密解密,进行数据传输。

2.4中间人攻击

 Man-in-the-MiddleAttack,简称“ MITM攻击 ”

上面使用的非对称加密与对称加密看上去没有问题,且最后通信使用的还是对称加密。但如果中间⼈的攻击,如果在最开始握⼿协商的时候就进⾏了,就会出现问题。即一方无法确定数据是另一方发送过来的。

那上面的例子来看:

 这种情况使用于上面的策略,所以都不安全,客⼾端⽆法确定收到的含有公钥的数据报⽂,就是⽬标服务器发送过来的!这是最本质的原因。

三.证书

3.1CA认证

服务端在使⽤HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端公钥的权威性。

证书内容:

• 证书发布机构

• 证书有效期

• 公钥

• 证书所有者

• 签名

注意:

服务器需要在特定平台⽣成⼀对密钥对,即公钥和私钥。这对密钥对就是⽤来在⽹络通信中进⾏明⽂加密以及数字签名的。

其中公钥会随着CSR⽂件,⼀起发给CA进⾏权威认证,私钥服务端⾃⼰保留,⽤来后续进⾏通信(其实主要就是⽤来交换对称秘钥)

例如:CSR在线生成工具这个工具

3.2数据签名

给数据文档进行数据签名的意义:防止内容被篡改,这里来确保证书没有被修改。

查看浏览器的受信任证书发布机构 

3.3 ⾮对称加密 + 对称加密 + 证书认证

在2.3的基础上,在客⼾端和服务器刚⼀建⽴连接的时候, 服务器给客⼾端返回⼀个 证书,证书包含了之前服务端的公钥, 也包含了⽹站的⾝份信息.。

客⼾端进⾏认证:

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

认证成功后,通过公钥向服务器发送对称秘钥,服务器通过私钥解密,获得对称秘钥。后面二者传输时信息加密都通过这个对称秘钥。

3.4常见问题

1.服务器向客户端发公钥时,中间⼈可不可能篡改证书呢?

证书的是明文,可以被篡改,但由于中间⼈没有CA机构的私钥,所以⽆法hash之后⽤私钥加密形成签名,那么也就没法办法对篡改后的证书形成匹配的签名,如果强⾏篡改,客⼾端收到该证书后会发现明⽂散列后的值和签名解密后的值不⼀致,则说明证书已被篡改,证书不可信,从⽽终⽌向服务器传输信息。

2.中间⼈能否将整个掉包证书?

一般情况下,中间⼈没有CA私钥,所以⽆法制作假的证书。

如果做到证书的整体掉包,但是明⽂中包含了域名等服务端认证信息,如果整

体掉包,客⼾端依旧能够识别出来。

3.为什么摘要内容在⽹络传输的时候⼀定要加密形成签名?

以 MD5 为例, 了解其特点即可

• 定⻓: ⽆论多⻓的字符串, 计算出来的 MD5 值都是固定⻓度 (16字节版本或者32字节版本)
• 分散: 源字符串只要改变⼀点点, 最终得到的 MD5 值都会差别很⼤.
• 不可逆: 通过源字符串⽣成 MD5 很容易, 但是通过 MD5 还原成原串理论上是不可能的.

4.为什么签名不直接加密,⽽是要先hash形成摘要?

缩⼩签名密⽂的⻓度,加快数字签名的验证签名的运算速度。

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

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

相关文章

电池保护板 - 问题归纳

电池保护板 - 问题归纳简介充电锂电池磷酸铁锂电池放电总结最近更新日期:2023-03-07简介 电池充放电过程中,如果电压、电流或温度等参数不稳定或超出电池的安全范围,就会对电池造成损害,甚至可能引发安全事故。为了保护电池的安全…

融云入选中国信通院《高质量数字化转型产品及服务全景图》

企业数字化转型正在进入“深水区”。 3 月 3 日,“中国信息通信研究院(以下简称中国信通院)高质量数字化转型创新发展大会暨中国信通院‘铸基计划’年度峰会”在京召开,深度展示了中国信通院在数字化转型领域的工作成果&#xff…

计算机专业毕业设计基于Spring Boot 学生在线考试系统

目录 一、学生端 1.1 登录 1.2 注册 1.3 学生首页 1.4 学生查看任务中心的试卷(已答卷/未答卷) 1.5 学生查看固定试卷以及开始做题 1.6 学生查看时段试卷以及开始做题 1.7 学生查看试卷中心 1.8 学生查看考试记录以及查看试卷 1.9 学生查看…

HTTP与HTTPS协议的嵌套访问

概述 HTTP和HTTPS是两种不同的协议。HTTP使用80端口,而HTTPS使用443端口。HTTP是明文传输,而HTTPS为了保障数据传输的安全性,通过SSL证书实现加密传输。 分析 问题1:HTTP和HTTPS可以互相访问吗? 可以互相访问&#…

端口复用(bind error: Address already in use 问题)

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 端口复用专栏:《Linux从小白到大神》《网络编程》 在前面讲解TCP状态转换中提到过一个2MSL…

非栈上的格式化字符串利用例题讲解

题目自取: 链接:https://pan.baidu.com/s/1te_oc3GuWTlDDS5q-NhtKQ?pwdcjz9 提取码:cjz9 开始: 一个非常明显的格式化字符串漏洞,但是值得注意的是,此时的buf变量不在栈上,因此我们之前把pr…

SpringBoot 项目中集成 Prometheus 和 Grafana

项目上线后,除了能保障正常运行以外,也需要服务运行的各个指标进行监控,例如 服务器CPU、内存使用占比,Full GC 执行时间等,针对一些指标出现异常,可以加入一些报警机制能及时反馈给开发运维。这样&#xf…

如何打造一个高品质的酒店品牌形象?VR全景营销是关键!

数字化改革早已不是新鲜“字眼”,酒店行业作为竞争激烈的红海市场,运用“数字化”升级改造成为宣传推广的重点方向之一。VR全景酒店,运用沉浸式全景展示,使其在竞争激烈的酒店行业中进行差异化竞争,使消费者在线上全面…

SpringCloud:统一网关Gateway

目录 1、网关介绍 2、搭建网关服务 3、路由断言工厂 4、路由过滤器 5、全局过滤器GlobalFilter 6、过滤器执行顺序 7、跨域问题处理 1、网关介绍 网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是复杂的网络互 连设备&#xff0…

Spark SQL快速入门

在spark上运用SQL处理结构化数据 1、SparkSQL快速入门 1.1 什么是SparkSQL SparkSQL 是Spark的一个模块,用于处理海量结构化数据 限定:结构化数据 1.2 为什么学习SparkSQL SparkSQL是非常成熟的,海量结构化数据处理框架 学习SparkSQL主要…

动态代理—Java

代理可以理解为请一个中间人帮忙处理一些事情。代理支持任意接口类型的实现类对象做代理,也可以直接为接本身做代理。可以为被代理对象的所有方法做代理。可以在不改变方法源码的情况下,实现对方法功能的增强。简化了编程工作、提高了软件系统的可扩展性…

QT入门Display Widgets之QLine、QLcdNumber、QTextBrowser

目录 一、QLine界面相关 1、布局介绍 2、界面基本属性 二、QLCDNumber的介绍 1、界面布局 2、定时器代码测试 三、QTextBrowser 此文为作者原创,创作不易,转载请标明出处! 一、QLine界面相关 1、布局介绍 先看下界面中创建个Q…

递归(java)

1.递归应用场景 看个实际应用场景,迷宫问题(回溯), 递归(Recursion) 2.递归的概念 简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。 3.递归调用机制 我列举两个小案例,来帮助大家…

Stream——数字类型的字符串排序

文章目录前言什么是数字类型的字符串一个简单的坑demo拯救坑代码对象集合中的数字类型排序(有坑)对象集合中的数字类型排序 解决扩展将数字类型字符串数组转换为Integer集合总结前言 想到给数据进行排序,一开始头脑中想到的就是sorted(),本篇文章重点说…

SSL安全证书有什么优缺点?

在将SSL实施到您的站点之前,了解SSL的优点和缺点非常重要。下面就给大家分析下安装SSL证书有什么优缺点:优点:1. 加密信息确保您在线发送的数据只被指定的接收者读取,而不被其他人读取。SSL对原始数据进行了一些更改,因…

秒懂SpringBoot之Filter与HandlerInterceptor异同

[版权申明] 非商业目的注明出处可自由转载 出自:shusheng007 文章目录概述前置知识Filter原理及使用场景使用执行顺序设置Filter作用范围HandlerInterceptor原理及使用场景使用实现org.springframework.web.servlet.HandlerInterceptor 接口配置二者异同共同点不同点…

RocketMQ 高级特性

1,事务消息代码实现 之前我们已经在讨论订单业务消息丢失问题中引出了事务消息,本内容我们就实际用代码来实现一下事务消息吧。 首先我们用原生代码来实现一下事务消息,下面是事务消息生产者TransactionProducer类的代码,具体代码…

基于LinkedList高性能android列表适配器

1、前言 我们大部分的时候都是使用ArrayList作为Android适配器Adapter(无论是ListView或者RecyclerView)下的数据容器。为什么使用ArrayList呢?因为他的内部是由数组实现的,所以访问数组元素速度最快,但是如果数据变化…

JNI内两种方式从C/C++中传递一维、二维、三维数组数据至Java层详细梳理

目录 0 前言 1 准备工作介绍 2 一维数组 2.1 return形式 2.2 参数形式 3 二维数组 3.1 return形式 3.2 参数形式 4 三维数组 4.1 return形式 4.2 参数形式 5 测试代码 6 结果说明 0 前言 就如之前我写过的一篇文章【JNI内形参从C代码中获取返回值并返回到Java层使…

Elsevier上传LaTeX 修改稿踩坑

背景 千辛万苦修改完论文,结果发现要求上传可编辑文件,tex上传真的太难了,一堆坑,尤其是编译错误,要等系统创建pdf后才能找到。中间还打了北京的客服电话,结果他们那边并不懂相关的东西。说latex是第三方公…