在不深入数学的情况下,有一种方法可以确保非开源程序(如WhatsApp,FaceTime,Zoom等)真正使用端到端加密,而不仅仅是“常规加密”(即服务器具有加密密钥)?

评论

在用户文件夹中查找要联系的人的(公共)密钥吗?

@DannyNiu,即使有密钥,该软件也无法使用,错误使用,将其泄漏到中央服务器,静默地允许中央服务器替换它或以不安全的(并且可能是后门的)方式生成它第一名。

您可能会发现图灵奖讲座很有趣。 cs.cmu.edu/~rdriley/487/papers / ...

#1 楼


是否有办法确保非开源程序确实使用了端到端加密?


只能通过深度逆向工程来实现。这很难,而且可能是非法的。另外,应用程序是一个移动的目标:它们像每周一样在变化。而且,使用端到端加密并不能证明不可能进行拦截:这种加密(或其密钥生成)可能是弱的,偶然地,故意地,或者是暗中的。最终,没有实际的方法¹。

真实的故事:我是这个调制解调器的首席工程师,该调制解调器具有端到端加密功能,可以使用智能卡协商会话密钥,于1990年发布,已出售在法国取得了一些成功。我们公司的一位董事坚持要求我们获得有关这些功能的批准,因为这是在与我们的主要分销商Apple France进行的一次对话中提出的。 (1991年中)之后不久,我有一个人向我介绍自己的军事职务,他解释说法律规定,出售给普通大众的加密设备必须有一种方法来找到密钥,而该密钥最多需要经过测试240个步骤。他需要对该协议进行详细描述。我认为更改它会破坏互操作性。那个家伙提议增加一个泄漏会话密钥的边信道,这样,如果一端正在使用装配的设备,则会话密钥将可用于拦截线路信号并了解方法。我给人的独特印象是这是标准程序。最后,我创建了一个新的数据包类型,旧设备将忽略该数据包类型,其中包含经过RSA加密的会话密钥,并以越来越少的固定间隔发送,而新模型则这样做。我记得那个家伙来演示了。为了我自己的安全,我坚持不知道生产私钥。我仍然拥有8051汇编中该设备的源代码。

注意:该设备的点对点加密的主要功能是,当您制作了一组智能卡并将其插入调制解调器后,您可以确信只有持有另一组智能卡的人才能连接。正如法国法律所没有要求的那样,此功能没有受到损害。


¹没有切实可行的方法来确保有效的端到端加密。有时可以证明没有端到端加密。例如,如果数据通过中央服务器通过使用服务器证书保护的https链接进入,并且通过使用本地代理(设备上的标准hack)破坏https加密来显示用户消息,那么我们确定没有端到端加密。

²向下滚动并单击宽图或向右箭头以获取更多信息,包括内部信息。我与该网站没有联系。

评论


$ \ begingroup $
这样的硬件后门就是为什么我从来没有在家中升级我的计算硬件的原因...
$ \ endgroup $
–烟斗
20年4月8日在10:16

$ \ begingroup $
@fgrieu,大概什么时候来?图片中的设备看起来并不是最新的时尚。
$ \ endgroup $
–ilkkachu
20年4月8日在10:30

$ \ begingroup $
@ilkkachu:我查看了修订历史。发布时间是1990年秋天,而索具发生在1991年7月。尽管我竭尽所能不推广该产品,但该产品至少再销售了两年,我们制造/出售了没有加密或智能卡的便宜版本。
$ \ endgroup $
–fgrieu♦
20-4-8在11:17



$ \ begingroup $
@Joshua:因为该设备是调制解调器,所以使用该设备的计算机永远无法访问带有加密会话密钥的数据包。它存在于调制解调器中,并且在按照V22bis标准调制的电话线上。只有使用适当的设备才能观察到该错误,要删除它,则需要修改调制解调器插槽中EPROM中的固件,从而进行反向工程。
$ \ endgroup $
–fgrieu♦
20年4月9日在7:02

$ \ begingroup $
@FabianRöling不,这是各种描述的国家在某些时候已经或试图做的事,取得了不同程度的成功。观看Crypto AG的故事,几十年来,美国和西德政府共谋向敌人和盟友出售后门加密设备。
$ \ endgroup $
– Xander
20年4月10日在20:55

#2 楼

在最初的问题中:


WhatsApp,FaceTime,Zoom等非开源程序


我认为您真正要问的是原因是您是否可以相信某些内容正在使用您未亲自安装和托管的端到端加密。

即使对于开源软件,我也不认为这是可行的。原因是,如果您使用运行jitsi或BigBlueButton的其他人的服务,则假定他们正在完全运行公共存储库中提供的服务。谁真的知道这是否正确。

所以,我认为,最好的选择是找到使用您信任的某种形式的外部验证(审计)的服务,或者自己运行。

评论


$ \ begingroup $
这是您在这里提出的另一个非常有趣的观点!一个开源项目可以提供完整的代码,以便任何人都可以看到,但是可以使用不同的代码来提供安装包。谁知道,对吗?
$ \ endgroup $
–富拉拉斯
20-4-10上午22:42

#3 楼

从某种意义上说,就一般而言,很难完全确定任何电子设备中正在发生什么,因此同意没有办法确定。即使您拆除了它并以某种方式观察到发生了什么,您如何知道用于检查它的设备没有被黑客入侵?即使假设您是从头开始构建的,您怎么知道有人在您入睡时没有妥协呢?您几乎可以将妄想症带到任何水平。

尽管在实践中,合理的测试是从外部进行测试,即捕获交换的数据包的样本,然后检查这些位以查看是否数据按照广告进行加密。如果外部规范已经发布,即使没有发布,这也不应该是不可能的。当然,这只会表明捕获的数据包已正确加密,设备可能会在周日发送未加密的数据包。总的来说,要对加密软件能够实现其声称的功能有合理的信心,则需要检查源代码。

评论


$ \ begingroup $
两个问题:1)如常宣传的那样不适用:该方法可能根本没有公开,或者没有足够的细节/准确性/新鲜度。 2)可以并实践使似乎看起来像任何外部观察者宣传的加密设备,但实际上被削弱的加密设备。一种方法是使用弱化的生成器生成会话密钥:只有一种知道弱化方法的密钥才有机会证明系统是可破坏的。另一种可能的方法是不通过调制解调器泄漏额外的数据包,而是通过定时变化来泄漏会话密钥。
$ \ endgroup $
–fgrieu♦
20-4-10在7:29



$ \ begingroup $
问题特别是关于端到端加密。在服务器上无法解密的情况下,无法区分在服务器上解密的“已加密的广告数据”和未经加密通过服务器的数据。无论会话密钥是以服务器可以知道的方式生成的,最终设备之间交换的数据都不会有差异。
$ \ endgroup $
–Jörg W Mittag
20-4-10的15:22

$ \ begingroup $
@JörgWMittag,正是我的想法!感谢您的澄清! :)
$ \ endgroup $
–富拉拉斯
20-4-10上午22:38