https协议为什么比http协议更加安全
一、http协议
http协议是一种网络传输协议,规定了浏览器和服务器之间的通信方式。位于网络模型中的应用层。(盗图小灰。ヾ(◍°∇°◍)ノ゙)
但是,它的信息传输全部是以明文方式,不够安全,很容易被人拦截,篡改传输内容。
篡改后:
二、使用对称加密方式
为了保证通信的安全,浏览器和服务之间约定使用一种对称加密的方式通信。在信息发送之前,使用相同的秘钥对数据进行加密和解密。
这种方式的数据虽然在网络中是以密文呈现,但是在首次发送秘钥时,确实以明文方式发送,很容易被人截取,然后解密通信数据。仍然存在很大的安全隐患,所以一般采用非对称加密方式来发送对称加密的秘钥。
三、使用非对称加密方式
非对称加密包含一组秘钥,公钥和私钥,明文可以用公钥加密,用私钥解密,并且只能用私钥解密,不能用公钥解密;也可以用私钥加密,公钥解密,并且只能有公钥解密。
如下过程实现发送对称加密秘钥:
1、浏览器生成一个随机秘钥。
2、浏览器向服务器请求公钥。
3、服务器向浏览器发送它的公钥。
4、浏览器接收服务器发送的公钥,并使用公钥加密随机生成的对称加密秘钥,发送给服务器。
5、服务器接收浏览器发送的数据,用自身私钥解密,得到,对称加密秘钥。
6、至此,浏览器和服务器可以使用对称加密秘钥相互通信。
但是,这种方式仍然存在安全隐患:即在第3步和第4步之间,中间人在服务器发送公钥给浏览器时,截断数据,并修改成自己的公钥发送给浏览器。这时浏览器无法验证公钥的准确性。只会使用接收到的公钥把对称秘钥加密,发送出去。这时,中间人截断数据,使用自己的私钥解密,得到对称秘钥,并使用服务器的公钥重新加密对称秘钥,发送给服务器。然后,浏览器和服务器在毫不知情的情况下,使用对称秘钥进行通信。但中间人由于已经掌握了对称秘钥,所以可以轻松解密通信数据。
这里很明显存在一个身份验证的问题,只要能让浏览器验证得到的公钥来源,对称秘钥就可以安全发送。这就需要数字证书了。
四、使用https数字证书保证数据安全
我们已经知道,非对称加密需要身份验证,那么数字证书如何验证身份。
首先,数字证书是第三方机构,给网站办法的唯一身份证明,就像身份证,该证书中包含一个重要的信息,数字签名,下图中的指纹即时数字签名。指纹是使用服务端网址等信息,通过签名算法,计算出hash值,并使用第三发机构的私钥加密生成的。证书中,同时还会保存有颁发证书的机构名称,即第三发机构名称、网站的公钥、有效期等信息。
当浏览器请求公钥时,服务端不单单发送公钥,而是发送包含公钥的数字证书。
浏览器如何解密:浏览器已经维护了所有知名的第三发机构,在接收到证书时
1、首先查看是否在有效期内,若失效则不再发送随机对称秘钥;
2、找到第三方机构名称,通过对照找到第三发机构公钥,解密数字签名,得到一个hash1值。
3、通过同样的方式,根据服务端网址等信息,使用签名算法,生成hash2.
4、将hash1和hash2,对比,如果相同,则身份验证成功。
5、身份验证成功后,使用同样的机构公钥解密网站公钥。
6、浏览器使用解密后的公钥发送对称秘钥给服务端。
补充: 1、数字签名和网站公钥都是经过机构秘钥加密过的,所以数字签名验证成功,即可保证网站公钥的准确性。
2、如果中间人将数字证书换成自己的数字证书,则会因为网站地址不同而导致验证数字签名失败。
五、SSL安全层
https的主体思想是在,tcp/ip模型上加了ssl层,上述的安全验证就是载ssl层完成的。
转载于:https://www.cnblogs.com/whalesea/p/10407996.html
https协议为什么比http协议更加安全相关推荐
- POP3 SMTP DNS DHCP UDP HTTP FTP HTTPS Telnet WIDOWS TFTP 常用协议和默认端口,计算机网络的很需要!!!
POP3协议用于接收或下载邮件,默认端口110 SMTP协议用于传输或发送邮件,默认端口25 DNS是域名解析的系统,默认端口53 DHCP是动态主机配置协议,默认端口67(服务器) 68(客户) D ...
- https协议及与http协议的比较
一.HTTP和HTTPS的基本概念 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器 ...
- HTTPS 协议到底比 HTTP 协议多些什么?
来源:杰哥的IT之旅 作者:阿拉斯加 最近卷了一篇 HTTP 协议的相关知识,大家可以一起来看一下~ HTTP 简介 HTTP 协议是 Hyper Text Transfer Protocol(超文本 ...
- HTTPS 中双向认证SSL 协议的具体过程
HTTPS 中双向认证SSL 协议的具体过程: 这里总结为详细的步骤: ① 浏览器发送一个连接请求给安全服务器. ② 服务器将自己的证书,以及同证书相关的信息发送给客户浏览器. ③ 客户浏览器检查服务 ...
- 网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解
目录 前文链接(系列助学, 也为后文学习做铺垫, 可按需读取) 一. 再谈HTTP再理解 二. HTTP对比学习HTTPS HTTP和HTTPS的区别如下: 三.TCP协议 (三次握手四次挥手细节过 ...
- HTTP、HTTPS、TCP、UDP 协议基础知识
这里写目录标题 1. HTTP和HTTPS(应用层) 1.1 HTTP HTTP 是什么 HTTP 优缺点 如何解决 HTTP 无状态性的问题 1.2 HTTPS HTTPS的工作流程 1.3 HTT ...
- RTSP、HTTP、HTTPS、SDP四种协议详解
RTSP.HTTP.HTTPS.SDP四种协议详解 从这篇开始我们将进入流媒体的环节,流媒体在android中有nuplayer来实现的,在开始讲解android流媒体前,我们先来讲讲流媒体传输协议, ...
- HTTP与HTTPS的区别及SSL协议
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂 ...
- HTTP协议,HTTPS协议,SSL/TLS协议概述
HTTP协议,HTTPS协议,SSL/TLS协议概述 1. 什么是HTTP协议 HTTP(Hyper Text Transfer Protocol,HTTP)协议超文本传输协议,是一个基于请求与响 ...
- tomcat 将http协议改为https协议,Websocket请求ws协议修改为wss协议
tomcat 将http协议改为https协议,Websocket请求ws协议修改为wss协议 一. 说明 WS协议和WSS协议两个均是WebSocket协议的SCHEM,两者一个是非安全的,一个是安 ...
最新文章
- apache prefork和worker
- 【机器学习基础】数学推导+纯Python实现机器学习算法27:EM算法
- 如何解决和异地女朋友一起看电影的需求?(内附源码)
- matlab ,python,c++关于格式化输出数字的表达
- Java开发常用命名规范
- v140平台工具集与v110工具集选择
- 本硕一致计算机科学与技术专业介绍,哈尔滨理工大学计算机科学与技术专业介绍...
- 枚举类型转换成字符串
- shortcut switch in terminal start pos end pos
- oracle中sql语句 日期加减,SQL语句里对日期进行相加减
- Android开发之AudioManager(音频管理器)详解
- 配置vue,vue脚手架的应用(老版本)
- 测试了MySQL实时监控工具Nero Profile SQL
- 最强大的数据恢复软件
- 通过举例彻底搞懂Matlab中max函数和min函数的用法(求最大值和最小值)
- 未来五年,保险平权的最大机会来了
- 学C语言的大佬们帮帮小弟吧小弟感激不尽
- Could not autowire. No beans of ‘UserMapper‘ type found.
- 所以为什么要学ps?
- 电子元器件B2B商城系统开发:赋能企业构建进销存标准化流程实例
热门文章
- 队列queue的详细讲解
- java发送hotmail邮件,使用javamail将电子邮件发送到hotmail时遇到问题
- 2021-08-10 C3P0连接池
- git 设置用户只需要输入一次账号密码
- Kubernetes 小白学习笔记(31)--kubernetes云原生应用开发-istio架构和安装
- phalcon index.php,除了Phalcon php中的indexAction之外,无法调用indexController的动作
- hwd分别是长宽高_丰田重磅新RAV4荣放!不仅颜值高了 配置还再升级,仅18万
- java 线程池 hash_java线程池实例 - Hashsound的个人空间 - OSCHINA - 中文开源技术交流社区...
- 手机5g什么时候普及_5G手机什么时间普及,现在买4G手机划算吗?
- JS Array 对象常用方法 unshift / push 、shift / pop 、filter() / map()