StarLink数据包路由

2020-10-16 03:37:35

这个博客是我在Starlink上最初帖子的续篇。StarLink是SpaceX公司开发的新兴高性能星基互联网路由网络。它的最终目的是成为事实上的互联网骨干网提供商,让数十亿人连接到互联网,并彻底改变进入太空的方式。

通常的免责声明适用。我对星联行动没有相关的内幕消息。我不是网络方面的专家,而且与Starlink的员工不同的是,我并没有花很多年的时间只解决这个问题。事实上,即使在最好的情况下,我通常也会非常困惑。但是我有一个很酷的想法,我想和大家分享一下。

截至2020年9月,计划让数万颗Starlink卫星在大约9个独立的低地球轨道上运行,每个轨道具有不同的高度和倾角。在单一轨道上的每个子星座实际上形成了一张向北和向南移动的卫星表,当实施激光链路时,这些卫星可以很容易地与当地卫星进行通信。因此,每个轨道在某一纬度形成了对地球的“双重覆盖”。

最初,Starlink卫星将通过地面站和用户终端相互通信。以后的版本将实现与同一轨道上其他附近卫星的激光链接,允许在每个2D数据表内进行高数据流。由于有九个独立的轨道族,每个轨道族都有一个向北和向南移动的工作表,路线可能会变得相当复杂。

就本博客而言,每个单向微波或激光链路都可以被认为是连接多个节点的离散通道,每个节点都充当路由器。因此,每颗卫星都是连接数十条传入和传出数据链路的路由节点。每个离散信道将具有独立的纠错、编码和动态链路质量评估。用户终端和高带宽网关也可以被认为是相同意义上的节点。

在数据包级别,Starlink路由问题归结为“数据包如何穿越网络?”这个问题因以下因素而变得复杂,在本博客的其余部分展开:

卫星之间的连接是短暂的,并且会受到意外降级的影响,因此数据包可能会丢失。

这篇博客关注的是星联网络的安全和隐私方面。如果不考虑这些,对星座进行一些全球模拟,集中计算最佳路线,将信息推送给卫星本身,并让它们执行预先计算的行为,这将是相对微不足道的。使用TLS,数据包内容将被端到端加密,但至关重要的是,网络拓扑和数据包元数据将被公开。

在许多方面,与数据包内容本身相比,互联网元数据更是一个隐私问题。元数据对地球上任何人的社交和其他方面的图表进行编码。一种独特的、随时间演变的指纹,通常比包裹内容揭示更多关于一个人的信息。

将元数据公开,即使是向SpaceX公开,也不是一个好主意。情报机构可以利用它进行间谍活动,而竞争对手可以利用它破坏SpaceX的技术优势。如果SpaceX可以访问它,它将在法律上被迫过滤各个司法管辖区的内容,这将破坏自由、网络中立性,并极大地增加法律风险。由于SpaceX可能更愿意把钱花在工程师身上,而不是律师身上,所以建立一个对任何人都无法访问元数据的网络是一个好主意。默认情况下,这样的网络保护隐私,确保电子商务的安全,并阻止黑客的干预。

网络的理想状态是,即使在卫星本身被泄露或记录数据的情况下,它也能作为分散的自主透明通信介质运行,没有旁信道泄漏、无持久性、最小状态、前向保密性和元数据保护。是的,威胁模型必须包括SpaceX自己的硬件或软件可能行为不当的可能性。这使得路由问题成为拜占庭将军问题的变体,尽管这里不需要区块链。

由于威胁模型必须包括无线或激光信号被第三方接收器截获的可能性,因此适当加密的信号应该在统计上与白噪声无法区分。

虽然Tor网络旨在提供其中一些隐私保护功能,但它缺乏为Starlink工作所需的性能、可靠性、功能和地理连接。然而,一个执行良好的Starlink网络应该像Tor一样保护隐私。StarLink还必须提供最大带宽、最小延迟和最小数据包头开销。

本博客不会详细介绍边界网关协议,这是互联网用来在网络之间传递数据包的常用系统。也就是说,Starlink网络的地理规模和速度确实给内容交付网络运营商带来了一些有趣的挑战。我相信Cloudflare已经想过这件事了!

相反,我将把重点放在数据包如何在不牺牲速度和隐私的情况下实际穿越Starlink网络内部的具体细节。

问题的核心在于,数据包如何以稳健、分散的方式通过网络从地面终端到多个卫星再到地面终端,利用IP地址、物理位置和网络拓扑之间的某种映射。能做到这一点的最低逻辑量是多少?

换句话说,我们可以在数据包报头中隐藏多少上下文信息,但仍然具有功能?

信息包环绕整个地球旅行的时间尺度大约是十分之一秒。在这个时间尺度上,卫星大约移动半英里,而由于地球自转,赤道的地面站将移动大约50米。准确地说,在光速的情况下,卫星是不会移动的,所以我们不必担心数据包会脱落。

为了找到到达正确目的地地面站的正确波束,除了目的地地面站的大致GPS位置之外,信息包不需要知道任何其他信息-两个小数位就足够了。

原则上,即使这些信息也可以从数据包路径上的几乎所有硬件中混淆。所有硬件需要知道的是哪个方向是最快的,这可能包括该特定路由器上的任何缓冲区积压。

每个数据包都被加密,并由原始SpaceX硬件给出一个报头,该硬件对端点的大致地理位置进行编码,通过缓存或查找来确定。此地理位置被分成不同的部分,并使用时间和空间演变密钥进行加密。比方说,这些密钥在一秒内保持有效。每颗卫星都有一个根据当地时间和卫星位置不断更新的密钥。如果时间窗口有效,解密操作将解锁2或3比特的显著细节,仅此而已。这足以让路由器将其缓冲区中的指针实时分流到适当的输出通道。

例如,一个从洛杉矶始发、目的地为纽约的数据包。第一颗卫星连接到数千个用户终端和几个网关。它确定(仅)数据包正向东北移动,并将其路由到该方向。即使它记录了有关数据包的信息,它也只知道它到达的时间、时长和去向。

链中的最后一颗卫星能够读取目的地终端的大致地理位置,并将数据包分配给定向正确的波束。但它不知道除了“西南”之外,包裹从哪里来。

指向该卫星的每个用户终端都会接收在该波束中发送的每个数据包,但只有预期的接收者才会拥有必要的密钥来解密数据包,将其转换回常规的互联网流量,并通过某一地面光纤将其发送到服务器或其他任何地方。

即使数据包被截获,其地理位置密钥也会在一秒内过期,并且无法再与白噪声区分开来。

即使动机极强的攻击者能够收集每个数据包的日志,执行计时攻击也需要纠正每个单独日志的时钟偏移。实际上,在目标设备上执行零日的可能性更大。

归根结底,这样的方案与邮政地址的工作方式没有太大不同。递送过程中的每个步骤只需要知道一行地址,通常只有您当地的邮政工作人员才会对确保正确的人收到正确的信件所需的姓名和地址有详细的了解。一个足够热心于隐私的用户可以将他们的信息封装在四个单独的信封中,每个信封上都有地址的下一行,只有在成功投递到更本地化的地理区域时才能打开。

最后,我确信,在卫星互联网上实现实时分散路由的方法有无数种,而且最优化并不等同于成为我想到的第一种方法。您希望看到这个系统是如何工作的吗?