计算机网络---应用层(httpshttp和https的区别对称加密非对称加密中间人攻击数据摘要指纹公正)

Posted 画尸师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络---应用层(httpshttp和https的区别对称加密非对称加密中间人攻击数据摘要指纹公正)相关的知识,希望对你有一定的参考价值。

目录

一、https协议

1、https协议

2、http VS http

二、https相关的安全问题

1、对称加密、非对称加密及中间人攻击

2、https协议采用的加密方式


一、https协议

1、https协议

应用层的主要作用就是为应用程序提供服务。传输层协议将接收到的数据交付给应用层,应用层将数据进行处理后直接交给应用程序,实现相应的用户请求。

http和https是应用层非常重要的协议,使用非常广泛。https协议的协议结构以及工作方式完全基本相同,最主要的区别就在于https提供了一些安全机制,相比于http协议更加安全。

2、http VS http

http协议和https协议最主要的区别就在于它们的通信细节不同,https协议提供了一些对数据的保护措施,即在数据发送前要先对数据进行加密处理,接收方收到数据后在进行解密,从而保证了数据的安全性,相比于http协议https协议更加安全。但是这些加密和解密都是需要消耗时间和内存的,因此https的效率比http效率低。

  • 安全性:https相对安全;http不安全
  • 效率:http比https的效率高
  • http使用的是80端口,https使用的是443端口。

二、https相关的安全问题

无论是客户端发送请求还是服务器端响应请求,都需要保证数据在网络中传输的安全性,http协议直接将原始数据在网络中进行传输,而https对数据进行了加密处理

1、对称加密、非对称加密及中间人攻击

基础概念

  • 秘钥:某个用来完成加密、解密、完整性验证等密码学应用的秘密信息。
  • 公钥:对所有人公开的秘钥称为公钥。
  • 私钥:保密的、不能让别人知道的秘钥。

对称加密

通信双方采用同一个秘钥进行加密和解密的方式称为对称加密。

举一个简单的例子:

要传输的数据是整数;秘钥是1234也是一个整数;加密方式是将不数据和秘钥进行异或运算。

那么接收方接收到这个数据后,同样的使用相同的秘钥对数据进行异或运算就可以得到解密后的数据,也就是实际想要发送的数据。

789--->加密--->789^1234--->1991--->解密--->1991^1234--->789

对称加密的缺点:

  • 每次通信通信双方都需要事先协商好秘钥。
  • 一旦秘钥被第三方(黑客)拿到,任何一方发送的消息第三方获取到都可以进行解密。
  • 安全性较差

对称加密的优点:

  • 简单快速且高效
  • 加密算法易于实现

非对称加密

非对称加密是指,发送方通过一个公开的、所有人都可以随意获取的公钥对数据进行加密,接受放接收到加密后的数据在通过一个只有自己直到的私钥对数据进行解密。在数据传输过程中,私钥是不需要进行传输的,也就是说私钥不会被任何人知道。因此,即使发送的数据被第三方恶意获取,他也很难知道真正的数据内容。

中间人攻击

中间人攻击是针对非对称加密进行的一种攻击方式,具体方式如下:

  • 中间人攻击是指,通信双方发送的数据都径过一个中间服务器(恶意服务器)进行转发,将中间服务器称为中间人。
  • 在非对称加密中,使用一对公钥和私钥对数据加密。在数据发送前,接收方需要事先将公钥发送给发送方,发送方使用公钥对数据进行加密。
  • 在接收方给发送方发送公钥时,中间服务器将公钥劫持,发送一个自己的公钥。
  • 接收方实际上拿到的是中间服务器的公钥,使用该公钥对数据进行加密后,在发送给接收方时再次被中间人截取到数据使用自己的私钥进行解密就可以直到原始数据了。
  • 同样地,中间服务器还可以将截取到的数据进行篡改,在使用公钥进行加密发送给接收方,这样接收方就会收到一份恶意的数据。

对称加密和非对称加密结合的加密方式

非对称加密虽然相比于对称加密更加安全,但是由于加密方式更加复杂、加密算法实现复杂、效率低以及中间人攻击等原因,通常采用的加密方式是对称加密和非对称加密相结合对数据进行加密处理。

处理方式:

  • 对数据的加密使用对称加密
  • 双方协商的秘钥通过非对称加密的方式进行传送,保证了秘钥的安全性。
  • 秘钥协商好在使用秘钥对数据采用对称加密方式进行发送。

示例:

假设Alice希望与Bob通信。同时,Mallory希望拦截窃会话以进行窃听并可能在某些时候传送给Bob一个虚假的消息。

首先,Alice会向Bob索取他的公钥。如果Bob将他的公钥发送给Alice,并且此时Mallory能够拦截到这个公钥,就可以实施中间人攻击。Mallory发送给Alice一个伪造的消息,声称自己是Bob,并且附上了Mallory自己的公钥(而不是Bob的)。

Alice收到公钥后相信这个公钥是Bob的,于是Alice将她的消息用Mallory的公钥(Alice以为是Bob的)加密,并将加密后的消息回给Bob。Mallory再次截获Alice回给Bob的消息,并使用Mallory自己的私钥对消息进行解密,如果Mallory愿意,她也可以对消息进行修改,然后Mallory使用Bob原先发给Alice的公钥对消息再次加密。当Bob收到新加密后的消息时,他会相信这是从Alice那里发来的消息。

解决策略:

  • 对数据进行特殊处理,接收方收到数据后先验证数据是否发生了改变。即是否存在消息被篡改问题。
  • 对远端服务器进行认证,确保接收到的数据不是由中间服务器发来的。

2、https协议采用的加密方式

无论是对称加密还是非对称加密都存在一定的安全问题你,那么https协议是如何提高数据安全性的呢?

防止中间消息被篡改问题

  • 使用hash算法对要发送的数据进行处理,得到一个定长的序列,这个序列可以表示要发送的数据,同时当发送的数据任何一处4发生改变时,使用hash算法得到的定长序列都是不同,这里的定长序列我们称为数据摘要
  • 使用加密算法对数据摘要进行加密处理得到数据签名(也成为指纹),将发送的数据和数据签名一同发送给接收方吧,这是即使中间服务器截取了数据也不能对数据进行修改,因为一旦修改了数据摘要也就发生了变化,接收端可以通过数据数据摘要和数据摘要进行对比就会发现数据被修改了。

远端服务器认证

  • 一般比较安全的服务器都会进行公证,这里的公证是指有权威部门办法ca证书,证书包括了公钥私钥、以及该服务器的一些权威信息等。
  • 客户端一般都内置了服务器端的证书,就可以通过证书来判断数据是否是由中间服务器发送的。

 对称加密和非对称加密结合的加密方式

处理方式:

  • 对数据的加密使用对称加密
  • 双方协商的秘钥通过非对称加密的方式进行传送,保证了秘钥的安全性。
  • 秘钥协商好在使用秘钥对数据采用对称加密方式进行发送。

https就是通过数据摘要、数据签名、公证以及对称加密和非对称加密相结合的方式,对数据进行处理,保证了数据的安全性。

 

以上是关于计算机网络---应用层(httpshttp和https的区别对称加密非对称加密中间人攻击数据摘要指纹公正)的主要内容,如果未能解决你的问题,请参考以下文章

「计算机网络」浅谈HTTP和HTTPSHTTP2(概述区别与联系)

HTTPS中的TLS

甩干HTTPSHTTP2和HTTP3

node 和 http

网络

继续说IPv6HTTPSHTTP/2,系列完结吧