理解网络数据传输加密

什么是加密

加密是对明文数据按某种特殊的算法进行加工处理,使其成为不可被直接读取的数据,即密文数据,而密文数据可以通过特定的秘钥解密后还原出明文数据

为什么需要加密

网络中数据的传输如果是明文的话,在经过WiFi、交换机、路由器、网络服务运营商等物理节点时可能被监听和篡改,从而带来信息丢失是的风险或损失,所以需要对数据进行加密处理后再传输,以确保数据的安全性;

加密方式

加密方式主要分为对称加密和非对称加密;

对称加密

  • 对称加密描述:
    对称加密简单,速度快;
    常用对称加密方法 AES;
    对称加密秘钥只有一把,它既可以对原数据进行加密生成加密内容,也可以对加密内容进行解密还原数据;
    理解网络数据传输加密_第1张图片
    图片来源(https://sectigostore.com/blog/types-of-encryption-what-to-know-about-symmetric-vs-asymmetric-encryption/)

  • 对称加密的安全性:
    如果只有通信双方存储有秘钥信息,那此时数据传输即为安全的;
    如果秘钥需要通过网络传输,则可能被第三者窃取秘钥,从而出现传输信息被监听和篡改的风险;

非对称加密

  • 非对称加密描述:
    非对称加密复杂,速度慢;
    常用对称加密方法 RSA;
    非对称加密有两把秘钥,一把称为公钥(可公开传送),另一把称为私钥(服务器秘密保存);用公钥加密的数据必须用私钥才能解开,用私钥加密的数据只有公钥能解开。
    理解网络数据传输加密_第2张图片
    图片来源(https://sectigostore.com/blog/types-of-encryption-what-to-know-about-symmetric-vs-asymmetric-encryption/)

  • 非对称加密的安全性:
    对于服务器自身存储的私钥一般能够保证其安全性,对于公钥如果能安全传输到客户端,那此时双方数据传输即为安全的;
    由于公钥发放需要通过网络明文传输给客户端,此时则可能被第三者窃取公钥
    从而出现服务器传送给客户端的信息被监听风险;
    由于公钥可能被窃取,那网络攻击者则可能冒充服务端,将自身的公钥传输给客户端,从而双向监听和篡改传输数据;

加密过程的问题梳理

从上述两种加密方式看,各自存在优缺点,我们在此节详细分析下;

  • 单独使用对称加密

    • 优点
      加密速度快,网络传输对实时性要求很高,快速的传输有效数据对通信双方至关重要;
    • 缺点
      秘钥明文传输,易被攻击;
  • 单独使用非对称加密

    • 优点
      私钥可保证其安全性,对客户端到服务器的数据有一定的保护作用;
    • 缺点
      公钥明文传输,易被攻击;加密速度慢,对网络实时性有影响;
  • 非对称加密与对称加密混合
    非对称加密用来加密对称加密的秘钥,对称加密用来加密数据进行传输;

    • 优点
      对称加密的秘钥由客户端传输至服务器时有一定的保护作用;
      使用对称加密加密数据有利于网络传输的实时性;
    • 缺点
      存在被攻击者冒充风险;
      从上述分析来看,使用非对称加密与对称加密混合是较优选择,
      但存在的问题就是如何保证客户端收到的公钥是服务端真实发送的,接下来我们将引入证书的概念;

数字证书

数字证书是由CA机构认证和颁发的含有证书颁发机构、有效期、持有者信息、数字签名、公钥信息的文件;
服务器把数字证书传输给客户端,客户端验证数字证书的正确性和有效性,然后从数字证书里获取公钥,数字证书犹如身份的证明,证明公钥是对应服务器发放的;
证书颁发机构是层级关系,下级的CA证书由上级CA签名,直至根证书,根证书进行自签名;

数字证书如何保证安全性

数字证书中包含一份由上级CA机构的私钥进行加密生成的数字签名

数字签名的生成:

  1. 首先生成摘要
    摘要是指将数据进行HASH运算,得到的HASH值即为摘要,一般用MD5作为Hash函数
  2. 根据摘要生成数字签名
    通过上级CA机构的私钥摘要进行加密生成的即为数字签名

数字证书的生成:

数字证书是由CA机构认证,将证书颁发机构、有效期、持有者信息、数字签名、公钥信息打包的文件,即为数字证书

数字证书有效性验证:

  1. 客户端使用上级CA机构的公钥解出数字签名中的摘要A
  2. 客户端使用相同的Hash算法对数据进行Hash运算,生成摘要B
  3. 客户端对比摘要A摘要B,如果信息一致,则说明证书有效;

图解证书的生成与验证如下:

理解网络数据传输加密_第3张图片

图片来源(https://cheapsslsecurity.com/blog/digital-signature-vs-digital-certificate-the-difference-explained/)

总结

数字证书需要去CA机构申请,有了CA机构颁发的证书便可以安全传输公钥了,
通过数字证书的验证,保证了客户端收到的公钥的正确性,
从而保证通信双方获取的对称加密秘钥的私密性,
进而保证通信双方传输的数据的安全性;

你可能感兴趣的:(网络通信,网络通信,网络传输,加密解密)