【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

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值