美文网首页
【https】https是如何保证通讯安全的?

【https】https是如何保证通讯安全的?

作者: Bogon | 来源:发表于2021-09-20 01:00 被阅读0次

https 是在tcp与http之间添加了一层ssl(Secure Sockets Layer)层,俗称安全套接层。

理解https的安全传输需要先了解两种加密算法,因为在整个https通讯过程使用两种加密算法:

对称加密算法

非对称加密算法

非对称加密算法:非对称加密算法需要两个密钥:公开密钥和私有密钥. 公开密钥与私有密钥是一对的,这两个共同组成一个解钥,才能实现解密。

对称加密算法:简单来说就是加密与解密使用的密钥是一样的。

有了这两种算法做基础之后对后面的内容就好理解了,我们现在来一步一步揭开https的面纱。

先假设有两台计算机需要通信,它们的情况大致是这样:

如果不进行加密传输,裸传就是http传输了,很容易被拦截。

假设计算A与计算机B之间约定使用Key1=(2021)这个密钥对报文内容进行加解密,即发送方使用key1对待发送的内容进行加密处理,接收方使用key1对接收过来的内容进行解密处理,看似已经达到了安全传输的效果,但如何保证计算机A安全的将key1发送给计算机B呢?如果这个阶段被拦截了那么key1就被泄露了,别人就可以假冒发送方 计算机A 向接收方 计算机B 发送信息了,还是没达到安全传输的效果。

现在问题是需要保证key1能够安全在网络上传输,很明显不能再使用对称加密来保护这个key1的安全传输了,聪明的人类于是引入了非对称加密:

这种方法就是,让客户端和服务器都拥有两把钥匙

一把钥匙是公开的(全世界知道都没关系),我们称之为公钥;

另一把钥匙则是保密的(只有自己本人才知道),我们称之为私钥。

并且用公钥加密的数据,只有对应的私钥才能解密;用私钥加密的数据,只有对应的公钥才能解密。

于是按照这种方法来保证key1在网络上的安全传输,它的过程大致如下图:

这种方式貌似已经达到了,但是在第一步计算机B明文传输自己的公钥时又存在泄露的风险,被人拦截之后使用假冒的的公钥假设为key2,发送给计算机A,接着计算机A收到这个报文之后,使用key2对 key1 再进行加密传输,中间人拦截到这个报文之后使用自己的私钥进行解密得到key1,然后再伪造一个key1_1通过计算机B的公钥发送给计算机B,于是计算A与计算机B整个通讯过程都暴露在中间人眼皮底下,无异于裸奔,这种现象就是中间人攻击

导致这个问题的根本原因是计算A无法知道这个公钥是否来自计算机B。

因此,我们需要找到一种策略来证明这把公钥就是服务器的,而不是别人冒充的。

我们需要找到一个拥有公信力、大家都认可的认证中心(CA)。于是就诞生了数字证书。它的具体过程是这样的:

计算机B在给计算机A传输公钥的过程中,会把公钥以及个人信息通过Hash算法生成信息摘要。如图:

为了防止信息摘要也被人调换,计算机B还会用CA提供的私钥对信息摘要进行加密来形成数字签名。如图:

并且,最后还会把原来没Hash算法之前的个人信息以及公钥 和 数字签名合并在一起,形成数字证书(回想下在使用https通信时是不是需要内置一份证书文件)。

当计算机A拿到这份数字证书之后,就会用CA提供的公钥来对数字证书里面的数字签名进行解密来得到信息摘要,然后对数字证书里服务器的公钥以及个人信息进行Hash得到另外一份信息摘要。

最后把两份信息摘要进行对比,如果一样,则证明这个人是服务器,否则就不是。

相关文章

  • 【https】https是如何保证通讯安全的?

    https 是在tcp与http之间添加了一层ssl(Secure Sockets Layer)层,俗称安全套接层...

  • Https是如何保证通讯安全的

    这个问题困扰了很久,最近看了资料,总结一番,总结不到位的地方还请指出 http是明文传输而https加密传输(ht...

  • HTTPS比HTTP安全? HTTPS是如何保证安全的

    一、安全特性 在上篇文章中,我们了解到HTTP在通信过程中,存在以下问题: 通信使用明文(不加密),内容可能被窃听...

  • HTTPS 是如何保证安全的?

    每当我们讨论到信息安全的时候,我们最长接触到的信息加密传输的方式莫过于 HTTPS 了,当我们浏览器地址栏闪现出绿...

  • HTTPS 是如何保证安全的?

    每当我们讨论到信息安全的时候,我们最长接触到的信息加密传输的方式莫过于 HTTPS 了,当我们浏览器地址栏闪现出绿...

  • HTTPS 是如何保证安全的?

    转自微信公众号——前端早读课http://mp.weixin.qq.com/s/JMfKS_c20BuFTsQPv...

  • HTTPS是如何保证安全的

    HTTP存在的问题 窃听风险:通信使用明文(不加密),内容可能会被窃听(第三方可能获知通信内容) 冒充风险:不验证...

  • HTTPS是如何保证安全的

    小结:简单的说,是通过对称加密来加密传输的内容,采用非对称加密来加密对称加密的密钥(不直接采用非对称加密传输内容是...

  • https是如何保证安全的呢?

    一、http和https的区别 http:数据不通过加密就进行传输,在传输过程中数据处于裸奔状态,在路由、小区网关...

  • 使用免费的HTTPS证书

    前言 众所周知 HTTPS 是保证 HTTP 通讯安全的协议,网站启用 HTTPS 可以避免很多安全性的问题, 而...

网友评论

      本文标题:【https】https是如何保证通讯安全的?

      本文链接:https://www.haomeiwen.com/subject/sxaugltx.html