http与https通俗易懂的原理解析
1.背景
经常都在说http、https,都知道https是安全的,
但是,
为什么说http不安全呢?
为什么又说https是安全的呢?
接下来我将使用通俗易懂的方式给大家分析一下.......
2.深入解析
2.1.首先我们来看一下http请求
从下图可以看出,采用明文传输黑客可以直接获取。

2.2.采用对称加密
表面上看采用对称加密后,就算黑客截取到数据没有key,也不知道数据内容
但问题是客户端怎么知道key呢?
如果给每个客户端都分配一个key,那么服务端要维护key与客户端的关系,这那么多客户端,这个数据维护将会很困难。
如果每个客户key一样,那么黑客也会知道key,加密就没有意义了。

2.3.采用非对称加密
从下图可知,采用非对称加密的问题在于服务端在给客户端发送数据时,黑客有公钥可以解密数据导致不安全。

2.4.对称加密+非对称加密
1.客户端第一次请求的时候采用公钥加密,将key传到服务端,因为公钥加密的数据只有私钥才可以解密,所以是安全的的;
2.服务端接收到加密数据后,使用私钥解密,得到key;
3.在后面的请求中服务端客户端采用对称加密,key为加密码;
如下图:

表面上看无懈可击,因为只有客户端自己与服务端知道加密的key,是安全的的,
但是,大家有没有想过客户端在获取公钥时,如果黑客冒充服务端给了一个假的公钥给客户端
客户端使用假的公钥加密数据有发给黑客的服务端,这时候黑客有与假公钥配对的私钥,
那么黑客就可以解密客户端发送的信息,进而黑客用真的公钥加密数据发送给服务端,在中间起到一个信息转发的作用
这样一来,所有的信息黑客都知道了,并且可篡改........太不安全了....
如下图所示:

这里不安全的原因在于,获取到了黑客假的公钥,如果能保证公钥的真实性,那么这个方案就完美了
2.5.非对称加密+对称加密+CA证书
1.非对称加密+对称加密的方式不安全的根本原因是不能保证公钥的真实性
2.那么就产生的CA权威中心的概念,CA的角色就有点像,你说你是研究生毕业,别人不信呀,那怎么办,你的找一个权威机构(学校)颁发的证书别人才信
3.服务端就可以在CA权威中心申请一个证书,包括公钥pk2和私钥sk2
4.用户(客户端)的电脑上安装CA权威机构证书
基础的数据搞定后,接下来在分析一下请求流程
1.客户端向服务端发出请求获取公钥pk
2.服务端对公钥加密后返回给客户端pkdata,加密方式为:f(sk2,pk)=pkdata,这个pkdata只能是CA权威中心的公钥pk2才可以解密,得到服务端的公钥pk
3.客户端解密出公钥pk,解密方式为:f(pk2,pkdata)=pk,要解密这个客户端必须要有pk2,
那么这个pk2,从哪里来呢?CA权威中心通过网络获取,不行,这样会被黑客冒充
只能直接在客户端本地取,即:事先安装好证书,大家也可以查看直接电脑上已经安装好的证书,查看链接:https://jingyan.baidu.com/article/ff42efa9449a97c19f220250.html
4.非对称加密传递key到服务端,有了服务端的真实公钥pk后,用户就可以用公钥加密key发送到服务端;
5.服务端使用私钥解密获取到key;
6.之后的请服务端与客户端都采用key,进行对称加密传递数据;
黑客永远木有办法了...除非CA有内鬼......哈哈哈

完美!
http与https通俗易懂的原理解析的更多相关文章
- HTTPS协议加密原理解析
用 HTTP 协议,看个新闻还没有问题,但是换到更加严肃的场景中,就存在很多的安全风险.例如你要下单做一次支付,如果还是使用普通的 HTTP 协议,那你很可能会被黑客盯上. 比如,你发送一个请求,说我 ...
- Tengine HTTPS原理解析、实践与调试【转】
本文邀请阿里云CDN HTTPS技术专家金九,分享Tengine的一些HTTPS实践经验.内容主要有四个方面:HTTPS趋势.HTTPS基础.HTTPS实践.HTTPS调试. 一.HTTPS趋势 这一 ...
- HTTPS协议原理解析
一.对称加密与非对称加密 1,定义: 对称加密:加密和解密的秘钥使用的是同一个. 非对称加密:与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatek ...
- HTTPS 原理解析
一 前言 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全.为了保证 ...
- HTTPS 原理解析(转)
一 前言 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全.为了保证 ...
- 一文读懂Https的安全性原理、数字证书、单项认证、双项认证等
本文引用了作者Smily(博客:blog.csdn.net/qq_20521573)的文章内容,感谢无私分享. 1.前言 目前苹果公司已经强制iOS应用必须使用HTTPS协议开发(详见<苹果即将 ...
- 【算法】(查找你附近的人) GeoHash核心原理解析及代码实现
本文地址 原文地址 分享提纲: 0. 引子 1. 感性认识GeoHash 2. GeoHash算法的步骤 3. GeoHash Base32编码长度与精度 4. GeoHash算法 5. 使用注意点( ...
- JavaScript 模板引擎实现原理解析
1.入门实例 首先我们来看一个简单模板: <script type="template" id="template"> <h2> < ...
- 开源磁力搜索爬虫dhtspider原理解析
开源地址:https://github.com/callmelanmao/dhtspider. 开源的dht爬虫已经有很多了,有php版本的,python版本的和nodejs版本.经过一些测试,发现还 ...
- Volley 实现原理解析(转)
Volley 实现原理解析 转自:http://blog.csdn.net/fengqiaoyebo2008/article/details/42963915 1. 功能介绍 1.1. Volley ...
随机推荐
- RSS 解析:全球内容分发的利器及使用技巧
使用 RSS 可以将最新的网络内容从一个网站分发到全球数千个其他网站. RSS 允许快速浏览新闻和更新. RSS 文档示例 <?xml version="1.0" encod ...
- 一个简单可分享的web数据透视分析
我推荐一个简单可分享的在线数据透视分析网站,首先看效果: 在线数据透视展示 用户上传一个Excel或csv文件后,把指标拖拽到左右两侧,再选择合适的分析方式,在中间展示区域就会出现分析数据或者图形了, ...
- github fork后对上游仓库的做rebase
想对上游仓库做更新同步 先添加上游仓库 git remote add upstream https://github.com/原始作者/原始仓库.git 其中这里的upstream 是一个命名,和 o ...
- .Net Core+NPOI快速导入导出Excel
Excel导入导出在开发中是非常常见的,对Excel操作,NPOI使用的是最常用的,但单单用NPOI,要写得代码还是比较多的,可以借助一个Npoi.Mapper库,操作起来就非常简单了,十来行代码就可 ...
- typroa破解
Typora 一款 Markdown 编辑器和阅读器 风格极简 / 多种主题 / 支持 macOS,Windows 及 Linux 实时预览 / 图片与文字 / 代码块 / 数学公式 / 图表 目录大 ...
- Golang基于Mysql分布式锁实现集群主备
背景 集群中如果需要主备,可以基于Redis.zk的分布式锁等实现,本文将介绍如何利用Mysql分布式锁进行实现. 原理 数据库中包含数据字段(此处为Master的主机名).版本号和上一次更新时间. ...
- 4.4K Star!推荐一款新一代的极简监控系统!轻量高性能!超500个监控指标,颜值高、功能强大!
在信息化快速发展的今天,企业运维面临的挑战日益增多.传统的运维监控系统往往存在功能冗余.性能低下.操作复杂等问题,难以满足现代企业对高效.稳定.智能的运维管理需求. 今天给大家推荐一款新一代极简运维监 ...
- 【Error】mysql的error.log中ranges: 268 max_threads: 4 split: 268 depth: 2是什么意思?
2021-12-08T09:36:39.612332+08:00 44213799 [Note] [MY-011825] [InnoDB] Parallel scan: 4 2021-12-08T09 ...
- Vue手稿4
- 前端开发-- Webpack 代码分割和懒加载技术
在现代前端开发中,优化应用性能是一个至关重要的任务.Webpack 作为一个强大的打包工具,为我们提供了代码分割和懒加载的功能,可以显著提升应用的加载速度和用户体验.本文将深入解析 Webpack 的 ...