是时候理解下HTTPS的原理及流程了
1.什么是HTTP协议?
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议),位于TCP/IP模型当中的应用层。HTTP协议通过请求/响应的方式,在客户端和服务端之间进行通信。HTTP协议的信息传输完全以明文的方式,不做任何加密,相当于在网络上“裸奔”,所以容易遭受中间人的恶意截获甚至篡改(中间人攻击)。
2.什么是HTTPS协议?
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

3.对称加密和非对称加密
对称加密
对称加密采用了对称密码编码技术,它的特点是文件加密和解密都是使用相同的密钥。
这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高。
非对称加密
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。
公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
4.HTTPS流程
1.服务端首先把自己的公钥(Key1)发给证书颁发机构,向证书颁发机构申请证书。
2.证书颁发机构自己也有一对公钥私钥。机构利用自己的私钥来加密Key1,并且通过服务端网址等信息生成一个证书签名,证书签名同样经过机构的私钥加密。证书制作完成后,机构把证书发送给了服务端。
3.当客户端向服务端请求通信的时候,服务端不再直接返回自己的公钥(Key1),而是把自己申请的证书返回给客户端。
4.客户端收到证书以后,要做的第一件事情是验证证书的真伪。需要说明的是,各大浏览器和操作系统已经维护了所有权威证书机构的名称和公钥。所以客户端只需要知道是哪个机构颁布的证书,就可以从本地找到对应的机构公钥,解密出证书签名。
客户端对证书验证成功后,就可以放心地再次利用机构公钥,解密出服务端的公钥Key1。
客户端本地如何验证证书呢?
证书本身就已经告诉客户端怎么验证证书的真伪,也就是证书上写着如何根据证书上的方法自己生成一个证书编号,如果生成的证书编号与证书上的证书编号相同,那么证明这个证书是真实的。同时,为避免证书编号本身又被调包,所以使用第三方机构的私钥进行加密。
证书就是HTTPS中的数字证书,证书编号就是数字签名,而第三方机构就是指数字证书签发机构(CA)
5.客户端生成自己的对称加密密钥Key2,并且用服务端公钥Key1加密Key2,发送给服务端。
6.服务端用自己的私钥解开加密,得到对称加密密钥Key2。于是客户端与服务端开始用Key2进行对称加密的通信。
你还有什么不理解的呢?欢迎下方评论。
本文参考资料及图片来源:
https://www.cnblogs.com/labimeilexin/p/7350448.html
https://blog.csdn.net/bjweimengshu/article/details/87706654
https://blog.csdn.net/luweicheng24/article/details/80579731
https://www.jianshu.com/p/14cd2c9d2cd2
https://blog.csdn.net/love_hot_girl/article/details/81164279
是时候理解下HTTPS的原理及流程了的更多相关文章
- 通过一个小故事,理解 HTTPS 工作原理
本文摘录参考: 细说 CA 和证书(主要讲解 CA 的使用) 数字签名是什么?(简单理解原理) 深入浅出 HTTPS 工作原理(深入理解原理) HTTP 协议由于是明文传送,所以存在三大风险: 1.被 ...
- 理解 HTTPS 工作原理(公钥、私钥、签名、数字证书、加密、认证)(转)
本文摘录参考: 细说 CA 和证书(主要讲解 CA 的使用) 数字签名是什么?(简单理解原理) 深入浅出 HTTPS 工作原理(深入理解原理) HTTP 协议由于是明文传送,所以存在三大风险: 1.被 ...
- HTTPS工作原理
HTTPS是什么 HTTPS全称为Hypertext Transfer Protocol over Secure Socket Layer,及以安全为目标的HTTP通道,简单说就是HTTP的安全版本. ...
- 网络数据传输安全及SSH与HTTPS工作原理
本节内容 网络数据传输安全概述 数据加密算法分类 SSH工作原理 HTTPS工作原理 参考资料 个人一直在努力推动git在公司内部的普及和使用,前些日子在公司内部做了一次分享课,给大家介绍了下项目发布 ...
- 深入浅出HTTPS工作原理(转载)
转载自: https://blog.csdn.net/wangtaomtk/article/details/80917081 深入浅出HTTPS工作原理 HTTP协议由于是明文传送,所以存在三大风险: ...
- 理解java容器底层原理--手动实现HashMap
HashMap结构 HashMap的底层是数组+链表,百度百科找了张图: 先写个链表节点的类 package com.xzlf.collection2; public class Node { int ...
- [diango]理解django视图工作原理
前言:正确理解django视图view,模型model,模板的概念及其之间的关联关系,才能快速学习并上手使用django制作网页 本文主要讲解自己在学习django后对视图view的理解 在进入正文之 ...
- HTTPS实现原理
HTTPS实现原理 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版 ...
- ch01.深入理解C#委托及原理(转)
ch01..深入理解C#委托及原理_<没有控件的ASPDONET> 一.委托 设想,如果我们写了一个厨师做菜方法用来做菜,里面有 拿菜.切菜.配菜.炒菜 四个环节,但编写此方法代码的人想让 ...
随机推荐
- 单元测试过多,导致The configured user limit (128) on the number of inotify instances has been reached.
最近在一个asp.net core web项目中使用TDD的方式开发,结果单元测试超过128个之后,在CI中报错了:"The configured user limit (128) on t ...
- 做自己的CEO
目录 前言 做自己的CEO 做自己的CEO是指什么 为什么要做自己的CEO 如何做自己的CEO 定义自己的愿景.使命和价值观 愿景 (Vision) 使命 (Mission) 价值观 (Values) ...
- Java相关资料分享(视频+电子书籍)
正所谓“授人以鱼不如授人以渔”,你们想要的Java学习资料来啦!不管你是学生,还是已经步入职场的同行,希望你们都要珍惜眼前的学习机会,奋斗没有终点,知识永不过时. 关注底下的公众号,获取百度网盘提取码 ...
- vs 2017
Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Professional: KBJFW-NXHK6-W4WJM-CRMQB-G3CDH
- mac电脑 上强大的RAW图像处理工具 ——RAW Power
苹果电脑曾经有一款名为Aperture的照片处理应用,最终因为苹果软件策略的更好与升级,这款应用已经被苹果砍掉.但Aperture的开发者们并未放弃这款应用,在Mac OS上推出了一款名为RAW Po ...
- python进程和线程(六)
协程 协程,又称微线程,纤程.英文名Coroutine.顾名思义,协程是协作式的,也就是非抢占式的程序(线程是抢占式的).协程的关键字是yield,一看到这个就想到了生成器对不对?那就顺便回顾一下生成 ...
- 记一次工作失误,openresty报502错误
调试落地项目,代理跳转接口报502错误. 一开始认为阿里云tomcat有误,后面发现别的地址代理跳转有效. 开始配置跳转地址,一直折腾半天不好使.后面才知道,应用服务器和数据库服务器是分开部署的.一直 ...
- was cached in the local repository, resolution will not be reattempted until the update interval of fintech has elapsed or updates are forced
今天使用命令mvn compile编译maven项目时提示错误信息,错误信息如下: [ERROR] Failed to execute goal on project <project_name ...
- 图解TCP三次握手
参考:https://blog.csdn.net/u012804886/article/details/80998114
- Springboot整合Elastic-Job(二)
上文我们讲到Springboot整合Elastic-Job整合的demo,只是简单的实现了主要功能.本文在上文基础上,进行新的调整. 事件追踪 Elastic-Job提供了事件追踪功能,可通过事件订阅 ...