一、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协议更加安全相关推荐

  1. POP3 SMTP DNS DHCP UDP HTTP FTP HTTPS Telnet WIDOWS TFTP 常用协议和默认端口,计算机网络的很需要!!!

    POP3协议用于接收或下载邮件,默认端口110 SMTP协议用于传输或发送邮件,默认端口25 DNS是域名解析的系统,默认端口53 DHCP是动态主机配置协议,默认端口67(服务器) 68(客户) D ...

  2. https协议及与http协议的比较

    一.HTTP和HTTPS的基本概念 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器 ...

  3. HTTPS 协议到底比 HTTP 协议多些什么?

    来源:杰哥的IT之旅 作者:阿拉斯加 最近卷了一篇 HTTP 协议的相关知识,大家可以一起来看一下~ HTTP 简介 HTTP 协议是 Hyper Text Transfer Protocol(超文本 ...

  4. HTTPS 中双向认证SSL 协议的具体过程

    HTTPS 中双向认证SSL 协议的具体过程: 这里总结为详细的步骤: ① 浏览器发送一个连接请求给安全服务器. ② 服务器将自己的证书,以及同证书相关的信息发送给客户浏览器. ③ 客户浏览器检查服务 ...

  5. 网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解

    目录 前文链接(系列助学, 也为后文学习做铺垫, 可按需读取) 一. 再谈HTTP再理解 二. HTTP对比学习HTTPS HTTP和HTTPS的区别如下: 三.TCP协议  (三次握手四次挥手细节过 ...

  6. HTTP、HTTPS、TCP、UDP 协议基础知识

    这里写目录标题 1. HTTP和HTTPS(应用层) 1.1 HTTP HTTP 是什么 HTTP 优缺点 如何解决 HTTP 无状态性的问题 1.2 HTTPS HTTPS的工作流程 1.3 HTT ...

  7. RTSP、HTTP、HTTPS、SDP四种协议详解

    RTSP.HTTP.HTTPS.SDP四种协议详解 从这篇开始我们将进入流媒体的环节,流媒体在android中有nuplayer来实现的,在开始讲解android流媒体前,我们先来讲讲流媒体传输协议, ...

  8. HTTP与HTTPS的区别及SSL协议

    超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂 ...

  9. HTTP协议,HTTPS协议,SSL/TLS协议概述

    HTTP协议,HTTPS协议,SSL/TLS协议概述 1. 什么是HTTP协议   HTTP(Hyper Text Transfer Protocol,HTTP)协议超文本传输协议,是一个基于请求与响 ...

  10. tomcat 将http协议改为https协议,Websocket请求ws协议修改为wss协议

    tomcat 将http协议改为https协议,Websocket请求ws协议修改为wss协议 一. 说明 WS协议和WSS协议两个均是WebSocket协议的SCHEM,两者一个是非安全的,一个是安 ...

最新文章

  1. apache prefork和worker
  2. 【机器学习基础】数学推导+纯Python实现机器学习算法27:EM算法
  3. 如何解决和异地女朋友一起看电影的需求?(内附源码)
  4. matlab ,python,c++关于格式化输出数字的表达
  5. Java开发常用命名规范
  6. v140平台工具集与v110工具集选择
  7. 本硕一致计算机科学与技术专业介绍,哈尔滨理工大学计算机科学与技术专业介绍...
  8. 枚举类型转换成字符串
  9. shortcut switch in terminal start pos end pos
  10. oracle中sql语句 日期加减,SQL语句里对日期进行相加减
  11. Android开发之AudioManager(音频管理器)详解
  12. 配置vue,vue脚手架的应用(老版本)
  13. 测试了MySQL实时监控工具Nero Profile SQL
  14. 最强大的数据恢复软件
  15. 通过举例彻底搞懂Matlab中max函数和min函数的用法(求最大值和最小值)
  16. 未来五年,保险平权的最大机会来了
  17. 学C语言的大佬们帮帮小弟吧小弟感激不尽
  18. Could not autowire. No beans of ‘UserMapper‘ type found.
  19. 所以为什么要学ps?
  20. 电子元器件B2B商城系统开发:赋能企业构建进销存标准化流程实例

热门文章

  1. 队列queue的详细讲解
  2. java发送hotmail邮件,使用javamail将电子邮件发送到hotmail时遇到问题
  3. 2021-08-10 C3P0连接池
  4. git 设置用户只需要输入一次账号密码
  5. Kubernetes 小白学习笔记(31)--kubernetes云原生应用开发-istio架构和安装
  6. phalcon index.php,除了Phalcon php中的indexAction之外,无法调用indexController的动作
  7. hwd分别是长宽高_丰田重磅新RAV4荣放!不仅颜值高了 配置还再升级,仅18万
  8. java 线程池 hash_java线程池实例 - Hashsound的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. 手机5g什么时候普及_5G手机什么时间普及,现在买4G手机划算吗?
  10. JS Array 对象常用方法 unshift / push 、shift / pop 、filter() / map()