计算机网络之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 ...
随机推荐
- 经典卷积神经网络算法(3):VGG
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- (Java实现) 整数区间
一.题目描述 给n个区间,形式为[a, b],a和b均为整数,且a < b. 求一个最小的整数点的集合,使得每个区间至少2个不同的元素(整数点)属于这个集合. 求这个集合的元素个数. 输入 第1 ...
- C# Winform学习(六)
目标: 1.树型控件TreeView 2.列表视图控件ListView 一.树型控件 1.命名:tv开始 2.作用:用来显示有层次结构的数据 3.特点 1)允许有多个根节点 2)每个节点可以有多个子节 ...
- Java实现 蓝桥杯VIP 基础练习 完美的代价
package 蓝桥杯VIP; import java.util.Scanner; public class 完美的代价 { public static int sum = 0; public sta ...
- Java实现 蓝桥杯VIP 算法提高 能量项链
算法提高 能量项链 时间限制:1.0s 内存限制:256.0MB 问题描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记 ...
- Java实现二分查找(折半查找)
1 问题描述 首先,了解一下何为折半查找?此处,借用<算法设计与分析基础>第三版上一段文字介绍: 2 解决方案 2.1 递归法 package com.liuzhen.chapter4; ...
- java实现角谷步数
你听说过角谷猜想吗? 任意的正整数,比如 5, 我们从它开始,如下规则计算: 如果是偶数,则除以2,如果是奇数,则乘以3再加1. 如此循环,最终必会得到"1" ! 比如 5 的处理 ...
- 【Python源码剖析】对象模型概述
Python 是一门 面向对象 语言,实现了一个完整的面向对象体系,简洁而优雅. 与其他面向对象编程语言相比, Python 有自己独特的一面. 这让很多开发人员在学习 Python 时,多少有些无所 ...
- Flutter upgrade更新版本引发的无法启动调试APP的错误 target:kernel_snapshot failed”
前言 我的主机上的Flutter 本地的分支是在 beta,因为去年想尝鲜Flutter Web,所以一直没切回来stable分支. 早上打开VSCode,右下角弹出了Flutter upgrade的 ...
- YAML语法:
1.基本语法 k:(空格)v:表示一对键值对(空格必须有): 以空格的缩进来控制层级关系:只要是左对齐的一列数据,都是同一个层级的 server: port: 8081 path: /hello 属性 ...