通俗的理解https的工作原理 大牛讲解

 

outputo-20210604-174449-019-fkbg.png

HTTP本身是明文传输,不需要进行安全处理。例如用户在百度上搜索关键字,如“苹果手机”,中介人完全可以找到该信息,可能会骚扰用户。还有些用户用百度投诉,发现首页或结果页上有长广告,肯定是中间插入页的广告内容。若劫持技术低劣,用户甚至无法进入百度。

其中有些中介主要是指一些网络节点,如WIFI热点、防火墙、反向代理、缓存服务器等。使用者资料必须透过浏览器与百度伺服器传送。

根据HTTP协议,中间商可以随意嗅探用户搜索内容,窃取隐私,甚至篡改网页。但是,HTTPS是劫持事件的克星,而劫持事件可以被彻底而有效地防御。一般而言,HTTPS协议可以提供三个强大的特性来阻止上述劫持行为:

1.加密内容。从浏览器到百度服务器的内容都是以加密方式传输的,因此不能直接在中间查看原始内容。

二、身份证明。确保用户能够访问百度的服务,即使被抓到第三方网站,也会提醒用户不能访问百度的服务。

三、数据完整。避免内容被第三方伪造或篡夺。

HTTPS是如何工作的。

通过图片说明HTTPS是如何工作的。这位来自http://blog.csdn.net/sean_cd/aryle/details/6966130的网友很好的总结了HTTPS是如何工作的。在这篇文章的基础上,我将补充几点:

它的工作流程大致如下:

1.客户机发出HTTPS请求。

将一个HTTPS网址输入浏览器,然后连接到服务器端口443。要知道,在这个过程中,客户机会给服务器发送密文族文件,这是浏览器支持的一系列加密算法。

二、服务器配置。

服务器使用HTTPS协议必须具有一套数字证书,可自行生成或应用于组织。只有在客户端验证之后,不同的证书才可以被访问,并且受信任公司所申请的证书不会弹出提示页面。

这些证书实际上是一对公钥和私钥。私钥可以被理解为公钥是锁,而私钥是锁的关键。锁会把东西锁起来,但锁好以后,只有用这把锁的钥匙才能打开,才能看到被锁的东西。

正如前面提到的,客户机将发送密文族给服务器,服务器将从这些密文族中选择一个,例如百度:

RSA公钥加密算法用于区分证书签名与交换密钥,AES算法用于加密数据。对于GCM,应该用于确认信息。

三、转让证明。

该证书实际上是一个公共密钥,但它包含许多信息,如证书的权威、过期时间等。

4.解析客户端的证书。

此项工作由客户的TLS完成。第一,它将验证公钥是否有效,比如授权证书,过期时间等等。在发现异常时,弹出警告框,表明证书存在问题。若凭证没有问题,就会产生一个随机值,并以凭证加密该随机值。

留意上述「发现异常」。此证书将包含一个数字签名,该签名通过使用颁发机构的私有密钥对证书的公钥、名称和其他信息进行散列来加密并产生。客户机浏览器首先会找到根证书颁发机构。若有,则使用由根证书的公共金钥服务器颁发的证书。若不能正常使用,则表示证书是伪造的“异常”。

5.加密传输信息。

该部分通过证书加密的随机值进行传输,让服务器获取该随机值,然后客户机和服务器之间的通信就可以使用该随机值进行加密和传递。

6.服务器发送的信息。

通过私钥解密,服务器获得客户机发送的随机值。此时,非对称加密过程结束了,TLS认证和密钥协商是通过非对称加密实现的。使用该值来对内容进行对称加密。

7.加密传输信息。

这些是服务器加密后的随机值,可以在客户端恢复。

8.客户端对信息进行解密。

客户机使用先前生成的随机值向服务器发送一条信息,然后获取该信息的内容。在对称加密过程的最后,可以看到,对称加密是用来加密服务器向客户机发送的数据。即使是第三方监测数据,在整个过程中也不能做任何事情。

证明。

下面介绍上述流程中的一些细节。首先,第二点是关于证书的。该证书实际上是服务器的身份信息集。客户得到证书之后,首先要确认其合法性,例如颁发证书的机构是否合法,证书中包含的网址是否与访问的网址一致等等。当证书可信时,浏览器栏显示一个小锁,否则会提示您证书不可信。拿百度来说,浏览器上的可信证书应该是这样的。

分享:

相关推荐