网络数据传输问题和解决方式

简介

重要数据在网络中的传输如果是公开裸露的,可以想象我们发消息,打电话,输入银行卡密码,岂不是随意便能被他人获取,那么什么问题以及该怎么解决呢?
下面是数据产生的四个问题:窃听,篡改,假冒,事后否认
在这里插入图片描述
产生了这些问题,又该如何解决呢?下面是常用的解决方案

问题解决方法
窃听加密
假冒消息认证码、数字签名
篡改消息认证码、数字签名
事后否认数字签名

对于加密技术,存在很多,MD5,SHA-1,SHA-2(推荐使用)等等,基于hash函数的加密技术是不可逆的,且长度是相同的,比如在数据库中存储密码时,可以使用基于hash函数的加密算法进行密码的加密,在保存在数据库中。
在这里插入图片描述

对称加密

我们或多或少都知道对称加密和非对称加密,所谓的对称加密形象来说就是大家都用同一把密钥进行加密解密。常见的对称加密算法有AES,DES,凯撒密码,动态口令。下图简单描述了对称加密的一个流程。
在这里插入图片描述
但是对称加密仅仅是对数据进行加密,密钥还是暴露网络上,大家的视野之中,所以对于密钥的暴露问题(密钥分配问题)也要想办法解决。下面是常见的密钥分配问题的解决方案
在这里插入图片描述

非对称加密

我们可以把公钥暴露在网络之中,私钥自己留着,A发消息时,先使用暴露在网络中的公钥进行数据的加密,在把数据传输给B,由于B拥有自己的私钥,所以可以解密数据,而他人就是截取到数据也无法解密。常见的非对称加密算法有RSA(较常见),椭圆曲线加密等。
在这里插入图片描述
虽然这样可以保证真实数据不会泄露,但是,B并不知道发送方是谁,也就是说,任何人都可以给B发送消息,如果有恶意的人用公钥发送数据,一个while(true),就足够造成威胁。而且使用非对称加解密数据是比较耗时的,所以大多数都是用在一些极其重要的文件上。
由于对称加解密较快,非对称加解密较慢,所以产生了混合加密算法,数据进行对称加密,数据解密的密钥使用非对称加密,这样对数据的加解密较快,而且数据的安全也有保障。
在这里插入图片描述

迪菲-赫尔曼密钥协议

对于密钥交换协议,常见的就是迪菲-赫尔曼密钥协议,是由迪菲和赫尔曼提出,并且获取了图灵奖,利用的是“离散对数问题”,这个问题至今也没有人给出解法。使用这个方法可以在通信双方之间安全的交换密钥。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

不要担心公钥被窃取,因为这个数学运算到现在还没有解

到目前,密钥的交换和真实数据都可以得到保障,但是数据依然会被截取,修改(修改加密后二进制流),如果进行了修改,解密之后的数据是有问题的。现在要解决的问题就是检测数据是否被篡改以及发送方是谁

消息认证码

消息认证码可以实现认证和检测篡改两个功能,密文在传输的过程中可能会被篡改,使用消息认证码可以防止这种情况的发生。
在这里插入图片描述
消息认证码的流程如下所示
在这里插入图片描述
目前计算MAC的算法有很多,常见的有 HMAC(hash-based MAC),CMAC,OMAC,其中HMAC使用最广泛。
但是使用消息认证码也是有缺陷的,双方都有相同的密钥,相同的密文,相同的MAC,如果A一不小心发了不该发的消息给B,无法撤回了,就耍赖说不是自己发的,这就难办了

数字签名

使用数字签名不仅可以实现消息认证码的认证和检测篡改的功能,还能预防事后否认问题。
由于消息认证码的密钥双方都有,也就是共享的,即收信人也可以是发送人。而数字签名只有发消信的人才能生成,因此就可以确定谁是发送者。
数字签名使用私钥加密,公钥解密,这点公开密钥加密不一样

名称算法
非对称加密(公开密钥加密)公钥加密,私钥解密
数字签名公钥解密,私钥加密

通信流程如下所示。
在这里插入图片描述
数字签名也存在弊端,就是A是可以冒充的。

数字证书

公开密钥加密和数字签名无法保证公开密钥是真正的来自发送方,如果公开密钥被替换,就像和你聊天的美女突然变成了乔碧螺,你还在那里流着口水聊天,哎
在这里插入图片描述
发送给A的文件就是数字证书,接下来A把数字证书作为公开密钥发送B
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗罗的1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值