Skype 技术是否会利用用户的机器来路由其他呼叫?

信息安全 网络 Skype
2021-08-10 03:00:28

我今天正在浏览一个随机博客(企业视频会议解决方案与 Skype),我遇到了一个索赔。我确实知道 Skype 协议是专有协议,但该博客的作者声称:

Skype 利用点对点技术,其中 Skype 用户成为超级节点。这使 Skype 可以利用您的带宽来路由其他呼叫,这通常会降低您的计算机速度。

从网络的角度来看,我想知道这是如何实施甚至可能的?首先,为什么需要在用户节点之间路由呼叫?如果人 X 正在呼叫 Y,那么这不是从 X 到 Y 节点的直接 TCP 连接吗?为什么 Z 节点必须介于两者之间?

此外,如果这是真的,为什么大多数用户都坚持使用 Skype?在这个领域没有更好的开源技术吗?

3个回答

今天,Skype 不再通过其他用户机器进行通信。这是由数据中心中的 Microsoft 服务器完成的。

但在过去,在 Skype 协议的早期版本中,每个拥有足够强带宽且不在 NAT 后面(具有可路由 IP 地址)的用户都可以成为超级节点,并路由 NAT 后面的其他用户的流量。

这就是为什么这是必要的。例如,如果您的 ISP 在网关级别进行 NAT,您可以打开到任何您想要的主机的 TCP 连接,但其他一些未知主机无法到达您,因为传入的连接不是您请求的。NAT 就是这样工作的,无法建立直接的 TCP/UDP 连接。

如果 NAT 后面的两个 Skype 用户想要互相交谈,在正常情况下,他们不能,因为他们只能请求和接收数据包,但无法接收未提前请求的内容。

示例:主机 A 想通过 Skype 与主机 B 通话。主机 A 尝试打开到主机 B 的 TCP/UDP 连接,但主机 B 并没有提前向主机 A 请求任何内容,主机 B 的网关的 NAT 刚刚断开连接。在相反的方向是相同的。

因此,为了进行通信,它们都连接到某个超级节点,该超级节点成为它们之间的桥梁。这是有效的,因为每个客户端都将数据传输到超级节点,超级节点将它们路由到另一端(正如我之前提到的,它也连接到超级节点)。

通过更改 Windows 注册表,可以在早期 Skype 版本中禁用成为超级节点。

正如其他人已经回答的那样:是的,Skype 最初确实有时会使用其他 Skype 用户来路由某些呼叫。

但!!!其他回复没有说的是:这实际上是一件好事!因为 Skype 最初是基于 Peer-2-Peer 而不是基于服务器的(正如微软所做的那样),并且所有流量都是端到端加密的,因此 Skype 在当时的所有其他竞争对手中具有两大优势: - 它可以扩展到数百万第 1 天的用户数,而 Skype 公司无需购买更多服务器。- 任何人都很难(几乎不可能)窥探你的谈话。

既然微软已经收购了 Skype 并对其进行了更改,使其通过微软服务器路由数据,并且微软拥有所有解密密钥,这使得美国政府的 PRISM 国内间谍程序可以轻松地窥探人们的 Skype 对话。

即使 Skype 有时确实通过其他 Skype 用户系统路由某些呼叫,它也确保它不会通过中间系统使用超过微不足道的 4K/秒数据,以免对中间系统的性能产生不利影响。而且由于通过中间系统路由的数据是用中间系统无法访问的密钥加密的,中间系统不能监视对话,所以一切都是安全的。

所以,小心你想要的,你可能会得到它,它可能比你已经拥有的更糟。

希望某个小组会创建一个新的 IM 系统,就像原来的 Skype 一样,我会立即切换到它,并且很乐意让这个新网络有时使用我的网络带宽的 4K/秒来通过我的计算机路由呼叫。

至于问题的另一部分:为什么用户在有更好的解决方案的情况下坚持使用它?两个字:市场渗透。普通的 John Doe 不关心安全性或滥用(在过去)其他网络用户。他只是想打电话,这很管用,当“每个人都在使用 Skype”时,他不会说服所有朋友使用其他东西。

不幸的是,这并不是什么新鲜事,例如 ICQ 与 Jabber(在某种程度上 Windows 与 Linux/BSD)也是如此——早期的解决方案只是具有进入新领域的优势。谁一开始的份额大,基本就是抢占了市场,不管有什么缺陷。相当不幸,因为这种对快速但黑客解决方案的偏好通常也会给整个世界带来令人讨厌的安全后果。