Https详解

文章目录

      • 一. 什么是 Https
        • 1. "加密"是什么?
        • 2. 对称加密
        • 3. 非对称加密
        • 4. "中间人攻击"
      • 二. 引入证书
        • 理解签名
        • 黑客能否伪造证书?
        • 黑客能否替换公钥?
        • 黑客能否篡改签名?
        • 如何查看证书?

一. 什么是 Https

https 就是 http + 安全层(SSL)–> 用来加密的协议 SSL/TLS

SSL(security scoket layer) 加密套接字协议层.

至于为什么会推出安全层 , 是因为臭名昭著的"运营商劫持"

可以看到 天天动听 的下载链接被替换为 QQ浏览器.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3uvi0iJM-1681867522807)(C:/Users/86178/AppData/Roaming/Typora/typora-user-images/image-20230404191948248.png)]

如果避免这种情况呢?

出现这种情况的主要原因是在互联网上明文传输非常危险, 不光是运营商劫持 , 黑客窃取支付密码也是常见的事 , 因此需要加密.

1. "加密"是什么?

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

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

在这个过程中 , 往往需要一个或多个中间数据 , 辅助这个过程 , 这样的数据称为密钥.

2. 对称加密

进行安全传输的核心就是加密 , 最简单高效的一种加密方法叫做"对称加密"

image-20230404193928996

同一个密钥 , 既可以用来加密 , 也可以用来解密–>对称密钥

但使用的前提是 , 密钥不能被黑客知道.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hkJ69HWS-1681867522808)(https://gitee.com/liu-xuixui/clouding/raw/master/img/image-20230404194922320.png)]

客户端生成密钥发送给服务器 , 此时密钥刚刚生成 , 服务器还不知道 , 此处的密钥只能明文传输 , 密钥可能被黑客劫持.

因此 , 就需要引入非对称加密,

3. 非对称加密

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fFNNBq6h-1681867522809)(https://gitee.com/liu-xuixui/clouding/raw/master/img/image-20230404201002803.png)]

类似于邮差送信 , 邮差手中的锁相当于公钥 , 客户手中的钥匙相当于私钥. 邮差用公钥加密 , 客户用私钥解密.
在这里插入图片描述

服务器生成一对 公钥私钥 , 客户群持有公钥 , 服务器持有私钥.

虽然客户端的公钥从服务器拿 , 黑客也能知道公钥 , 但黑客不知道私钥 , 私钥是服务器自己才有的.

客户端使用公钥 , 来对对称密文加密 , 传输给服务器 , 服务器就可以拿着私钥解密获取对称密文.

本质就是对称加密和非对称加密结合使用 , 非对称加密传递密钥. 对称加密传输信息 , 这时因为非对称加密需要大量计算 , 比对称加密慢很多 , 结合使用就能提高整体速度.

上述理论看似天衣无缝 , 但还是存在瑕疵 :

  • 如果黑客模拟客户端给服务器发送请求 , 那么整个体系就暴露了 , 这就是"中间人攻击".
  • 客户端如何获取公钥?

4. “中间人攻击”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xQAtGgXw-1681867522809)(https://gitee.com/liu-xuixui/clouding/raw/master/img/image-20230405135559611.png)]


二. 引入证书

为了解决"中间人攻击" , 我们需要引入证书这个概念.

解决"中间人攻击"的关键 , 就是让客户端能够辨别 , 当前这个响应(公钥)是服务器真实的公钥. 引入"证书"本质上就是引入第三方的公正机构.

eg: 我们去网吧/宾馆 , 需要刷身份证 , 那么网吧/旅馆为什么会信任你的身份 , 因为就公安局这样的第三方机构给你背书.

服务器(网站) 在设立之初 , 就需要去专门的认证机构 , 申请证书 , 审核通过就会给你颁发证书. 服务器生成的公钥 , 也包含在这个证书中. 客户端向服务器请求公钥的时候 , 此时就不是单单请求一个公钥 , 而是把整个证书申请过来.

客户端拿到证书之后 , 就可以对证书进行校验 , 如果发现证书是无效的 , 浏览器会直接弹窗警告.

理解签名

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

签名就是被认证机构用私钥加密的公钥(服务器发给认证机构的) , 客户端可以使用服务器提供的 公钥 进行解密 , 解密之后 , 得到的结果相当于是一个 hash 值. 不同的数据生成的"签名"差别很大. 使用这样的签名就可以一定程度上区分不同的数据.

  1. 服务器将公钥给 CA 认证机构
  2. CA 用自己的私钥 给公钥 加密 , 生成数字签名
  3. CA 把 公钥 , 数字签名 , 附加一些服务信息整合在一起 , 生成证书 , 发给服务器.

常见生成签名的算法有: MD5 和 SHA 系列

以 MD5 为例:

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

正是因为 MD5 有这样的特性 , 我们可以认为如果两个字符串的 MD5 值相同 , 则认为这两个字符串相同.

黑客能否伪造证书?

假如我们的签名就是一个简单的字符串 hello , 服务器把字符串 hello 和 hello 的 hash值(MD5) BC4B2A76B9719D91 返回给客户端 , 客户端只需要使用相同的 hash 算法 , 看看签名是不是 BC4B2A76B9719D91 即可.

如果黑客把 hello 篡改了 , 那么客户端解析出的 hash 值会和服务器传输过来的差别很大. 但还有个问题 , 如果黑客把字符串 hello 和 hash 值都改了该怎么办?

因此传输的 hash 值不能明文传输 , 需要传输密文 , 该 hash 值在服务器通过另一个私钥加密(这个私钥是申请证书的时候 , 证书发给服务器的 , 不是客户端和服务器之间传输的对称密钥的私钥). 然后客户端通过证书发布机构的公钥进行解密 , 还原出原始的 hash 值 , 再进行校验. 黑客虽然能获取到认证机构发布的公钥 , 解密出 hash 值 , 但黑客没有认证机构的私钥 , 没法对篡改后的内容加密.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QsfL7U0n-1681867522809)(C:/Users/86178/AppData/Roaming/Typora/typora-user-images/image-20230405122029709.png)]

黑客能否替换公钥?

如果黑客把证书中的公钥替换了 , 意味着客户端算的 hash2 和签名解出的 hash1 对不上 , 客户端就知道无效.

黑客能否篡改签名?

由于黑客不知道认证机构的私钥 , 即使黑客用 hash 算法将签名解析出来 , 并生成一个新的 hash 值 , 也无法加密生成签名.

如何查看证书?

Chrom 浏览器 , 点击右上角 : 选择"设置" , 搜索"证书管理" , 即可查看到以下界面.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

选择DAO的组织结构时,应着重考虑的各个关键阶段与安全可靠性

近年来,去中心化自治组织 (Decentralized Autonomous Organizations,DAO)已成为了管理智能合约项目和社区的流行方式。简单而言,DAO是一个基于智能合约运作的数字化组织。组织内的成员可以根据对应的模型结构,做出不同的决策。虽然…

【并发基础】一篇文章带你彻底搞懂Java线程中断的底层原理——interrupt()、interrupted()、isInterrupted()

目录 〇、Java线程中断与阻塞的区别 0.1 线程中断 0.2 线程阻塞 一、线程的中断 二、中断方法 2.1 void interrupt() 2.1.1 可中断的阻塞 2.1.2 不可中断的阻塞 2.1.3 实践案例 2.2 boolean isInterrupted() 2.3 boolean interrupted() 2.4 代码案例 三、源码分析…

Python 实验四 常用数据结构(1)

1.从键盘输入一个正整数列表,以一1结束,分别计算列表中奇数和偶数的和。 n int(input("请输入一个正整数:")) list [] while n ! -1:list.append(n)n int(input("请输入一个正整数:")) else:print("…

Java-代码生成器的实现

文章目录 前言一、概述二、手写代码1. 简要说明2. 代码编写3. 完整代码4. 测试效果 三、项目源码 前言 最近看了一个开源的项目,jfinal-layui,然后这个项目里面有一个 代码生成器 的功能 之前虽然有用过代码生成器,但是从来没有看过相关的源…

Android音视频开发-OpenGL ES正交投影实现方法

本文实例为大家分享了OpenGL ES正交投影展示的具体代码,供大家参考,具体内容如下 绘制正方形 在最开始绘制的六边形里面好像看起来挺容易的,也没有出现什么问题,接下来不妨忘记前面绘制六边形的代码,让我们按照自己的…

浏览器页面操作——实时监控网页变化,读取网页内容

浏览器页面操作功能介绍 浏览器页面操作是集简云的一款免费内置应用,它可以定时监控网页变化,精准捕捉所需信息。一键设置指定网页与元素,全自动监测并即时推送通知,助您在第一时间了解网页最新情况,让您更高效便捷地…

( “树” 之 Trie) 208. 实现 Trie (前缀树) ——【Leetcode每日一题】

知识点回顾 : Trie,又称前缀树或字典树,用于判断字符串是否存在或者是否具有某种字符串前缀。 ❓208. 实现 Trie (前缀树) 难度:中等 Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构&#xff…

冲实习 or 全力准备秋招?

作者:阿秀 校招八股文学习网站:https://interviewguide.cn 这是阿秀的第「261」篇原创 小伙伴们大家好,我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈,目前已经超过 2300 小伙伴加入!去年认真准备和走下来的基…

聚焦能源 | 赛宁网安亮相2023年中国能源网络安全大会

​​4月21日,2023年中国能源网络安全大会(以下简称“大会”)在江苏南京成功落幕!为贯彻国家网络强国战略,加强能源网络安全技术创新、成果应用、人才培养与技术交流,大会推出主旨论坛、案例交流、展览展示等…

sql优化慢查询

1.慢查询设置 慢查询设置(临时) -- 查看是否开启了慢查询日志 show variables like slow%;-- 开启慢查询日志 set global slow_query_log on;-- 更改日志路径 set global slow_query_log_file /data/mydata/app1-slow.log;-- 查看慢查询时间临界值&…

大厂齐出海:字节忙种草,网易爱社交

配图来自Canva可画 随着国内移动互联网红利逐渐触顶,互联网市场日趋饱和,国内各互联网企业之间的竞争便愈发激烈起来。在此背景下,广阔的海外市场就成为了腾讯、阿里、字节、京东、拼多多、百度、网易、快手、B站等互联网公司关注和争夺的重…

第四章(1):词向量定义与意义

第四章(1):词向量定义与意义 目录 第四章(1):词向量定义与意义前言1. 词的表示1.1 离散表示1.1.1 One-Hot独热编码1.1.2 ngram特征表示 1.2 分布式表示 2. 意义 前言 在自然语言处理的领域中,每…

成功上岸北大!总分418分,数学150分,经验贴+方法论

Datawhale干货 作者:葛云阳,杭州电子科技大学,Datawhale成员 前 言 大家好,我是北海。2023年以总分418分的成绩上岸北京大学信息工程学院计算机应用技术专业,其中初试第三,复试第五,总成绩第三…

zookeepr 简介

简介: zookeeper是为分布式应用提供协调服务的高性能组件。zookeeper通过简单的接口暴露了一些公共服务(命名、配置管理、同步和分组服务), 因此你不需要从头开始写这些服务。你可以现成得使用zookeeper来实现共识、组管理、领导者选举和存在协议。你可以根据自己的…

iptables和firewalld防火墙

安全技术和防火墙概述 安全技术 入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决…

Java核心技术 卷1-总结-16

Java核心技术 卷1-总结-16 线程属性线程优先级守护线程未捕获异常处理器 同步竞争条件的一个例子竞争条件详解锁对象 线程属性 线程的各种属性包括:线程优先级、守护线程、线程组以及处理未捕获异常的处理器。 线程优先级 在Java程序设计语言中,每一个…

OpenGL入门教程之 纹理

引言 我们已经了解到,我们可以为每个顶点添加颜色来增加图形的细节,从而创建出有趣的图像。但是,如果想让图形看起来更真实,我们就必须有足够多的顶点,从而指定足够多的颜色。这将会产生很多额外开销,因为每…

ChatGPT国内可用版-国内chatGPT哪个软件好用

国内chatGPT哪个软件最好用 国内对接ChatGPT软件,让智能的对话变得更加简单便捷!ChatGPT是由OpenAI公司开发的最新一代自然语言处理技术,为聊天机器人赋予了更加真实、流畅、智能的语言表达能力。 我们是国内一家专注于人工智能和自然语言处…

旧版VS安装 Visual Studio 2019/2017/2015官方安装教程

安装VisualStudio找不到官方版本?只能找到第三方?害怕中毒? 不要急,本文例举了VS 2019 2017 2015的官方位置,不用但心装成第三方Visual Studio 百度搜索 Visual Studio 2017,只有第三方的包,而…

大孔树脂型号,A-722,ADS500,ADS600,ADS750,ADS800

一、产品介绍 基于吸附功能的聚苯乙烯特种树脂 Tulsimer ADS-600 是一款没有离子官能基的,由交联聚苯乙烯合成的功能强大的吸附型树脂。 Tulsimer ADS-600 主要应用于水溶液中吸附酚及其化合物,氯代烃等含氯物质,表面活性剂&#xff0…