admin管理员组

文章数量:1034011

我们绝不存储用户聊天记录!(第47讲)

《架构师之路:架构设计中的100个知识点》

47.信息安全传输

想和ta聊一些私密的话,一方面:

1. 必须保证传输安全,传输内容如何不被黑客窥探?

2. 必须保证存储安全,存储内容如何不泄露?

先聊第一个问题,信息安全传输方法与思路。

一、初级阶段:信息裸传

特点:

1. 在网络上传递明文;

黑客定理一:

网络上传递的数据是不安全的,网络属于黑客公共场所,能被截取。

如何改进呢?

很容易想到,先加密,再传输。

二、进阶阶段:传输密文

特点:

1. 服务端和客户端先约定好加密算法,加密密钥;

2. 客户端,传输前用约定好的密钥加密;

3. 传输密文;

4. 服务端,收到消息后用约定好的密钥解密;

黑客定理二:

客户端是不安全的,属于黑客本地范畴,能被逆向工程。

任何客户端与服务端提前约定好的算法与密钥都是不安全的,那如何改进呢?

不能固定密钥,一个用户一个密钥。

三、中级阶段:一人一密,服务端生成密钥

特点:

1. 客户端和服务端提前约定好加密算法,在传递消息前,先协商密钥;

2. 客户端,请求密钥;

3. 服务端,返回密钥;

4. 然后用协商密钥加密消息,传输密文;

这么传输安全么?

答案是否定的。

1. 根据黑客定理一,网上传输的内容是不安全的,于是乎,黑客能得到加密key=X;

2. 根据客定理二,客户端和服务端提前约定的加密算法是不安全的,于是乎,黑客能得到加密算法;

3. 于是乎,黑客截取后续传递的密文,可以用对应的算法和密钥解密;

应该如何优化呢?

根本上,密钥不能在网络上直接传输。

四、再进阶阶段:一人一密,客户端确定密钥,密钥不再传输

特点:

1. 协商的密钥无需在网络传输;

2. 使用“具备用户特性的东西”作为加密密钥,例如:用户密码的散列值;

3. 一人一密,每个人的密钥不同;

4. 然后密钥加密消息,传输密文;

5. 服务端从db里获取这个“具备用户特性的东西”,解密;

黑客定理三:

用户客户端内存是安全的,属于黑客远端范畴,认为是安全的。

画外音:中了木马,电脑被控制了另说。

使用“具备用户特性的东西”作为加密密钥,一人一密,是安全的。但这仍不是最优方案。

五、高级阶段:一次一密,密钥协商

每次通信前,都进行密钥协商,一次一密。

密钥协商过程,如下图所述,需要随机生成三次动态密钥:

1. 两次非对称加密密钥(公钥,私钥);

2. 一次对称加密密钥;

此称为,安全信道建立的“三次握手”,安全信道建立之后,再进行密文发送。

密钥交换的步骤为:

1. 服务端随机生成公私钥对(公钥pk1,私钥pk2),并将公钥pk1传给客户端;

画外音:此时黑客能截获pk1。

2. 客户端随机生成公私钥对(公钥pk11,私钥pk22),并将公钥pk11,通过pk1加密,传给服务端,服务端收到密文,用私钥pk2解密,得到pk11;

画外音:此时黑客能截获密文,也知道是通过pk1加密的,但由于黑客不知道私钥pk2,是无法解密的。

3. 服务端随机生成对称加密密钥key=X,用pk11加密,传给客户端,客户端收到密文,用私钥pk22解密,得到key=X;

画外音:同理,黑客由密文无法解密出key。

至此,安全信道建立完毕,后续通讯用key=X加密,以保证信息的安全性。

六、总结

信息安全方案设计三大假设:

1. 网络上传递的数据是不安全的,能被截取;

2. 用户客户端是不安全的,属于黑客本地范畴,能被逆向工程;

3. 客户端内存是安全的,属于黑客远端范畴,可以认为是安全的;

对于信息安全传输的不同阶段:

1. 明文消息传递如同裸奔,不安全;

2. 客户端和服务端提前约定加密算法和密钥,不安全;

画外音:有没有公司是这么实现的?=_=。

3. 一人一密,服务端随机生成密钥,发送给客户端,不安全;

4. 一人一密,客户端使用“具备用户特性的东西”作为加密密钥,安全;

5. 一次一密,三次握手建立安全信道,安全;

再聊第二个问题,存储内容如何不泄露?

似乎只能靠公司人品?

很多公司说,我们绝不存储用户聊天记录!!!

你觉得呢?

==全文完==

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-03-27,如有侵权请联系 cloudcommunity@tencent 删除安全服务端加密客户端黑客

我们绝不存储用户聊天记录!(第47讲)

《架构师之路:架构设计中的100个知识点》

47.信息安全传输

想和ta聊一些私密的话,一方面:

1. 必须保证传输安全,传输内容如何不被黑客窥探?

2. 必须保证存储安全,存储内容如何不泄露?

先聊第一个问题,信息安全传输方法与思路。

一、初级阶段:信息裸传

特点:

1. 在网络上传递明文;

黑客定理一:

网络上传递的数据是不安全的,网络属于黑客公共场所,能被截取。

如何改进呢?

很容易想到,先加密,再传输。

二、进阶阶段:传输密文

特点:

1. 服务端和客户端先约定好加密算法,加密密钥;

2. 客户端,传输前用约定好的密钥加密;

3. 传输密文;

4. 服务端,收到消息后用约定好的密钥解密;

黑客定理二:

客户端是不安全的,属于黑客本地范畴,能被逆向工程。

任何客户端与服务端提前约定好的算法与密钥都是不安全的,那如何改进呢?

不能固定密钥,一个用户一个密钥。

三、中级阶段:一人一密,服务端生成密钥

特点:

1. 客户端和服务端提前约定好加密算法,在传递消息前,先协商密钥;

2. 客户端,请求密钥;

3. 服务端,返回密钥;

4. 然后用协商密钥加密消息,传输密文;

这么传输安全么?

答案是否定的。

1. 根据黑客定理一,网上传输的内容是不安全的,于是乎,黑客能得到加密key=X;

2. 根据客定理二,客户端和服务端提前约定的加密算法是不安全的,于是乎,黑客能得到加密算法;

3. 于是乎,黑客截取后续传递的密文,可以用对应的算法和密钥解密;

应该如何优化呢?

根本上,密钥不能在网络上直接传输。

四、再进阶阶段:一人一密,客户端确定密钥,密钥不再传输

特点:

1. 协商的密钥无需在网络传输;

2. 使用“具备用户特性的东西”作为加密密钥,例如:用户密码的散列值;

3. 一人一密,每个人的密钥不同;

4. 然后密钥加密消息,传输密文;

5. 服务端从db里获取这个“具备用户特性的东西”,解密;

黑客定理三:

用户客户端内存是安全的,属于黑客远端范畴,认为是安全的。

画外音:中了木马,电脑被控制了另说。

使用“具备用户特性的东西”作为加密密钥,一人一密,是安全的。但这仍不是最优方案。

五、高级阶段:一次一密,密钥协商

每次通信前,都进行密钥协商,一次一密。

密钥协商过程,如下图所述,需要随机生成三次动态密钥:

1. 两次非对称加密密钥(公钥,私钥);

2. 一次对称加密密钥;

此称为,安全信道建立的“三次握手”,安全信道建立之后,再进行密文发送。

密钥交换的步骤为:

1. 服务端随机生成公私钥对(公钥pk1,私钥pk2),并将公钥pk1传给客户端;

画外音:此时黑客能截获pk1。

2. 客户端随机生成公私钥对(公钥pk11,私钥pk22),并将公钥pk11,通过pk1加密,传给服务端,服务端收到密文,用私钥pk2解密,得到pk11;

画外音:此时黑客能截获密文,也知道是通过pk1加密的,但由于黑客不知道私钥pk2,是无法解密的。

3. 服务端随机生成对称加密密钥key=X,用pk11加密,传给客户端,客户端收到密文,用私钥pk22解密,得到key=X;

画外音:同理,黑客由密文无法解密出key。

至此,安全信道建立完毕,后续通讯用key=X加密,以保证信息的安全性。

六、总结

信息安全方案设计三大假设:

1. 网络上传递的数据是不安全的,能被截取;

2. 用户客户端是不安全的,属于黑客本地范畴,能被逆向工程;

3. 客户端内存是安全的,属于黑客远端范畴,可以认为是安全的;

对于信息安全传输的不同阶段:

1. 明文消息传递如同裸奔,不安全;

2. 客户端和服务端提前约定加密算法和密钥,不安全;

画外音:有没有公司是这么实现的?=_=。

3. 一人一密,服务端随机生成密钥,发送给客户端,不安全;

4. 一人一密,客户端使用“具备用户特性的东西”作为加密密钥,安全;

5. 一次一密,三次握手建立安全信道,安全;

再聊第二个问题,存储内容如何不泄露?

似乎只能靠公司人品?

很多公司说,我们绝不存储用户聊天记录!!!

你觉得呢?

==全文完==

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-03-27,如有侵权请联系 cloudcommunity@tencent 删除安全服务端加密客户端黑客

本文标签: 我们绝不存储用户聊天记录!(第47讲)