公钥、密钥、SSL、会话密钥的简单解释

im安全层协议设计(instant message 即时通讯)

消息的保密性非常重要 ,谁都不希望自己聊天内容被看到,所以安全层是必不可少的。

1、SSL证书管理微微复杂,代价有点高。

2、自行加解密自己来搞加解密,核心在于密钥的生成与管理,密钥管理方式有多种,主要有这么三种:

(1)固定密钥

服务端和客户端约定好一个密钥,同时约定好一个加密算法(eg:AES ),每次客户端im在发送前,就用约定好的算法,以及约定好的密钥加密再传输,服务端收到报文后,用约定好的算法,约定好的密钥再解密。这种方式,密钥和算法对程序员都是透明的。

(2)一人一密钥

(3)动态密钥(一session一密钥)

动态密钥,一Session一密钥的安全性更高,每次会话前协商密钥。密钥协商的过程要经过2次非对称密钥的随机生成,1次对称加密密钥的随机生成,参考固态秘钥,用于加密的秘钥由客户端通过公钥加密发送给服务端,服务端使用私钥解密拿到后续通讯时使用改秘钥对信息进行加密

我尽量简单一些说,如果是大虾,就不用看了。注意,和具体的情况会有些不同,因为为了说明原理,简化了。


经验分享 程序员 微信小程序 职场和发展