浅尝https
HTTPS
http超文本传输协议,所以的东西都是明文传输,容易被拦截,被攻击,我们希望能对通话内容进行加密,那么因此而生,出现了https
https:在http的基础上新增加了SSL层
先放图

// http 超文本传输协议
// https 加密的超文本传输协议
// 对称加密
浏览器生成一个秘钥,然后将秘钥传输给服务器,之后每次传输浏览器都使用该秘钥加数据加密传输给服务器
服务器使用得到的秘钥解密加密的数据,因为使用的是同一个秘钥所以称为对称加密
缺点 秘钥容易被截取,难么也相当于裸奔了
// 非对称加密算法 RSA
秘钥分成公钥和私钥 公钥是大家都知道的,私钥是要保存好,谁都不能告诉的。 经过公钥加密的数据,只有通过对应的私钥才能解密
浏览器有自己的公钥和私钥,服务器也有自己的公钥和私钥
1浏览器拿到服务器的公钥,将数据加密,传送给服务器,服务器用自己的私钥解密,拿到传输数据
2服务器也可以拿到浏览器的公钥,加数据加密,传输给浏览器,浏览器通过自己的私钥,将私钥解密,拿到服务器返回的数据
这样一来秘钥就不会被截取了,所以的信息也都加密了
缺点 RSA加密,比较慢,比对称加密慢个几百倍,所以需要改进
// 非对称加密和 对称加密结合
浏览器生成一个秘钥,将其作为数据,通过非对称加密传输给服务器,服务器通过自己的私钥,拿到这个对称加密的秘钥
之后数据传输我们就用对称加密,对称加密的秘钥也有了
完美了解决了,数据加密,也防止了秘钥被拦截 ,good
// 中间人攻击
中间人截取服务器给客户端发送的公钥,将中间人的公钥发给客户端,那么客户端用中间人的公钥加密的数据,就能被中间人解密,
中间人拿到服务器的公钥,加密数据传输给服务器,服务器也能拿到客户端的数据,并且毫无察觉,数据其实已经被截取了。
// 解决中间人攻击,也就是要确认对方身份信息
// CA 有信度的公正中心
服务器将自己的公钥,认证信息,其他消息,用hash算法生成 消息摘要
服务器将消息摘要找CA ,用ca的私钥对齐进行加密 生成数字签名
然后服务器将 公钥,认证信息,其他消息组合的混合消息和数字签名组合成数字证书,发送给客户端
然后客户端拿到该数字证书
客户端用相同的hash算法将混合消息生成消息摘要,
客户端拿到CA的公钥,将数字签名进行解密,得到服务器生成的消息摘要,进行对比,就知道有没有被串改
这要就完美的防止了中间人攻击
总结一下,https的整个过程
客户端像服务器发送请求
1.客户端想服务器请求公钥
2.服务器将数字证书,包括公钥key,数字签证(数字签证是通过CA私钥加密的)等信息 返回客户端
3.客户端验证服务器信息,通过CA的公钥解密数字签字,验证公钥key是否是服务器的,
4.客户端生成对称加密秘钥,通过服务器的公钥加密传输给服务器
5.服务器得到信息,通过自己的私钥,解密数据,得到对称加密的秘钥
6.双发都知道秘钥了,可以开始加密传输数据了
浅尝https的更多相关文章
- 浅尝装饰器和AOP
[写在前面] 参考文章:https://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html[从简单的例子入手进行讲解,由浅入深,很到位] 装饰器部 ...
- 浅尝Spring注解开发_Bean生命周期及执行过程
Spring注解开发 浅尝Spring注解开发,基于Spring 4.3.12 包含Bean生命周期.自定义初始化方法.Debug BeanPostProcessor执行过程及在Spring底层中的应 ...
- 浅尝ECMAScript6
浅尝ECMAScript6 简介 ECMAScript6 是最新的ECMAScript标准,于2015年6月正式推出(所以也称为ECMAScript 2015),相比于2009年推出的es5, es6 ...
- 浅谈HTTPS以及Fiddler抓取HTTPS协议
最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ...
- [转]浅谈https\ssl\数字证书
浅谈https\ssl\数字证书 http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的 ...
- 浅尝key-value数据库(二)——MongoDB的优与劣
浅尝key-value数据库(二)——MongoDB的优与劣 MongoDB的名字取自英文单词"humongous"的中间五个字母,是一个C++开发的基于分布式文件存储的数据库开源 ...
- 浅尝key-value数据库(三)——MongoDB的分布式
浅尝key-value数据库(三)——MongoDB的分布式 测试了单机MongoDB的随机读和写入性能,这一节来讲一讲MongoDB的分布式. MongoDB的分布式分成两种,一种是Replicat ...
- 浅尝key-value数据库(一)——一览NoSQL
浅尝key-value数据库(一)——一览NoSQL 最近由于一个项目的关系,研究了一下key-value数据库这个最近很火的概念.本系列从项目需求的角度分析并测试了几个key-value数据库的性能 ...
- Python图形界面开发编程:wxPython(浅尝篇)
Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 ...
随机推荐
- php改变header头返回值
$code = '400 Bad Request'; header('HTTP/1.1 '.$code);
- LC 406. Queue Reconstruction by Height
Suppose you have a random list of people standing in a queue. Each person is described by a pair of ...
- flutter 单例
flutter中的单例 class DataSave{ factory DataSave() => shared(); static DataSave _instance; DataSave._ ...
- tableau extension 调研
概述 最近调研了一下 tableau extensions 的实现,有一些心得,记录下来,供以后开发时参考,相信对其他人也有用. 总的来说,写 tableau extensions 还是挺简单的,只是 ...
- 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_2 响应之返回值是String类型
返回字符串 新建一个response的页面 新建后台Controller类 视图解析器配置的前缀地址 是WEB-INF下的pages下的页面. 创建pages文件夹在下面创建success.jsp页面 ...
- 安德鲁1.2Ku使用感受
看中玻璃钢天线了,华达太贵,安德鲁性价比比较高.就在上周,决定入一个试试.周二微信转账,380+120运费,安能物流送货上门,上周6中午午睡时接到电话.去广场拿货. 锅面包装很简单,纸壳与胶带简单粗暴 ...
- Spark3.0 preview预览版尝试GPU调用(本地模式不支持GPU)
Spark3.0 preview预览版可以下载使用,地址:https://archive.apache.org/dist/spark/spark-3.0.0-preview/,pom.xml也可以进行 ...
- mongod 对指定数据库创建用户
https://blog.51cto.com/wzlinux/2153062?source=dra 1.先在admin库中创建管理员用户与密码 [root@mbasic ~]# mongo Mongo ...
- 【Linux】【一】linux 目录切换、创建目录和文件、编辑目录以及文件(txt)
以下 是在指定目录下创建文件夹目录,以及在该目录下创建txt文件进行编辑,保存. 然后删除相关文件以及目录的命令操作记录. 本操作记录中的命令简单解释: pwd 显示当前路径 ls 显示当前目录下的文 ...
- MSSQL数据库日志满的快速解决办法
先提供一种复杂的方法压缩日志及数据库文件如下: 1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志: BACKUP LOG 数据库名 WITH NO_ ...