e2ee比PHP_E2EE-端对端加密

本文探讨了端到端加密(E2EE)的概念,指出仅依赖RSA公钥交换的安全性存在隐患。虽然私钥保留在设备上,但服务器或攻击者可能通过中间人攻击(MITM)伪造数据,导致信息来源真实性无法验证。解决方案包括使用Diffie-Hellman密钥交换并实施公钥鉴别来增强安全性。
摘要由CSDN通过智能技术生成

理解

先给E2EE下一个定义:

End to end implies that the communication between the two endpoints (clients) is encrypted. The whole idea is that the server can never read or modify the conversation data.

关键在于“服务器永远不能读取或更改通讯数据”。

设想一种方案:

两台设备生成RSA密钥对。

通过服务器,两台设备交换RSA公钥。

双方使用对方传递过来的RSA公钥,对要发送的消息进行非对称加密,再通过服务器发送。

接收到来自对方的信息后,用自己的RSA私钥解密。

看起来,只有公钥经过了服务器,私钥都好好的保存在设备上;服务器或攻击者都得不到私钥,无法解密。很不错,不是么?

实际上,上面这种方案,不是端对端加密。

因为无法保证服务器没有更改信息内容。服务器或攻击者可以使用其获取到的公钥,伪造任何数据,传递给设备;设备都可以解密,且无法验证信息是否来源真实。

实现

Diffie-Hellman密钥交换算法

绝大部分E2EE实现都需要利用DH算法进行密钥交换。

介绍:Wiki。

特别说明:DH算法的安全性来源于其计算复杂度,随着计算机算力增强,最终会被淘汰(只要初始素数够大,在量子计算机出现前还是安全的)。

DH算法的漏洞:MITM中间人攻击

假设攻击者对网络有一定控制权限,他就可以截获DH算法密钥交换的公钥,转而自己生成成对密钥,将自己的公钥交换给通信双方。这样,通信双方实际上通过中间人进行信息中转。

这个问题是可以避免的,通常是通过对交换的公钥进行鉴别。

具体鉴别的方法在其他文章中给出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值