java ee数据传输安全性_数据传输过程中可能遇到的安全问题以及解决方案

前言

客户端与服务端进行数据交互时,会有哪些安全问题产生?这些问题应如何解决?本文将以图文的形式讲解上述问题,欢迎各位感兴趣的开发者阅读本文。

传输数据时的四个问题

在互联网中传输数据时,可能会遭到中间人的攻击,从而拦截数据、伪造数据,接下来就跟大家分享下传输过程中可能发生的四个问题。

窃听

如下图所示,A向B发送的消息可能会在传输途中被X偷看,这就是窃听。

5e439da6e52cd0c312940566d04c7269.png

假冒

如下图所示,A向B发送了消息,A以为B已经接收了消息,然后B有可能是X冒充的;反过来,B以为从A那里收到了消息,然后A也有可能是X冒充的。这种问题就叫作“假冒”

e0c12a39c0605f36c06270437f502696.png

篡改

A向B发送消息,B收到了A发送的消息,此时B收到的消息可能不是A的原话,如下图所示,在消息的传输途中,内容已经被X更改了。这种行为就叫做“篡改”。除了被第三者篡改外,通信故障导致的数据损坏也可能会使消息内容发生变化。

e8adf954e2bf38acb5f6dd3eee0f2b65.png

事后否认

如图所示,B收到了A发送的消息,但A作为消息的发送者可能对B抱有恶意,并在事后声称“这不是我发送的消息”。这种情况会导致互联网上的商业交易或合同无法成立。这种行为便是“事后否认”。

9ed82bc88cb79c18eb700de1c555f247.png

用安全技术解决传输中的问题

加密技术

我们会使用传输内容进行加密的手段,来解决第三者「窃听」的问题。

如下图所示,我们对传输中的数据进行加密,设置可以访问数据的Key,这个Key只有A和B知道,第三者拿到加密后的数据没有Key是无法查看的。

b267f1007eb2444376b2bfcd84feba21.png

消息认证码与数字签名

通常情况下,我们会使用消息认证码或者数字签名解决「假冒」、「篡改」、「事后否认」问题。

如下图所示,我们设置一个消息认证码,这个消息码会根据发送数据的内容以及内容长度生成一个随机码和解开这个随机码的key,要查看消息时会通过key来验证,如果消息在传输途中被篡改了那么随机码就会变,使用key就无法解密,那么就很好的防止了上述问题。

数字签名的原理与消息认证码的原理大致相同,也能够解决上述问题。

4215ecfe6046df8762917b77ef2da2e2.png

写在最后

文中使用的图片源自《我的第一本算法书》,如若侵权,请评论区留言,作者立即删除相关图片。

文中如有错误,欢迎在评论区指正,如果这篇文章帮到了你,欢迎点赞和关注😊

本文首发于掘金,未经许可禁止转载💌

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值