HTTPS(超文本传输安全协议)是一种以安全为基础的HTTP传输通道。

在了解HTTPS之前,我们首先来认识一下HTTP:

HTTP(超文本传输协议),HTTP是tcp/ip组中的协议之一,也是互联网上应用最为广泛的协议之一,所有的WWW(万维网)文件都必须遵循这个标准。而设计HTTP协议的最终目的是用来在互联网上传输HTML文件。

HTTP协议的应用非常的广泛,但是却在一些领域存在着很大的安全缺陷,因为HTTP协议在文件的传输过程中是以明文的方式传输的,并且不会验证消息的完整性,这就决定了HTTP协议不能用来传输一些隐私的信息,比如密码,信用卡账号等。

这就说明HTTP协议在网络通信中是不够的安全的,因为客户端与服务器之间会经过无数的互联网用户,而这些用户都可以在拦截到传输的数据,而数据又是以明文的方式传输的,所以其他人可以轻松地读取到你所传输的消息。因为HTTP也不会验证消息的完整性,所以黑客也可以通过“中间人”的方法来实施网络攻击。

所以我们在数据传输的过程中需要一种安全的协议来保证数据的安全,即HTTPS协议。

HTTPS(超文本传输安全协议),HTTPS是在HTTP协议的基础上增加了安全的属性,HTTPS通过SSL/TLS(安全套阶层)来加密数据包,SSL再通过数字证书来验证服务器的身份,以此来实现数据在客户端到服务器之间的传输安全。

什么意思呢,通俗点理解就是HTTPS通过数据加密和身份验证的方法解决了HTTP在消息传输过程中不安全的问题。那HTTPS协议在数据的传输过程中又是怎么进行加密和身份验证的呢?首先我们来了解一下两种加密方式:对称加密和非对称加密。

对称加密:有一段秘钥,能通过它来加密一段信息,形成一段密文,而这段密文是不能读取的,想要读取这段密文就需要通过加密它的秘钥来解密,还原成原始信息。就是一个门只能用一把钥匙来反锁和打开。

用对称加密能解决消息传输中的安全问题吗?很显然是不能的,因为对称加密进行加密和解密需要用到相同的秘钥,而这把秘钥无论是由客户端产生,还是由服务器产生都需要将这把秘钥传送给对方,这样对方才能解密你所传输的密文,但是,秘钥是需要传送给对方的,也就是说秘钥同样在传输的过程中是能够被拦截的,除非能够直接把秘钥送到对方而不经过网络传输,很显然这样是不现实的,所以对称加密并不能解决数据传输中的安全问题。那我们再来看看非对称加密。

非对称加密:有一个公钥和与之配对的私钥,用公钥加密的数据只能用私钥来进行解密,使用私钥加密的数据只能通过私钥进行解密。

那使用非对称加密能解决数据传输过程中的安全问题吗?很显然也是不行的,与对称加密一样,产生秘钥的一方需要将公钥传给对方,双方才能以这个秘钥为基础来进行通信,那在传输的过程中黑客仍然能够截取到所传输的公钥,客户端通过公钥加密数据发送给服务器,而通过公钥加密的数据只能用私钥解密,但黑客只有公钥,所以从客户端发送给服务器的消息可以认为是安全的,它不会被轻易读取,但是服务器用私钥加密传送给客户端的消息就不够安全了,因为黑客和客户端都拥有公钥,都可以对服务器发送的消息进行解密。所以用对称加密的方法只能解决单向的数据加密问题,并且消息仍是没有验证其完整性和真实性的,黑客仍然可以通过中间人攻击,所以非对称加密也不够安全。

对称加密+非对称加密:问题解决。

客户端拥有秘钥A,服务器拥有公钥B和私钥C,首先,客户端向服务器发送请求,服务器接到请求,响应请求并把它的公钥B传给客户端,客户端接收到公钥B后用公钥B加密秘钥A,形成一段密文,然后把密文传给服务器,而公钥加密的密文只能用私钥解密,但我们只传输过公钥,所以只有服务器拥有私钥,能够解密这段密文得到秘钥A,这样就只有客户端和服务器这个秘钥A了,中间没有任何人拥有秘钥A,然后客户端和服务器的通信就可以通过秘钥A来进行加密解密,这样就保证了数据传输过程中的加密问题。

但是这样就能保证数据传输的安全了吗?并不能,为什么?因为没有验证消息的真实性。这样黑客是不是仍然可以通过中间人攻击获取到秘钥?

客户端向服务器发送请求,然后服务器响应请求并返回公钥,这时黑客截取到公钥,然后自己生成一对公私钥,并把自己生成的公钥传给客户端,客户端无法验证其身份,误认为是服务器,就用黑客的公钥加密自己的秘钥,并把形成的密文返回给黑客,黑客用自己的私钥解密就得到了客户端的秘钥,再用截取到服务器的公钥加密客户端的秘钥,并将其发送给服务器,服务器用私钥解密得到秘钥,然后客户端服务器正常通信,但是黑客也有秘钥,这样数据仍然很危险。

所以只需要对服务器的响应进行身份认证就能解决身份冒用的问题了。怎么解决呢?--数字证书。

数字证书:数字证书由可信任的第三方颁发,相当于一个身份证,可以验证服务器的身份。数字证书包含了证书持有者的信息和公钥信息。

OK!所有问题都解决了!

HTTPS(超文本传输安全协议)使用HTTP进行通信,但利用SSL/TLS来加密数据包,HTTPS的安全基础是SSL(安全套接层),为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL通过证书来验证服务器的身份,并为浏览器和服务器之间的信息传输进行加密。HTTPS(超文本传输安全协议)使用HTTP进行通信,但利用SSL/TLS来加密数据包,HTTPS的安全基础是SSL(安全套接层),为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL通过证书来验证服务器的身份,并为浏览器和服务器之间的信息传输进行加密。HTTPS(超文本传输安全协议)使用HTTP进行通信,但利用SSL/TLS来加密数据包,HTTPS的安全基础是SSL(安全套接层),为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL通过证书来验证服务器的身份,并为浏览器和服务器之间的信息传输进行加密。

HTTPS原理,三分钟轻松搞懂相关推荐

  1. Wps格式怎么转换成word,只要三分钟轻松搞定

    Wps格式怎么转换成word?现如今使用较多的两款文件编辑工具就是wps和word.每个人都有自己的喜好,自己的操作习惯.对于习惯使用word的人来说,用起wps来就十分的别扭.这样也会影响到学习与工 ...

  2. 十分钟轻松搞懂CSS的五大定位方式!(建议收藏)

    文章目录 一.CSS之position定位方式 1.static 2.relative 3.absolute(脱离正常文档流) 4.fixed(脱离正常文档流) 5.sticky 二.z-index ...

  3. 视频剪辑配音怎么弄?三分钟轻松搞定短视频配音!

    想必大家闲暇时光的消遣方式和我一样,主要是刷"短视频"吧?短视频作为当下势头正热的一股潮流,它不仅改变我们获取新闻资讯的方式,也让许多小伙伴萌生了做短视频的想法,有想法那定然要掌握 ...

  4. php service原理,轻松搞懂WebService工作原理

    用更简单的方式给大家谈谈WebService,让你更快更容易理解,希望对初学者有所帮助. WebService是基于网络的.分布式的模块化组件. 我们直接来看WebService的一个简易工作流程: ...

  5. 10分钟,搞懂引力波

    10分钟,搞懂引力波   https://baijiahao.baidu.com/s?id=1581560461270739279&wfr=spider&for=pc 汉周读书 17- ...

  6. 【机器学习sklearn】两个例子轻松搞懂核密度估计KernelDensity

    前言 作业中遇到了需要使用KernelDensity的情况,但是网上的资料参差不齐,找了不短的时间却失望而归,最后还是靠着自己的理解才弄懂sklearn这个函数的使用,特此纪念. [机器学习sklea ...

  7. proe常用c语言语句,带你轻松搞懂Proe条件语句

    原标题:带你轻松搞懂Proe条件语句 本文通过几个简单的例子介绍Proe中的条件语句,希望对你能有所帮助.Proe中使用的IF条件语句和C语言中的IF语句原理是一样的,其结构稍有差别.首先我们了解一下 ...

  8. png照片太大怎么压缩?三步轻松搞定

    png属于无损压缩图片格式,所以文件的体积会比较的大,这时候就需要将图片进行压缩,压缩图网站中的png压缩功能就可以实现,三步轻松搞定.步骤如下: 1.首先上传你需要压缩的图片. 2.然后选择需要的尺 ...

  9. 翻译: 漫画HTTPS原理三 浏览器和互联网之间的秘密握手

    漫画HTTPS原理五部曲 翻译: 漫画HTTPS原理一 为什么我们需要HTTPS 翻译: 漫画HTTPS原理二 了解对称和非对称加密 翻译: 漫画HTTPS原理三 浏览器和互联网之间的秘密握手 翻译: ...

  10. 【腾讯TMQ】30分钟轻松搞定代码瘦身

    导语 当一个新的产品想要复用一个旧的产品的逻辑的时候,是直接把全盘的代码copy过去就可以了吗?站在功能的角度当然没问题,但是这对于新产品是相当臃肿的,因为一些它根本不会使用的功能代码也包含在里面.同 ...

最新文章

  1. 三摄正普及,四摄在路上?谷歌逆天AI算法,只做单摄虚化
  2. .net 从txt中读取行数据_Python读取txt数据并绘图
  3. JDeveloper开发环境设置
  4. 伊利诺伊大学厄巴纳-香槟分校
  5. 壁纸引擎java运行库_Microsoft Windows Desktop Runtime v5.0.0 桌面程序运行库(含常规运行库)...
  6. 没有传说,也没有神话,我只相信我自己
  7. 线程同步——内核对象实现线程同步——等待函数
  8. 通过一个最简单的例子,理解Angular rxjs里的Observable对象的pipe方法
  9. python主题建模_在PYTHON中进行主题模型LDA分析
  10. 微信小程序抽奖转盘实现案例
  11. php抓取快照,PHP抓屏函数实现屏幕快照代码分享
  12. script脚本阻塞的探究、异步属性async和defer的区别
  13. 【CSS3】一些听课记录(样例代码)
  14. 税点怎么用计算机算出来,2017个税计算器具体要怎么算
  15. 微信小程序 接入第三方地图
  16. 今天会是有offer的一天么:计算机网络面试问题集锦
  17. 德语语法笔记——冠词的用法
  18. onedrive手机登录出现 无法登录,管理员需要为你分配可执行此操作的SharePoint和OneDrive许可证
  19. SCJP认证复习——经典题库
  20. 牛客网sql练习题解(12-21)

热门文章

  1. kali自定义分辨率
  2. Spark、Hadoop大数据平台搭建
  3. 芯片数据分析步骤5 过滤探针
  4. 解决eclipse安装Darkest Dark Theme报错
  5. php 公众号 群发,php实现微信公众号无限群发
  6. 《大数据之路:阿里巴巴大数据实践》-第1篇 数据技术篇 -第3章数据同步
  7. kd树的根节点_KD树 - Deribs4 - 博客园
  8. 使用C#的Winform实现图文识别OCR及截图功能
  9. msdia80.dll-重装系统后有使用64位win7操作系统的同学注意!
  10. 图像的三次B样条插值原理与C++实现