• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

计算机网络--应用层(httphotoshop)

武飞扬头像
暴走的橙子~
帮助1

       学新通

目录

补充背景知识

http和https的关系

背景知识1:加密方式

对称加密

非对称加密 

背景知识2:数字签名

概念

 如何校验

秘钥交换协商

仅使用对称秘钥(NO)

仅使用非对称秘钥(NO)

使用两对非对称秘钥(NO)

使用对称秘钥和非对称秘钥(NO)

什么是安全?中间人攻击

CA证书认证&&使用对称秘钥和非对称秘钥

CA证书

如果中间人修改基本信息呢?

如果中间人修改数字签名呢?

如果是"合法的"中间人修改基本信息和数字签名呢?

补充


补充背景知识

http和https的关系

https = http TLS/SSL

TLS/SSL:也是一个应用层的一个"软件",是对http进行加密处理的,他就是数据的加密解密层。

我们用图来表示一下他们之间的关系:

学新通

       我们可以看到,http响应的数据是要经过加密处理,所以我们通常说https = http TLS/SSL。如果http不经过数据的加密解密层,就相当于直接把数据发送到网络中,这时候数据就是裸奔的,也是非常不安全的,如果我们使用像Fillder这样的工具是可以获取到这些数据的。

背景知识1:加密方式

对称加密

秘钥只有一个,用该秘钥就可以进行加密或解密。

我们来举一个简单的场景,比如我们C语言中学习过异或这个语法。

学新通

我们写一个简单的代码来验证一下:

学新通 

非对称加密 

非对称加密,有一对秘钥:公钥和私钥

可以用公钥加密,但是只能用私钥解密

或者只能用私钥加密,但是只能用公钥加密

一般而言,公钥是全世界公开的,私钥是自己必须进行私有保存的。

背景知识2:数字签名

如何防止文本中的内容被篡改?以及识别到被篡改?

概念

学新通

 如何校验

假设我们提交一个文本,是把原文本的数据签名和"修改"的文本一起提交:

学新通

        好了,有了上面的知识补充,接下来我们就讲讲秘钥协商具体是怎么实现的,而且如何保证数据的安全呢?

秘钥交换协商

仅使用对称秘钥(NO)

       注意:为了防止给大家造成误解,这里(NO)表示实际过程中我们不采用这种协商手段,但是博主写在这里了,是为了帮助大家理解,甚至必要时,给面试官展示一下自己的深入思考。

学新通

对称加密:

双方第一次通信的时候,需要先将秘钥得到秘钥,有两种方法:

1、预装:这种显然是不现实的,这种做法成本太高,我们不采取。

2、协商:双方通信的时候,秘钥协商第一次有加密吗??绝对没有!! 

        这时候问题就出来了,我们第一次把秘钥X交给对方的时候,是很有可能被其他人获取到的!那么以后双发再次通信,数据都会被别人用X进行解密,这样做是非常不安全的!所以这种方式我们不采取。

仅使用非对称秘钥(NO)

学新通

        所以,由上面可以看出来,单使用非对称秘钥也是不能成功实现秘钥协商的,它只能保证单向的数据安全传送,那我们就可以发现,如果使用两对非对称秘钥不就可以保证数据双向的安全传输了?

使用两对非对称秘钥(NO)

学新通

从上面的过程来看,好像是保证了数据的安全传输的问题,按照上面的方法就可以了吗?事实并非如此:

1、依旧有被非法窃取的风险。(这个问题我们到后面来说,这里先简单忽略掉)

 2、非对称加密算法,是特别费时间!(对称加密算法是比较节省时间的)

        所以,为了效率的提高,实际并不采用上面的协商方案。那么我们使用对称秘钥(效率高)和非对称秘钥(安全)结合使用呢?

使用对称秘钥和非对称秘钥(NO)

学新通

进一步来看:

学新通 

在秘钥协商阶段,server以安全的方式拿到了client发来的对称秘钥的私钥信息X。 

什么是安全?中间人攻击

采用对称秘钥和非对称秘钥的协商手段真的就安全了吗?不是的,我们首先来谈谈什么是安全。

       安全不是不让别人拿不到就叫安全,因为在网络通信中,数据是不可能不被别人拿到的。所以说,安全就是,如果别人拿到了,也没法处理,或者破解的成本远远大于得到数据的效益。

说个题外话:一般来说,对于加密级别非常高的数据,传统计算机破解需要几十年、几百甚至上千年,前提是原算法不能做改变。现在我们国家大力发展量子计算机,相比较于传统二进制计算机,它的计算效率是上万倍甚至几十万被的提高,所以难免国外很担心我们在量子计算机的突破发展,事实上他们不是害怕我们量子计算机技术的提高,更重要的是国家信息安全层面上,如果暴力破解,原来几百年才能做到现在只需几秒就可以了。当然,我们并不会这么去做,而是用在有意义的地方。说不定大家将来就是参与量子计算机研究的科学家呢~

中间人攻击:

学新通

由上面过程我们可以看出来,中间人拿到了client和server通信的秘钥X,那么中间人随时可以获取他们之间的数据,使用秘钥X进行解密,获得数据,显然,这也是有很大风险的~ 

本质问题:client无法判断发来的秘钥协商报文是不是从合法的服务端发来的!!!

CA证书认证&&使用对称秘钥和非对称秘钥

CA机构是一个具有权威的机构,每一个人可以向他申请合法的CA证书,它有自己的公钥和私钥,私钥只有CA机构知道。

CA证书

学新通

如果加入CA证书为什么就保证安全了呢?

学新通 

       client获取证书的时候,会将基本信息内容通过Hash散列形成数据摘要,数字签名使用公钥解密形成数据摘要,然后比较这两个数据摘要是否一致,一致的话,就接收,否则就不接收。 这个就是我我上面补充的背景知识了。

上面的前提是,client必须知道CA机构的公钥信息,并且只信任CA机构的公钥信息!也只认CA机构的公钥!

如果中间人修改基本信息呢?

没事的,如果仅仅修改基本信息,到后面通过Hash散列形成数据摘要,再到后面比对时,是不匹配的,client不信任此证书。

如果中间人修改数字签名呢?

中间人无法修改匹配的数字签名,因为CA机构才知道私钥,中间人是无法进行加密形成的。

如果是"合法的"中间人修改基本信息和数字签名呢?

如果中间人把自己申请的CA整数发给客户端,来获取对称秘钥呢可行吗?答案是不行!

别忘了,基本信息里面有个域名,当客户端接收CA证书后,假设当client访问百度网站时,由于域名不同,访问到了qq官网,那么client就立马检测到该整数不合法,立马就舍弃掉。

       CA机构并不止一家,但是他们之间的秘钥都是相互可信任的,所以这个不用担心申请哪家的CA证书。

补充

        client端的是知道CA机构的公钥信息,这个一般是内置的(我们可以在自己的电脑中查找)。当然也有少数情况我们在访问某浏览器时,会提示我们安装并信任某某CA机构证书。这种情况比较少见,通常这样提示,很有可能我们访问这个网站不安全~

看到这里,给博主点个赞吧~

                               学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbfbfj
系列文章
更多 icon
同类精品
更多 icon
继续加载