【Linux 网络编程3】非对称+对称加密,中间人攻击和CA机构如何保证公钥不被攻击--https应用层协议

目录

        1.2.对称加密

        1.3.非对称加密

        1.4.非对称+对称加密(实际使用的方法) 

2.中间人攻击

3.CA证书机构保证服务器的公钥不被修改


1.https就是http+关于安全的一层软件层(SLL、TSL)

【Linux 网络编程3】非对称+对称加密,中间人攻击和CA机构如何保证公钥不被攻击--https应用层协议_第1张图片 

 

1.对称加密和非对称加密

1.1.对称加密和非对称加密的特点

对称加密:只有一个公钥;公钥是被周知的

        加密和解密:使用公钥加密同是也是用公钥进行解密;例如:多一个数据按位异或2次还是原数据,就是一种简单的对称加密的方式

非对称加密:有两把钥匙,谁被保存就是私钥另一个就是公钥。有一把公钥,被周知;一把私钥只有网络通信的一端知道;

        加密和解密:使用公钥加密,使用私钥解密;

1.2.对称加密

过程:客户端有一个公钥X,把X给对端,后续使用X加密通信; 

缺点:公钥X没有加密,中间人可以直接获取,然后修改数据;不安全

【Linux 网络编程3】非对称+对称加密,中间人攻击和CA机构如何保证公钥不被攻击--https应用层协议_第2张图片

 1.3.非对称加密

过程:服务器端拥有公钥s和私钥s',把公钥s给客户端,客户端的使用s加密数据,保证客户端到服务器端的数据是被加密的; 

缺点:1.非对称加密的效率低。2.有被中间人攻击的风险(下面的中间人会讲);

【Linux 网络编程3】非对称+对称加密,中间人攻击和CA机构如何保证公钥不被攻击--https应用层协议_第3张图片

1.3.3.双端使用非对称加密 ,思想和上面一样

【Linux 网络编程3】非对称+对称加密,中间人攻击和CA机构如何保证公钥不被攻击--https应用层协议_第4张图片 

1.4.非对称+对称加密(实际使用的方法) 

过程:客户端有公钥X,服务器端有公钥S私钥S';服务器端把公钥S给客户端,客服端使用S加密公钥X,发送给服务器,后续使用对称加密 

【Linux 网络编程3】非对称+对称加密,中间人攻击和CA机构如何保证公钥不被攻击--https应用层协议_第5张图片 

 2.中间人攻击

攻击过程:

  1. 服务器把公钥S给客户端时,先被中间人截取,中间人使用自己的公钥M替换服务器的公钥S;
  2. 中间人再给把公钥M交付给客户端,加密数据时使用的就是中间人的公钥M来加密data;
  3. 客户端发送给服务器端再次被截取,中间人使用M'解密M+data,盗取数据并可以修改数据,然后再使用服务器的公钥S加密可能被修改一定被盗取的数据交给服务器端;

【Linux 网络编程3】非对称+对称加密,中间人攻击和CA机构如何保证公钥不被攻击--https应用层协议_第6张图片

 3.CA证书机构保证服务器的公钥不被修改

CA证书的构成:

【Linux 网络编程3】非对称+对称加密,中间人攻击和CA机构如何保证公钥不被攻击--https应用层协议_第7张图片

3.1.如何保证不能修改公钥 

过程:中间人修改公钥,却不能修改数字签名因为是被CA机构的私钥加密的,客户端使用哈希散列得出的数据摘要和数字签名解密的数据摘要对不上

 【Linux 网络编程3】非对称+对称加密,中间人攻击和CA机构如何保证公钥不被攻击--https应用层协议_第8张图片

 

你可能感兴趣的:(https,网络协议,linux)