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

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

对于加密技术,存在很多,MD5,SHA-1,SHA-2(推荐使用)等等,基于hash函数的加密技术是不可逆的,且长度是相同的,比如在数据库中存储密码时,可以使用基于hash函数的加密算法进行密码的加密,在保存在数据库中。
网络数据传输问题和解决方式_哈希算法_02
我们或多或少都知道对称加密和非对称加密,所谓的对称加密形象来说就是大家都用同一把密钥进行加密解密。常见的对称加密算法有AES,DES,凯撒密码,动态口令。下图简单描述了对称加密的一个流程。
网络数据传输问题和解决方式_安全_03
但是对称加密仅仅是对数据进行加密,密钥还是暴露网络上,大家的视野之中,所以对于密钥的暴露问题(密钥分配问题)也要想办法解决。下面是常见的密钥分配问题的解决方案
网络数据传输问题和解决方式_哈希算法_04
我们可以把公钥暴露在网络之中,私钥自己留着,A发消息时,先使用暴露在网络中的公钥进行数据的加密,在把数据传输给B,由于B拥有自己的私钥,所以可以解密数据,而他人就是截取到数据也无法解密。常见的非对称加密算法有RSA(较常见),椭圆曲线加密等。
网络数据传输问题和解决方式_加密解密_05
虽然这样可以保证真实数据不会泄露,但是,B并不知道发送方是谁,也就是说,任何人都可以给B发送消息,如果有恶意的人用公钥发送数据,一个while(true),就足够造成威胁。而且使用非对称加解密数据是比较耗时的,所以大多数都是用在一些极其重要的文件上。
由于对称加解密较快,非对称加解密较慢,所以产生了混合加密算法,数据进行对称加密,数据解密的密钥使用非对称加密,这样对数据的加解密较快,而且数据的安全也有保障。
网络数据传输问题和解决方式_数据_06

虽然到目前真实数据得到了保障,但是还是会被截取,修改(修改加密后二进制流),如果进行了修改,解密之后的数据是有问题的。现在要解决的问题就是检测数据是否被篡改以及发送方是谁
网络数据传输问题和解决方式_加密解密_07