想和ta聊一些私密的话,一方面:
先聊第一个问题,信息安全传输方法与思路。
特点:在网络上传递明文;
黑客定理一:网络上传递的数据是不安全的,网络属于黑客公共场所,能被截取。
如何改进呢?很容易想到,先加密,再传输。
特点:
黑客定理二:客户端是不安全的,属于黑客本地范畴,能被逆向工程。
任何客户端与服务端提前约定好的算法与密钥都是不安全的,那如何改进呢?
不能固定密钥,一个用户一个密钥。
特点:
这么传输安全么?答案是否定的。
应该如何优化呢?根本上,密钥不能在网络上直接传输。
特点:
黑客定理三:用户客户端内存是安全的,属于黑客远端范畴,认为是安全的。
画外音:中了木马,电脑被控制了另说。
使用“具备用户特性的东西”作为加密密钥,一人一密,是安全的。但这仍不是最优方案。
每次通信前,都进行密钥协商,一次一密。
密钥协商过程,如下图所述,需要随机生成三次动态密钥:
此称为,安全信道建立的“三次握手”,安全信道建立之后,再进行密文发送。
密钥交换的步骤为:
(1) 服务端随机生成公私钥对(公钥pk1,私钥pk2),并将公钥pk1传给客户端;
画外音:此时黑客能截获pk1。
(2) 客户端随机生成公私钥对(公钥pk11,私钥pk22),并将公钥pk11,通过pk1加密,传给服务端,服务端收到密文,用私钥pk2解密,得到pk11;
画外音:此时黑客能截获密文,也知道是通过pk1加密的,但由于黑客不知道私钥pk2,是无法解密的。
(3) 服务端随机生成对称加密密钥key=X,用pk11加密,传给客户端,客户端收到密文,用私钥pk22解密,得到key=X;
画外音:同理,黑客由密文无法解密出key。
至此,安全信道建立完毕,后续通讯用key=X加密,以保证信息的安全性。
信息安全方案设计三大假设:
对于信息安全传输的不同阶段:
画外音:有没有公司是这么实现的?=_=。
再聊第二个问题,存储内容如何不泄露?
似乎只能靠公司人品?
很多公司说,我们绝不存储用户聊天记录!!!
你觉得呢?
如果觉得博客文章对您有帮助,异或土豪有钱任性,可以通过以下扫码向我捐助。也可以动动手指,帮我分享和传播。您的肯定,是我不懈努力的动力!感谢各位亲~