写一篇最好懂的HTTPS讲解

你们早上好,有段时间没更新文章了。面试

其实疫情期间在家呆了一个多月的时间不能出门,时间却是挺多的,我也利用这段时间写了几篇新文章。但因为新写的这些文章大都是配合着新书中的内容的,受疫情的影响我写的新书迟迟不能出版,致使这些文章也没法发布,等得我好是焦急。但愿疫情早日结束,你们都能快点恢复到正常的生活当中。算法

那么今天先发布一篇和Android无关的技术文章。浏览器

https这项技术如今已经应用得很是普遍了。随着苹果、Google等各大互联网领头企业纷纷在本身的操做系统、浏览器等主流产品中强制要求使用https,http的淘汰也正式进入了倒计时。安全

其实https对于客户端开发人员来讲并无什么须要特别注意的地方,由于代码和写http请求时并无什么两样。但也正是由于这个缘由,致使许多客户端开发人员对https并不了解,只知道它是安全的加密网络传输,对其具体的工做原理却一无所知。服务器

那么客户端开发人员到底需不须要了解https呢?我认为仍是有必定必要的,掌握了https的工做原理能够帮助你更加有效地理解并解决一些工做当中遇到的问题。另外,有不少公司也喜欢在面试的时候问一些https相关的问题,若是你彻底不了解的话,在这里就很容易会被刷掉。网络

https://plsshjz.edublogs.orgssh

我本身当初在学习https的时候查阅了不少网上的资料,可是绝大多数的文章写得都不是那么易懂,让很多人对https产生了一些畏惧。我认为要想理解https的工做原理,并不必定非得要知道它方方面面的细节(网上许多文章就是由于写得太细,致使很难懂),其实只要掌握它的总体工做流程,以及搞清楚为何它可以保证网络通讯的安全就能够了。所以,今天我就给你们带来一篇最好懂的https讲解。学习

在正式开始讲解https以前咱们还得先搞清楚两个概念:什么是对称加密,以及什么是非对称加密?这两个概念都是属于加密学中的基础知识,其实很是好懂。网站

 

对称加密比较简单,就是客户端和服务器共用同一个密钥,该密钥能够用于加密一段内容,同时也能够用于解密这段内容。对称加密的优势是加解密效率高,可是在安全性方面可能存在一些问题,由于密钥存放在客户端有被窃取的风险。对称加密的表明算法有:AES、DES等。加密

http://plsshjz.wikidot.com

而非对称加密则要复杂一点,它将密钥分红了两种:公钥和私钥。公钥一般存放在客户端,私钥一般存放在服务器。使用公钥加密的数据只有用私钥才能解密,反过来使用私钥加密的数据也只有用公钥才能解密。非对称加密的优势是安全性更高,由于客户端发送给服务器的加密信息只有用服务器的私钥才能解密,所以不用担忧被别人破解,但缺点是加解密的效率相比于对称加密要差不少。非对称加密的表明算法有:RSA、ElGamal等。

掌握了这两个概念以后,咱们就能够开始学习https了。这里先提早抛出一个问题,同时也是面试时可能常常会问到的一个问题:https为了保证数据传输的安全,使用的是对称加密仍是非对称加密呢?

学完本篇文章以后你就能知道答案了。

 

首先咱们来看一下,传统的http方式在网络传输时存在哪些问题。

因为咱们在传输数据时信息都是明文的,所以很容易出现数据被监听和窃取的状况。


另外,传输的数据还有可能被一些别有用心的人篡改,致使浏览器与网站收发的内容不一致。示意图以下:


也就是说,使用http传输数据至少存在着数据被监听以及数据被篡改这两大风险,所以http是一种不安全的传输协议。

那么解决方案你们确定都知道是使用https,可是咱们先尝试着本身思考一下该如何保证http传输的安全性,进而也就能一步步地理解https的工做原理了。

既然数据以明文的形式在网络上传输是不安全的,那么咱们显然要对数据进行加密才行。刚才提到了,加密方式主要有两种,对称加密和非对称加密。对称加密的优势是加解密效率高,而咱们在网络上传输数据是很是讲究效率的,所以这里很明显应该使用对称加密。

因为咱们在网络上传输的数据都是密文,因此不怕被监听者获取到,由于他们没法得知原文是什么。而浏览器收到密文以后,只须要使用和网站相同的密钥来对数据进行解密就能够了。

相关文章
相关标签/搜索