网络传输加密及https

借鉴:https://blog.csdn.net/m0_37907797/article/details/102759257

名词解释

公钥:钥匙是公开的(全世界知道都没关系)
私钥:钥匙则是保密的(只有自己本人才知道)

对称加密

网络传输加密及https
可能出现的问题:**在传输过程中被截取了就和明文一样了

非对称加密

网络传输加密及https
问题:安全性比对称加密高,但是效率比对称加密低的多

对称加密+非对称加密

处理方式:服务器把公钥传给客户端,客户端利用公钥生成**(对称加密用的),然后使用公钥加***传给服务器,服务器再利用公钥解密得到**
公钥三次作用:

  1. 利用公钥生成**
  2. 使用公钥加***
  3. 使用公钥解密得到**

存在的问题:
网络传输加密及https

数字证书

对称加密会不安全的原因是客户端不知道这把公钥是否是服务器的,因此,我们需要找到一种策略来证明这把公钥就是服务器的,而不是别人冒充的。
我们需要找到一个拥有公信力、大家都认可的认证中心(CA)。
服务器在给客户端传输公钥的过程中,会把公钥以及服务器的个人信息通过Hash算法生成信息摘要。如图:
网络传输加密及https
为了防止信息摘要被人调换,服务器还会用CA提供的私钥对信息摘要进行加密来形成数字签名。如图:
网络传输加密及https

并且,最后还会把原来没Hash算法之前的个人信息以及公钥 和 数字签名合并在一起,形成数字证书。如图
网络传输加密及https

当客户端拿到这份数字证书之后,就会用CA提供的公钥来对数字证书里面的数字签名进行解密来得到信息摘要,然后对数字证书里服务器的公钥以及个人信息进行Hash得到另外一份信息摘要。最后把两份信息摘要进行对比,如果一样,则证明这个人是服务器,否则就不是。如图:
网络传输加密及https

这样,就可以保证服务器的公钥安全着交给客户端了。
网络传输加密及https
其实,(有些)服务器一开始就向认证中心申请了这些证书了(有没有看过没有证书的网站在地址栏会被标出警告?),而客户端是,也会内置这些证书。如图:网络传输加密及https
当客户端收到服务器传输过来的数据数字证书时,就会在内置的证书列表里,查看是否有解开该数字证书的公钥,如果有则…,如果没有则…