0


【TLS与E2EE,安全与隐私,我都要!】

TLS

介绍:传输层安全性协议,可以为应用层协议Http 或 Websocket等进行加密,加密后为HTTPS, WSS。
作用:保证了 客户端 - 服务端之间的加密传输。
原理: 可以理解为2个过程,握手过程 和 传输过程,

  • 握手过程 :服务器 和 客户端 协商出来一个session key,协商过程中关键信息传递,使用服务器公钥进行RSA非对称加密,然后 服务器和客户端同时持有这个session key
  • 传输过程 :服务器 和 客户端 传输过程,用这个session key进行消息内容的对称加密

具体细节 和 这么做的原因 可以参考下面文章,感兴趣的朋友可以看下:
https://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html
http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

E2EE

介绍:发送者是对话的一个“端”,而接收者是另一个“端”;因此得名“端到端”。

end to end encryption

,端到端加密,发送端发出的消息对所有人保持私密,包括经过的中间服务,只有最终的接收端可以看到。

作用:保证了 客户端 - 客户端(端到端)之间的加密传输。
原理:

发送端

会使用

接收端的公钥

对要发送的信息进行

RSA加密

,这样只有接收端可以通过

接收端私钥

看到消息内容。

TLS 和 E2EE 的对比

  • 场景模型: - TLS: 客户端 - 服务端- E2EE:客户端 - 客户端 , 或存在中间通信转发服务 , 客户端 - 服务端 - 客户端
  • 加密阶段: - TLS:用户和服务器之间实行的,客户端 - 服务端之间传输加密。- E2EE:发送端发送数据时,会使用接收端的公钥进行加密。

如何保护用户隐私

通常来讲,只用TLS,可以保障客户端和服务端之间的安全传输。但是,从隐私的角度来看,这并不适用于所有情况

这里我们主要说下,对于

客户端a -> 服务端 -> 客户端b

的场景,有时用户不希望中间的服务端提供商能够看到他们的消息。
如何避免客户端a 发给 客户端b的消息被中间服务端看到,该怎么处理呢?
答案:TLS + E2EE ,下面我们对照着图示具体看下过程。

图例表示

对于

客户端a -> 服务端 -> 客户端b

的场景,如果只用TLS,由于 客户端a - 服务端之间是TLS加密的形式,所以服务端可以看到客户端a的发送内容,这样对于用户隐私不太好。
只有TLS, 服务器可以看到消息明文

此时,如果我们再加上E2EE加密方式。如下图:
TLS + E2EE,服务器看不到消息明文

这里我们看到,Alice 与 Bob之间的通信,用到了2次加密,1次E2EE,1次TLS 。
Alice私下先拿到Bob的公钥,给 Bob发信息时,先进行E2EE - RSA加密,这样只有Bob的私钥可以解密 查看信息内容。经过中间服务器,即使密文被服务器获取后,由于没有Bob私钥,也无法查看其中内容。
这样确保了 Alice 发给 Bob的消息隐私,除了Bob,没人能看到消息内容。

综上,如果只做TLS,虽然保障了客户端与服务端间的安全传输,但服务端还是可以看到用户信息,用户隐私不好。保护用户隐私,需再配合使用E2EE

题外话,什么服务用了端到端加密?

几个典型的app,

telegram: 默认不是,但是可以开启。

whatsApp: 是,用户发的信息 ,whatsApp的服务器上也看不到 。

wechat:不是,所以我们的信息会在微信服务器上留存,发信息时也会有敏感词过滤。

Refs

什么是端到端加密:https://www.cloudflare.com/zh-cn/learning/privacy/what-is-end-to-end-encryption/

端到端加密是一种生活方式:https://zhuanlan.zhihu.com/p/50629940

十大端对端加密聊天软件:https://zhuanlan.zhihu.com/p/640415942

标签: 安全 网络 数据库

本文转载自: https://blog.csdn.net/qq_38428433/article/details/136889014
版权归原作者 wn531 所有, 如有侵权,请联系我们删除。

“【TLS与E2EE,安全与隐私,我都要!】”的评论:

还没有评论