计算机网络之HTTPS协议
• HTTPS协议是以安全为目的的HTTP通道,比单纯的HTTP协议更安全,相当于HTTP的升级版。
• HTTPS的安全基础为SSL,就是在HTTP下加入SSL层,意思是HTTPS通过安全传输机制进行数据传输,这种机制可以保护网络发送的所有数据的隐秘性和完整性,降低非侵入性拦截攻击的可能性。
HTTPS是在HTTP的基础上进行构建的,所以他们的基本工作原理是相同的,但他们还是有一些区别的
实现过程
1.浏览器发送ClientHello
其中包含了浏览器支持的TSL协议的版本,支持的加密算法,压缩算法等。同时浏览器端生成一个随机数,一起发送给服务器。
2.服务器返回ServerHello
(1)确认TSL协议版本,确定一个双方都支持的加密算法
(2)发送服务器的证书,发送一个服务器端生成的随机数。(如果访问的网站出于安全性的考虑,要求访问者也提供证书的话会在这一步发出请求。)
3.浏览器拿到证书后验证该证书是否是可信任的,如果证书可信任,那么其中的公钥也是可信的。
(1)浏览器生成第三个随机数 pre key,将pre key使用服务器的公钥加密,发送回服务器
(2)编码改变通知,告知服务器接下来将使用选择的加密算法进行加密通信
(3)将此前发送过的所有信息的摘要加密后发送给服务器,供服务器进行加密通道验证。最后发出客户端握手阶段结束信号。
4.服务器接收到对方发来的pre key后,此时通信双方都拥有了三个随机数(前两个是明文发送的,第三个pre key 是非对称加密发送的),由这三个随机数双方可以计算得到两个相同的对称密钥,服务器使用这一密钥验证加密通道后,向客户端发送服务器发出:
(1)编码改变通知:告知接下来的通信将使用加密通信
(2)服务器握手阶段结束信号。
至此握手阶段结束,双方接下来使用普通的http协议进行通信,由三个随机数生成的对称密钥加密内容。
1.整个过程中靠证书体系为通信双方提供身份信任。
2.通信双方共生成了三个随机数能最大限度地避免伪随机,保证了生成的对称密钥难以被暴力破解。
3.第三个随机数的传输使用非对称加密,保证了双方对称密钥的私密性。
4.整个通信中,只有pre key的发送使用了非对称加密,之后的加密通信都采用对称加密,最大限度地保证了通信效率。
计算机网络之HTTPS协议的更多相关文章
- 【计算机网络】HTTPS协议的传输细节及过程分析
		1. 介绍一下HTTPS协议? 1.1 基本概念 http默认采用80作为通讯端口,对于传输采用不加密的方式,https默认采用443,对于传输的数据进行加密传输. 1.2 密码学基础 明文: 明文指 ... 
- HTTP和HTTPS协议
		网络协议为计算机网络中进行数据交换而建立的规则.标准或约定的集合. URL:就是网址.http://www.hcios.com/archives/1547 URL就是资源的地址,位置.互联网上的每一个 ... 
- HTTP和HTTPS协议,看一篇就够了
		https://blog.csdn.net/xiaoming100001/article/details/81109617 因为http请求是无状态的,所以需要三次握手.四次挥手来确定状态. 大纲 这 ... 
- 计算机网络七层协议模型  “开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)
		计算机网络七层协议模型 作者:Ryan 时间:2013年10月7日 一.物理层(Physical Layer) OSI模型的最低层或第一层,规定了激活.维持.关闭通信端点之间的机械特性.电气特性 ... 
- 【网络知识之三】HTTPS协议
		HTTPS是身披SSL外壳的HTTP.HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包.HTTPS使用的主要目的是提供对网站服务器的 ... 
- HTTP和HTTPS协议,详解
		大纲 一.前言: 先来观察这两张图,第一张访问域名http://www.12306.cn,谷歌浏览器提示不安全链接,第二张是https://kyfw.12306.cn/otn/regist/init, ... 
- 网站使用https协议
		了解https HTTPS 是以安全为目标的 HTTP 通道,即 HTTP 下加入 SSL 加密层.HTTPS 不同于 HTTP 的端口,HTTP默认端口为80,HTTPS默认端口为443. SSL ... 
- 服务器开启https协议
		开启Tomcat https服务 发布企业级应用的时候遇到一个问题,就是IOS7.1之后app的下载地址URL必须是https开头的协议,所以服务器必须支持https协议. 实验环境:Mac OSX ... 
- 【转】Tomcat启用HTTPS协议配置过程
		转载请注明出处: http://blog.csdn.net/gane_cheng/article/details/53001846 http://www.ganecheng.tech/blog/530 ... 
随机推荐
- Rocket - tilelink - AtomicAutomata
			https://mp.weixin.qq.com/s/O7VTHqpCFNJQi3EpucXkIw 简单介绍AtomicAutomata的实现.(细节问题太多,恕不完全表述.)  1. ... 
- Chisel3 - model - UserModule commands
			https://mp.weixin.qq.com/s/0ECca6XyFyEri0B4ckOZ4A 介绍UserModule类中,如何管理构建硬件模型所需的命令.  1. _comma ... 
- Chisel3 - util - MixedVec
			https://mp.weixin.qq.com/s/mO648yx4_ZRedXSWX4Gj2g 可以容纳不同类型的变量的向量. 参考链接: https://github.com/freec ... 
- Username for 'https://github.com': remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/GLSmile/pythontest.git/' 问题
			使用$ git push -u origin master 进行同步时,提示输入用户名和密码,但是我输入正确的信息后,仍然 会报Username for 'https://github.com': r ... 
- Java并发编程 (四) 线程安全性
			个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.线程安全性-原子性-atomic-1 1.线程安全性 定义: 当某个线程访问某个类时,不管运行时环境 ... 
- Java实现蓝桥杯 算法提高 八皇后 改
			**算法提高 8皇后·改** 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大. 输入格式 一个8*8的棋 ... 
- Java实现 LeetCode 715  Range 模块(选范围)
			715. Range 模块 Range 模块是跟踪数字范围的模块.你的任务是以一种有效的方式设计和实现以下接口. addRange(int left, int right) 添加半开区间 [left, ... 
- Java实现 蓝桥杯 算法提高 矩形靶
			试题 算法提高 矩形靶 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 在矩形的世界里任何事物都是矩形的,矩形的枪靶,甚至矩形的子弹.现在给你一张NM的枪靶,同时告诉你子弹的大小为( ... 
- 从linux源码看socket(tcp)的timeout
			从linux源码看socket(tcp)的timeout 前言 网络编程中超时时间是一个重要但又容易被忽略的问题,对其的设置需要仔细斟酌.在经历了数次物理机宕机之后,笔者详细的考察了在网络编程(tcp ... 
- 关于领域驱动设计 DDD(Domain-Driven Design)
			以下旨在 理解DDD. 1. 什么是领域? 妈妈好是做母婴新零售的产品,应该属于电商平台,那么电商平台就是一个领域. 同一个领域的系统都有相同的核心业务. eg: 电商领域都有:商品浏览.购物 ... 
